解题思路:
佛啦,我只想说大佬牛逼,没看解析前写了一百行结果还是错的,看了解析后“流弊流弊”!!!
具体思路就是可以把碰面再返回当成穿过处理,情况就是要么一个都感染不到,要么感染(比感冒蚂蚁大的反向蚂蚁)和(同向的比感冒蚂蚁小的蚂蚁);
参考代码:
#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语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:694 |
模拟计算器 (C语言代码)浏览:892 |
简单的a+b (C语言代码)浏览:760 |
A+B for Input-Output Practice (V) (C++代码)浏览:451 |
printf基础练习2 (C语言代码)浏览:942 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:520 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:810 |
数组与指针的问题浏览:718 |
C二级辅导-温度转换 (C语言代码)浏览:732 |
整除问题 (C语言代码)浏览:526 |