Codeforces Round #135 (Div. 2)
来源:互联网 发布:vscode npm run dev 编辑:程序博客网 时间:2024/06/05 09:55
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;}
- Codeforces Round #135 (Div. 2)
- Codeforces Round #135 (Div. 2)
- Codeforces Round #135 (Div. 2)
- Codeforces Round #135 (Div. 2)
- Codeforces Round #135 (Div. 2)
- Codeforces Round #135 (Div. 2)题解
- Codeforces Round #135 (Div. 2) A题
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #107 (Div. 2)
- Codeforces Round #108 (Div. 2)
- Codeforces Round #110 (Div. 2)
- Codeforces Round #122 (Div. 2)
- Codeforces Round #121 (Div. 2)
- Android4.0运行时报错解决方法 Failed to allocate memory: 8
- 一个小公司老板的日常管理,希望能让创业的朋友学到东西
- socket client 编程之一:入门
- Android/linux(earlysuspend、lateresume)睡眠唤醒机制简介
- Manifest
- Codeforces Round #135 (Div. 2)
- RAID0、RAID1、RAID0+1、RAID5原理介绍
- C++CTime使用方法
- 雷锋读图:风雨25载 “摩托”人为中国通信业作出的贡献
- MySQL索引的使用
- U-Boot启动过程完全分析
- 控制台屏幕缓冲区
- 前端开发神级编辑器notepad++以及Zen Coding神级插件
- Java UDP通信(DatagramPacket类、DatagramSocket类、InetAddress类)