2020.10.23 Rating 补题报告

A - Fair Game

题意:给出一组牌,问是否可以分成两组之间数字不同,数量相同,一组内数字相同的的两组牌

做法:刚开始读的不仔细,,直接用set做了,结果忘了还得要求数目相同,又写了个判断数目的才对

代码:

//去吧马里奥!把AC公主救回来!
//        ********
//       ************
//       ####....#.
//     #..###.....##....
//     ###.......######
//        ...........
//       ##*#######
//    ####*******######
//   ...#***.****.*###....
//   ....**********##.....
//   ....****    *****....
//     ####        ####
//   ######        ######
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<map>
#include<sstream>
#include<cstring>
#include<vector>
#include<iomanip>
#include<queue>
#include<set>
#define LL long long
#define _64 __int64
const double PI = atan(1.)*4.;
using namespace std;

int main(){
    int n;
    cin >> n;
    int cnt = 0;
    int a[200];
    int b[200005];
    for(int i = 0;i < 200005;i++){b[i] = 0;}
    set<int>p;
    while(n--){
        int x;
        cin >> x;

        b[x]++;

    }

    //cout << b[27] << b[11];
    int ff=  0;
    for(int i = 1;i <= 100;i++){
        if(b[i] != 0){
ff++;
            a[ff] = i;

        }
    }

    if(ff != 2 || b[a[1]] != b[a[2]]){
        cout << "NO" << endl;
    }else{
        cout << "YES"<<endl;
        cout<<a[1] << " " << a[2] << endl;
    }
}

B - Polycarp and Letters

题意:求连续的小写字母串里,不同字母对多的是多少种

做法:做法感觉和以前的某个题很新爱国,就是循环读,读到小写就标记,计数,读到大写就清空,比较,最后比较最大值是多少就可以了

代码:

//去吧马里奥!把AC公主救回来!
//        ********
//       ************
//       ####....#.
//     #..###.....##....
//     ###.......######
//        ...........
//       ##*#######
//    ####*******######
//   ...#***.****.*###....
//   ....**********##.....
//   ....****    *****....
//     ####        ####
//   ######        ######
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<map>
#include<sstream>
#include<cstring>
#include<vector>
#include<iomanip>
#include<queue>
#include<set>
#define LL long long
#define _64 __int64
const double PI = atan(1.)*4.;
using namespace std;

int main(){
    int n;
    cin >> n;
    char s[300];
    for(int i = 0;i < n;i++){
        cin >> s[i];
    }
    int vis[300];
    int maxn = 0;
    int num = 0;
for(int i = 0;i < 300;i++){vis[i] = 0;}
    for(int i = 0;i < n;i++){
        if(s[i] >= 'A' && s[i] <= 'Z'){
            if(maxn <= num){
                maxn = num;
            }
            num = 0;
            for(int i = 0;i < 300;i++){vis[i] = 0;}
        }else{
            if(vis[(int)s[i]] == 0){
                vis[(int)s[i]] = 1;
                num++;
            }
        }
    }

if(maxn <= num)
        maxn = num;

    cout << maxn << endl;
}

D - Holiday Of Equality

题意:给出一串数字,求要使每个人的钱都一样,需要从国库里拿出多少钱

做法:排序找到最大的那个值,之后分别减去所有人的钱,之后求和

代码:

//去吧马里奥!把AC公主救回来!
//        ********
//       ************
//       ####....#.
//     #..###.....##....
//     ###.......######
//        ...........
//       ##*#######
//    ####*******######
//   ...#***.****.*###....
//   ....**********##.....
//   ....****    *****....
//     ####        ####
//   ######        ######
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<map>
#include<sstream>
#include<cstring>
#include<vector>
#include<iomanip>
#include<queue>
#include<set>
#define LL long long
#define _64 __int64
const double PI = atan(1.)*4.;
using namespace std;



int a[200];
int main(){
    int n;
    cin >> n;
    for(int i = 0;i < n;i++){
        cin >> a[i];
    }
    sort(a,a+n);
    int cnt = 0;
    for(int i = 0;i < n;i++){
        cnt += a[n-1]-a[i];
    }
    cout << cnt  << endl;
}

E - Blown Garland

题意:给出字符串,由四种灯组成,而且一定按照某种顺序排列循环,其中!代表坏了,问要将坏的灯泡替换掉每种灯泡各需要多少

做法:因为灯泡的排列顺序是随机的,而且输出的顺序的一定的,因此得给每个灯泡标上号,防止混乱,进行循环,记录灯泡本应该出现的次数,以及实际上出现的次数,最后用应该出现的次数减去实际出现的次数,就是!的数量,且灯泡型号也就知道了

代码:

//去吧马里奥!把AC公主救回来!
//        ********
//       ************
//       ####....#.
//     #..###.....##....
//     ###.......######
//        ...........
//       ##*#######
//    ####*******######
//   ...#***.****.*###....
//   ....**********##.....
//   ....****    *****....
//     ####        ####
//   ######        ######
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<map>
#include<sstream>
#include<cstring>
#include<vector>
#include<iomanip>
#include<queue>
#include<set>
#define LL long long
#define _64 __int64
const double PI = atan(1.)*4.;
using namespace std;


int main(){
     char s[300];
     cin >> s;
     int len;
     len = strlen(s);
     int num[4];
     //int mark[4];
     int m[4];
     for(int i = 0;i < 4;i++){
        num[i] = 0;
        //mark[i]= 0;
        m[i] = 0;
     }
     int R,G,B,Y;
     for(int i = 0;i < len;i++){
        num[i%4]++;
        if(s[i] == 'R'){
            R = i%4;
            m[0]++;
        }
        if(s[i] == 'B'){
            B = i%4;
            m[1]++;
        }
        if(s[i] == 'Y'){
            Y = i%4;
            m[2]++;
        }
        if(s[i] == 'G'){
            G = i%4;
            m[3]++;
        }
     }

     cout << num[R]-m[0] << " " << num[B]-m[1] << " " <<num[Y]-m[2] << " " << num[G]-m[3] << endl;

}

 

posted @ 2020-10-31 13:36  CCCCrack  阅读(104)  评论(0)    收藏  举报