解题思路:
佛啦,我只想说大佬牛逼,没看解析前写了一百行结果还是错的,看了解析后“流弊流弊”!!!
具体思路就是可以把碰面再返回当成穿过处理,情况就是要么一个都感染不到,要么感染(比感冒蚂蚁大的反向蚂蚁)和(同向的比感冒蚂蚁小的蚂蚁);
参考代码:
#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语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1053 |
川哥的吩咐 (C++代码)浏览:1016 |
最长单词 (C语言代码)浏览:1376 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:557 |
C语言考试练习题_保留字母 (C语言代码)浏览:713 |
a+b浏览:433 |
回文数字 (C语言代码)浏览:2510 |
1013题解浏览:560 |
C二级辅导-进制转换 (C语言代码)浏览:660 |
简单的a+b (C语言代码)浏览:630 |