程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Codeforces Round #187 (Div. 2) 只水果兩題。。。

Codeforces Round #187 (Div. 2) 只水果兩題。。。

編輯:C++入門知識

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved