当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,