Codeforces #634 div3

A.Three Blocks Palindrome (easy version)

    #include<stdio.h>
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            int n;
            scanf("%d",&n);
//官方題解  printf("%d\n",(n-1)/2);
            if(n<3){
             printf("%d\n",0);
             continue;
             }
             int res=0;
             if(n&1) res=n/2;
             else res=n/2-1;
             printf("%d\n",res);
        }
        return 0;
    } 

B. Construct the String
思路:構(gòu)造一個(gè)長度為a的字符串,其中不同字符個(gè)數(shù)為b個(gè),將其重復(fù)便可得到所需字符串。

    #include<stdio.h>
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            int n,a,b;
            scanf("%d %d %d",&n,&a,&b);
            char s[2010];
            int cnt=0;
            for(int i=0;i<a-b+1;i++)        s[cnt++]='a';
            char ss='a';
            for(int i=a-b+1,j=1;i<a;i++){
                s[cnt++]=(ss+j);
                j++;
            }
            for(int i=a;i<n;i++) s[cnt++]=s[i-a];
            for(int i=0;i<cnt;i++) putchar(s[i]);
            printf("\n");
                
        }
        return 0;
    } 

C. Two Teams Composing
思路:得到字符串中不同字符的個(gè)數(shù)與單個(gè)出現(xiàn)最多的次數(shù),結(jié)果便是二者小的哪一個(gè),特殊情況是相同元素那一組多一個(gè)的話可以勻給另一組一個(gè)。

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            int n; 
            scanf("%d",&n);
            int x; 
            int cnt1[n+1];
            memset(cnt1,0,sizeof(cnt1));
            for(int i=0;i<n;i++){
             scanf("%d",&x);
             cnt1[x]++;
             }
              int maxnum=0,cnt=0;
              for(int i=0;i<=n;i++){
                if(cnt1[i]!=0) cnt++;
                 if(cnt1[i]>maxnum) maxnum=cnt1[i];
              }
     
            if(maxnum>cnt) printf("%d\n",cnt);
            else if(cnt==maxnum) printf("%d\n",cnt-1);
            else  printf("%d\n",maxnum);
        }
        return 0;
    } 

D. Anti-Sudoku
思路:整體遍歷,把所有的2替換為1,便可以達(dá)到要求。

    #include<stdio.h>
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            char s[9][9];
            for(int i=0;i<9;i++) scanf("%s",s[i]);
            for(int i=0;i<9;i++){//puts多香,我寫代碼時(shí)候沒腦子
                for(int j=0;j<9;j++){
                    if(s[i][j]=='2')
                    s[i][j]='1';
                   putchar(s[i][j]);
                }
                putchar('\n');
            }
            
        }
    } 

E1. Three Blocks Palindrome (easy version)
思路:
E2. Three Blocks Palindrome (hard version)
思路:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容