zoukankan      html  css  js  c++  java
  • Codeforces Round #630 (Div. 2)

    A题

    模拟过程考查对临界条件的判断

    #include<bits/stdc++.h>
    using namespace std;
     
    int main() {
        int T; cin >> T;
        while (T--) {
            int A, B, C, D; cin >> A >> B >> C >> D;
            int X, Y, X1, Y1, X2, Y2; cin >> X >> Y >> X1 >> Y1 >> X2 >> Y2;
            cout << (X1 <= X-A+B && X-A+B <= X2 && Y1 <= Y-C+D && Y-C+D <= Y2 && (X2>X1 || (A+B==0)) && (Y2>Y1 || (C+D==0)) ? "Yes" : "No") << '
    ';
        }
     
        return 0;
    }
    

     B题

    相同公因数进行判定。用个标号记录对应颜色即可。由于数据规模较小。直接暴力即可。

    #include <bits/stdc++.h>
    using namespace std;
    int p[11] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31};
    int vis[12];
    int main () {
        int t;
        scanf("%d", &t);
        while(t--) {
            int n;
            scanf("%d", &n);
            int a[1005];
            int color[1005];
            for(int i = 0; i < n; ++i) {
                scanf("%d", &a[i]);
            }
            memset(vis, 0, sizeof vis);
            int tep = 0;
            for(int i = 0; i < n; ++i) {
                for(int j = 0; j < 11; ++j) {
                    if(a[i] % p[j] == 0) {
                        if(!vis[j]) {
                            vis[j] = ++tep;
                        }
                        color[i] = vis[j];
                        break;
                    }
                }
            }
            printf("%d
    ", tep);
            for(int i = 0; i < n; ++i) {
                printf("%d ", color[i]);
            }
            printf("
    ");
        }
    }
    

     C题

    每k步进行遍历。记录长度为k的区间中两端的每个字母中出现次数。从开始遍历到中间,每次n减去字母出现最多次数(代表不用修改的)因为最多修改n次。

    #include<bits/stdc++.h>
    using namespace std;
     
    int main() {
        ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
        int T; cin >> T;
        while (T--) {
            int N, K; cin >> N >> K;
            string S; cin >> S;
            int ans = N;
            for (int i = 0; i <= K-1-i; i++) {
                vector<int> cnt(26, 0);
                for (int j = i; j < N; j += K) {
                    cnt[S[j] - 'a']++;
                }
                if (i < K-1-i) {
                    for (int j = K-1-i; j < N; j += K) {
                        cnt[S[j] - 'a']++;
                    }
                }
                ans -= *max_element(cnt.begin(), cnt.end());
            }
            cout << ans << '
    ';
        }
        return 0;
    }
    

     D题

    水题。不想多说了。。。

    #include<bits/stdc++.h>
    using namespace std;
    //SB题
    const int T = 1 << 17;
    const int F = 2 * T - 1;
    int dp[10][10];
    
    int n, m;
    int main () {
        scanf ("%d", &n);
        printf ("3 3
    %d %d %d
    %d %d %d
    %d %d %d
    ", F, T, 0, n, T, 0, n, F, n);
        // int a[10][10] = { {F, T, 0}, {n, T, 0}, {n, F, n}};
        // memset(dp, 0, sizeof dp);
        // dp[0][1] = a[0][0];
        // for(int i = 1; i <= 3; ++i) {
        //     for(int j = 1; j <= 3; ++j) {
        //         dp[i][j] = max(dp[i-1][j] & a[i - 1][j - 1], dp[i][j-1] & a[i - 1][j - 1]);
        //     }
        // }
        // for(int i = 1; i <= 3; ++i) {
        //     for(int j = 1; j <= 3; ++j) {
        //         cout << dp[i][j] << " ";
        //     }
        //     cout << endl;
        // }
        return 0;
    }
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    SQL Server 存储过程
    SQL数据类型介绍
    XML文件操作指南
    C# 程序集 与 反射
    详解C#中System.IO.File类和System.IO.FileInfo类的用法
    C# 之泛型详解
    C#中HashTable的用法示例2
    C#中HashTable的用法示例1
    DEDECMS5.7 首页和栏目页调用文章按权重排序
    linux创建用户,指定组
  • 原文地址:https://www.cnblogs.com/lightac/p/12610473.html
Copyright © 2011-2022 走看看