Codeforces Round #135 (Div. 2)

來源:互聯網
上載者:User

A題:水題,可惜一開始犯糊塗,結果30min才做出來-.-統計下字母出現次數,重新排列,ok

int main(){    int N,flag[27];    char A[1005],B[1005];    while(~scanf("%d",&N)){        scanf("%s",A);        memset(flag,0,sizeof(flag));        int len=strlen(A);        for(int i=0;i<len;i++){            flag[A[i]-'a']++;        }        int i=0;     //   printf("%d %d\n",i,flag[i]);        for(i=0;i<26;i++){            if(flag[i]){                if(flag[i]%N!=0)    break;            }        }        if(i!=26) printf("-1\n");        else        {            for(i=0;i<N;i++){                for(int j=0;j<26;j++)                    if(flag[j]){                        for(int m=0;m<flag[j]/N;m++)                        printf("%c",j+'a');                    }            }            printf("\n");        }    }}

B題,求p->p-d之間末尾9最多的數,,,,當時用暴力的直接在p~p-d之間的9,,,結果TLE,,,,T_T看了下DS神的代碼,,,真是捶胸啊.

我太弱了恨不得撞牆

/*Problem ID:CF135DIV2Bmeaning:求末尾9的最多p-d~pAnalyzing:類比,暴力會逾時*/#include <iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<vector>using namespace std;typedef struct even{int y1,y2,x;}even;#define FOR(i,s,t) for(int i=(s); i<(t); i++)#define LL long long#define BUG puts("here!!!")#define STOP system("pause")#define file_r(x) freopen(x, "r", stdin)#define file_w(x) freopen(x, "w", stdout)const int maxn=500005;int main(){    LL tail,front,base,cur,ans;    LL  p,d;    while(~scanf("%I64d%I64d",&p,&d)){        front=0;        ans=p;        for(int i=0;i<18;i++){            tail=0;            base=1;            for(int j=0;j<i;j++){                tail=tail*10+9;                base*=10;            }            front=p/base;            if(p%base<tail) front--;            cur=front*base+tail;            if(cur>=p-d) ans=cur;        }        printf("%I64d\n",ans);    }    return 0;}

C題.比賽時沒有考慮k==2的特殊情況,水過去了.哎,還好的是沒被cha,如果這也算幸運的話.k==2,,怎麼處理?看了下學號哥的代碼.真是贊,可以記錄下A在奇數位和B在偶數位的數量和相反的數量最後結果就是按照大的來!!!

/*Problem ID:CF135Cmeaning:Analyzing:*/#include <iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<vector>using namespace std;typedef struct even{int y1,y2,x;}even;#define FOR(i,s,t) for(int i=(s); i<(t); i++)#define LL long long#define BUG puts("here!!!")#define STOP system("pause")#define file_r(x) freopen(x, "r", stdin)#define file_w(x) freopen(x, "w", stdout)const int maxn=500005;int main(){    int n,k;    char a[maxn];    int num,j=0;    while(~scanf("%d%d",&n,&k)){        scanf("%s",a);        num=0;        int cnt1=0,cnt2=0;        if(k==2){           for(int i=0;i<n;i++){            if(i&1){                if(a[i]=='A') cnt1++;            }            else {                if(a[i]=='B') cnt1++;            }           }           for(int i=0;i<n;i++){               if(i&1){                   if(a[i]=='B') cnt2++;               }               else {                   if(a[i]=='A') cnt2++;               }           }        if(cnt1>cnt2){//A在奇數位上的次數比較多            printf("%d\n",cnt2);            for(int i=0;i<n;i++){                if(i&1) putchar('A');                else putchar('B');            }        }        else {//A在偶數位上的次數比較多            printf("%d\n",cnt1);            for(int i=0;i<n;i++){                if(i&1) putchar('B');                else putchar('A');            }        }        puts("");        }        else {        for(int i=1;i<n;i++){            j=0;            if(a[i]!=a[i-1]) continue;            else if(a[i]==a[i-1]){                while(1){                    a[i]=j+'A';                    if(a[i]!=a[i-1]&&a[i]!=a[i+1]) break;                    j++;                }                num++;            }        }        printf("%d\n",num);        printf("%s\n",a);        }    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.