目录
题目链接
1211. 蚂蚁感冒 - AcWing题库
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!
一些话
1.int l,r;//不能定义left,rightreference to 'left' is ambiguous
2. if(m > 0 && r == 0 || m < 0 && l == 0) puts("1");
// && 的 优先级高于 ||
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!
切入点
// 这道题操作较为繁琐,咋一看是一道模拟题,按照模拟的思路写,写出伪代码等价替换后,就会发现这道题是一道脑经急转弯类的数学题
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!
流程
模拟题等价替换:
// 比较难写的碰撞操作,因为碰撞时位置相同,感染情况相同,所以两只蚂蚁等价,可以认为蚂蚁没有碰撞而是直接调头了。
// 所以求出向母体靠近的蚂蚁数量,分为左右,如果左右都有的话,输出左右数量+母体,如果蚂蚁前进方向上没有蚂蚁靠近,输出1
套路
1.模拟题对比较难的地方进行等价替换
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!
ac代码
// 一开始的思路
// 按绝对值排序,然后模拟1000个时间1000*n,每次循环检查数组内是否有绝对值相差为1的元素,有且在杆上则取反,
// 如果有一只感染,一直没感染就计数,然后感染另一只然后然后判断正负符号进行移动操作,
// 看题解后的思路
// 这道题操作较为繁琐,咋一看是一道模拟题,按照模拟的思路写,写出伪代码等价替换后,就会发现这道题是一道脑经急转弯类的数学题
// 比较难写的碰撞操作,因为碰撞时位置相同,感染情况相同,所以两只蚂蚁等价,可以认为蚂蚁没有碰撞而是直接调头了。
// 所以求出向母体靠近的蚂蚁数量,分为左右,如果左右都有的话,输出左右数量+母体,如果蚂蚁前进方向上没有蚂蚁靠近,输出1
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int l,r;//不能定义left,rightreference to 'left' is ambiguous
int main(){
int n,m;
cin >> n >> m;
for(int i = 2;i <= n;i++){
int x;
cin >> x;
if(x > 0 && abs(x) < abs(m)) l ++;
else if(abs(x) > abs(m) && x < 0) r++;
}
if(m > 0 && r == 0 || m < 0 && l == 0) puts("1");
// && 的 优先级高于 ||
else cout << l + r + 1 << endl;
return 0;
}
我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!