解题思路:
佛啦,我只想说大佬牛逼,没看解析前写了一百行结果还是错的,看了解析后“流弊流弊”!!!
具体思路就是可以把碰面再返回当成穿过处理,情况就是要么一个都感染不到,要么感染(比感冒蚂蚁大的反向蚂蚁)和(同向的比感冒蚂蚁小的蚂蚁);
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { int ant[51]; int n, count = 0; cin >> n; for (int i = 0; i < n; i++) { cin >> ant[i]; } int first = ant[0]; for (int i = 1; i < n; i++) { if (first * ant[i] < 0 && ant[i] + first < 0) count++; //感染反向的蚂蚁 } if(count) for (int i = 1; i < n; i++) { if (first * ant[i]>0 && ant[i]<first) count++;//如果有被感染的蚂蚁,将感染同向蚂蚁。 } cout << count+1; }
0.0分
4 人评分
十->二进制转换 (C++代码)(零和负数需要特殊处理)浏览:1040 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:698 |
【回文数(二)】 (C++代码)浏览:865 |
大神老白 (C语言代码)浏览:603 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1165 |
【亲和数】 (C语言代码)浏览:856 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:624 |
WU-拆分位数 (C++代码)浏览:779 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:606 |