再一次證明我就是水水題的水果,今晚的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;