解题思路:
佛啦,我只想说大佬牛逼,没看解析前写了一百行结果还是错的,看了解析后“流弊流弊”!!!
具体思路就是可以把碰面再返回当成穿过处理,情况就是要么一个都感染不到,要么感染(比感冒蚂蚁大的反向蚂蚁)和(同向的比感冒蚂蚁小的蚂蚁);
参考代码:
#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语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:688 |
蛇行矩阵 (C语言代码)浏览:606 |
Hello, world! (C语言代码)浏览:766 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:812 |
分解质因数 (C++代码)浏览:1561 |
C二级辅导-阶乘数列 (C语言代码)浏览:671 |
A+B for Input-Output Practice (C语言代码)浏览:489 |
C语言训练-"水仙花数"问题2 (C语言代码)浏览:631 |