AcWing 1211. 蚂蚁感冒

简介: AcWing 1211. 蚂蚁感冒

题目链接

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;
}
目录
相关文章
|
4月前
acwing 110 抓住那头牛
acwing 110 抓住那头牛
18 0
|
4月前
acwing 1098 城堡
acwing 1098 城堡
22 0
【寒假每日一题】AcWing 4455. 出行计划
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 差分与前缀和
127 0
|
9月前
|
算法 Java C++
蚂蚁感冒(蓝桥杯)
蚂蚁感冒(蓝桥杯)
43 0
|
测试技术
蓝桥 晚会节目单 (线段树)
蓝桥 晚会节目单 (线段树)
南桥杯:蚂蚁感冒
南桥杯:蚂蚁感冒
85 0
|
算法 Java
acwing 第63场周赛【2022.08.06】
acwing 第63场周赛【2022.08.06】
88 0
acwing 第63场周赛【2022.08.06】
AcWing第 96 场周赛
AcWing第 96 场周赛
203 0
|
存储
【蓝桥杯集训·每日一题】AcWing 4309. 消灭老鼠
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 最大公约数
97 0
|
存储 机器学习/深度学习 人工智能
【蓝桥杯集训·周赛】AcWing 第94场周赛
文章目录 第一题 AcWing 4870. 装物品 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 第二题 AcWing 4871. 最早时刻 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 第三题 AcWing 4872. 最短路之和 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
84 0