Codeforces Round #546 (Div. 2)

http://codeforces.com/contest/1136

 

A

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5 + 10;
int N, K;

struct Node {
    int L;
    int R;
}node[maxn];

int main() {
    scanf("%d", &N);
    for(int i = 1; i <= N; i ++)
        scanf("%d%d", &node[i].L, &node[i].R);
    scanf("%d", &K);

    int cnt = 0;
    for(int i = 1; i <= N; i ++) {
        if(node[i].R >= K) cnt ++;
        else continue;
    }

    printf("%d\n", cnt);

    return 0;
}
View Code

B

#include <bits/stdc++.h>
using namespace std;

int N, K;

int main() {
    scanf("%d%d", &N, &K);
    int ans = 0;
    ans = 3 * N + min(K - 1, N - K);
    printf("%d\n", ans);
    return 0;
}
View Code

C (只要判断对角线上的数字就好了 如果对角线数字不同输出 NO)

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1010;
int N, M;
int a[maxn][maxn], b[maxn][maxn];
map<int, int> vis[maxn];

int main() {
    scanf("%d%d", &N, &M);
    for(int i = 1; i <= N; i ++) {
        for(int j = 1; j <= M; j ++) {
            scanf("%d", &a[i][j]);
            vis[i + j - 1][a[i][j]] ++;
        }
    }
    bool flag = true;
    for(int i = 1; i <= N; i ++) {
        for(int j = 1; j <= M; j ++) {
            scanf("%d", &b[i][j]);
            if(vis[i + j - 1][b[i][j]] <= 0)
                flag = false;
            vis[i + j - 1][b[i][j]] --;
        }
    }

    if(flag) printf("YES\n");
    else printf("NO\n");

    return 0;
}
View Code

D

#include <bits/stdc++.h>
using namespace std;

const int maxn = 3e5 + 10;
vector<int> v[maxn];
int N, M;
int num[maxn], ans[maxn];

int main() {
    scanf("%d%d", &N, &M);
    for(int i = 1; i <= N; i ++)
        scanf("%d", &num[i]);
    while(M --) {
        int uu, vv;
        scanf("%d%d", &uu, &vv);
        v[vv].push_back(uu);
    }

    for(int i = 0; i < v[num[N]].size(); i ++)
        ans[v[num[N]][i]] ++;

    int cnt = 0;
    for(int i = N - 1; i >= 1; i --) {
        if(ans[num[i]] == N - i - cnt) cnt ++;
        else {
            for(int j = 0; j < v[num[i]].size(); j ++)
                ans[v[num[i]][j]] ++;
        }
    }

    printf("%d\n", cnt);
    return 0;
}
View Code

 

 

很久没更新了 最近和队友训练准备这样那样的比赛 写完题好像也没贴 哭唧唧 会尽快把之前做的题总结一下发上来的 养肥我的 Be 客

 

posted @ 2019-04-10 08:46  丧心病狂工科女  阅读(190)  评论(0编辑  收藏  举报