zoukankan      html  css  js  c++  java
  • [2020.4.5rating]codeforces Beta Round #92 (Div. 2 Only) (A、B)Codeforces Beta Round #95 (Div. 2)(A-C)

    一级目录

    二级目录

    三级目录

    链接

    Codeforces Beta Round #92 (Div. 2 Only)
    Codeforces Beta Round #95 (Div. 2)

    A - The number of positions

    题目类型:思维

    题意:

    一共有n个人,有不少于a个人站在他前面,有不多于b个人在他后面,问他的位置有几种选择

    代码:

    int main(){
        int n, ans, a, b; cin >> n >> a >> b;
        (n-a-1>b) ? ans=b+1: ans=n-a;
        OT(ans);
    }
    

    B - Permutations

    题目类型:模拟

    题意:

    给你n个排列,每个排列有k个数字,现在要求你对这n个排列,每个进行重新排列,要求这n个排列中的最大数和最小数的差值最小。

    解题思路:

    枚举所有的排列,每次直接记录差值

    代码:

    string v[10];
    int main()
    {
        int n, k, num[10]; RD(n, k);
        REP(i, n) cin >> v[i];
        REP(i, k) num[i] = i;
        int ans = INF;
        do
        {
            vector<int> _;
            REP(i, n) {
                int t = 0;
                REP(j, k)
                    t = t * 10 + (v[i][num[j]]);
                _.push_back(t);
            }
            sort(ALL(_));
            ans = min(ans, _[n-1] - _[0]);
        } while (next_permutation(num, num+k));//全排列
    
        OT(ans);
        return 0;
    }
    

    A - cAPS lOCK

    题目类型:模拟

    题意:

    按照题目要求变更字符

    Let’s consider that a word has been typed with the Caps lock key accidentally switched on, if:
    either it only contains uppercase letters;
    or all letters except for the first one are uppercase.

    解题思路:

    它仅包含大写字母;
    或除第一个字母外的所有字母均为大写。这两种情况下需要改写

    代码:

    string s;
    int main(){
        cin >>s;
        FOR(i, 1, SZ(s))
            if(s[i]>='a' && s[i]<='z'){
                cout << s << endl;
                return 0;
            }
        FOR(i, 0, SZ(s)){
            if(s[i]>='a' && s[i]<='z')
                s[i] = s[i] + 'A' - 'a';
            else if(s[i]>='A' && s[i]<='Z')
                s[i] = s[i] + 'a' - 'A';
        }
        cout << s << endl;
        return 0;
    }
    

    E - Opposites Attract

    题目类型:思维

    题意:

    通过组合,出现最多的0值

    代码:

    const int N = 12;
    LL a[N], b[N];
    int main() {
        LL n, ans = 0; scanf("%lld", &n);//RD(n);
        REP(i, n) {
            int t; scanf("%d", &t);
            if (t >= 0) {
                a[t]++;
            } else {
                b[-t]++;
            }
        }
        ans = (LL)a[0] * (a[0] - 1) / 2;
        FOR_1(i, 1, 10){
            ans += (LL)a[i] * b[i];
        }
        OT(ans);
    }
    

    F - The World is a Theatre

    题目类型:

    题意:

    他们需要选择一个小组,恰好有t个演员,其中男生人数不少于4个,女孩人数不少于1个。有多少种方法可以选择一个小组

    解题思路:

    化简下公式 C(n, m) = C(n - 1, m - 1) + C(n - 1, m)。
    先打表出组合数,然后计算就可以了

    代码

    const int M = 101;
    LL arr[M][M];
    void C() {
        REP(i, M) {
            arr[i][0] = 1;
        }
        FOR_1(i, 1, M) {
            FOR_1(j, 1, i) { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }}
    } 
    int main() {
        C();
        int m, n, t; RD(n, m, t);
        LL ans = 0;
        FOR(i, 4, t) {
            if (n >= i && (t - i) <= m) {
                ans += arr[n][i] * arr[m][t - i];
            }
        }
       OT(ans);
        return 0;
    }
    
  • 相关阅读:
    美国州名来源
    SQL Constraint/Index
    英语中的 姓氏/Surname
    GNU glibc
    英语人名探源/字母升序排列
    About 'atoi'
    封装一个类似jquery的ajax方法
    函数柯里化
    AngularJS实现TodoMVC
    webpack简单使用
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12927331.html
Copyright © 2011-2022 走看看