Codeforces Round #187 (Div. 2) 只水果两题。。。

再一次证明我就是水水题的水果,今晚的cf就水了前两题,然后就束手无策了。。。
但是我还是厚脸皮的贴出前两题代码。。。
明天去找大神博客膜拜后面几题吧。。。
A
水!题目看了挺长时间,一开始还以为是并查集,想了15分钟后发现数据很小,暴力n^2能过。

于是暴力水果了。

#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个测试点上面卡住了,目测是某位大神提交的测试点吧。。。
于是搞了个变化数而不是遍历去修改数组,水果了。。。

#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;
}



其他题亚历山大,我还修行不够。。。坐等大神题解。。。

原文地址:https://www.cnblogs.com/java20130723/p/3212147.html