Codeforces Round #187 (Div. 2) 只水果两题。。。
再一次证明我就是水水题的水果,今晚的cf就水了前两题,然后就束手无策了。。。
但是我还是厚脸皮的贴出前两题代码。。。
明天去找大神博客膜拜后面几题吧。。。
A
水!题目看了挺长时间,一开始还以为是并查集,想了15分钟后发现数据很小,暴力n^2能过。
于是暴力水果了。
[cpp]
#include <cstdio>
#define maxn 1010
int main()
{
// freopen("in", "r", stdin);
bool t[maxn] = {0};
int c[maxn][2];
int n, cnt = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d%d", &c[i][0], &c[i][1]);
for (int i = 0; i < n; i++)
for (int j = 0; j <= n; j++)
{
if (i == j) continue;
if (c[i][1] == c[j][0]) //暴力标记能开的瓶子
t[j] = true;
}
for (int i = 0; i < n; i++)
if (t[i])
cnt++;
printf("%d\n", n - cnt);
return 0;
}
#include <cstdio>
#define maxn 1010
int main()
{
// freopen("in", "r", stdin);
bool t[maxn] = {0};
int c[maxn][2];
int n, cnt = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d%d", &c[i][0], &c[i][1]);
for (int i = 0; i < n; i++)
for (int j = 0; j <= n; j++)
{
if (i == j) continue;
if (c[i][1] == c[j][0]) //暴力标记能开的瓶子
t[j] = true;
}
for (int i = 0; i < n; i++)
if (t[i])
cnt++;
printf("%d\n", n - cnt);
return 0;
}
B
同水!
感觉很像C基础入门那种书里面的题目。。。
照着写了交上去在第11个测试点上面卡住了,目测是某位大神提交的测试点吧。。。
于是搞了个变化数而不是遍历去修改数组,水果了。。。
[cpp]
#include <cstdio>
#define maxn 100010
int main()
{
// freopen("in", "r", stdin);
int n, m;
long a[maxn], change = 0; //change就是变化量
scanf("%d%d", &n, &m);
int op;
for (int i = 0; i < n; i++)
scanf("%ld", &a[i]);
while (m--)
{
scanf("%d", &op);
if (op == 1)
{
int v, x;
scanf("%d%d", &v, &x);
a[v-1] = x - change;
}
else if (op == 2)
{
long tmp;
scanf("%ld", &tmp);
change += tmp;
}
else
{
int tmp;
scanf("%d", &tmp);
printf("%ld\n", a[tmp-1] + change);
}
}
return 0;
补充:软件开发 , C++ ,