这题纯水题!模拟就行。
记录一下每个时间节点两头奶牛的速度,然后遍历每个时间节点,计算答案即可。
注意要记录上一次是谁领先,这样才不会在y总的新增测试数据上踩坑。
y总,第二次了,怎么又是我写完题解然后被你新增数据卡Bug……啊……我太难了!
最后:
注意事项见注释
#include <bits/stdc++.h>
using namespace std;
int n, m, x[1000010], y[1000010], tx, ty, ans;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int a, b; cin >> a >> b;
while (b--) x[++tx] = a;
}
for (int i = 1; i <= m; i++) {
int a, b; cin >> a >> b;
while (b--) y[++ty] = a;
}
tx = max(tx, ty); n = m = 0;
for (int i = 1; i <= tx; i++) {
n += x[i], m += y[i];
if (n > m && (n - x[i]) <= (m - y[i])) ans++;
if (n < m && (n - x[i]) >= (m - y[i])) ans++;
} cout << max(0, ans - 1); //初始的那次不算,且如果两只奶牛齐头并进的画那就是0
return 0;
}
错了哥哥
=的情况不一定变了
对呀,所以我写的是$m>n$ 或 $m<n$,后面的是前一个节点的状态
我就是说的前一个结点,前一个相等了后面不一定就变了你可以再去交一下你的代码哈
chao,y总又改数据,每次都这样,我改一下,麻烦等等hh修复啦
话说我是六年级的水题写什么题解啊(逃)题解是写给自己复习用的,封禁用户大佬肯定知道吧....
啊这