2013 国庆第一场(The 2011 Rocky Mountain Regional Contest)
来源:互联网 发布:智者 观一叶而知秋 编辑:程序博客网 时间:2024/06/05 01:01
题目:hdu4161-4170
Iterated Difference:
绝对暴力,可是比赛时写出代码,wa了三次,因为中间输出忘了注释,这写代码功底是差到家了,很少能一气呵成,不出错误。还是思路不够清晰明了。
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int a[50];int b[50];int main(){ int n; int cas=0; int step; while(cin>>n&&n) { step=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } int flag=0; sort(b,b+n); if(b[0]==b[n-1]) { // cout<<"hehe"<<endl; flag=1; step=0; } else { int t; for(int j=1;j<=1000;j++) { step++; t=a[0]; for(int i=0;i<n-1;i++) { a[i]=abs(a[i]-a[i+1]); b[i]=a[i]; } a[n-1]=abs(a[n-1]-t); b[n-1]=a[n-1]; sort(b,b+n); if(b[0]==b[n-1]) { flag=1; break; } } } printf("Case %d: ",++cas); if(flag==0) printf("not attained\n"); else printf("%d iterations\n",step); } return 0;}Stock Prices:
大水题,排序一下就行
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>using namespace std;struct node{ int a; int order;}s[1100000];bool cmp(node x,node y){ if(x.a==y.a) return x.order<y.order; else return x.a<y.a;}int b1[110];int b2[110];int main(){ int n,k1,k2,i; int cas=0; while(scanf("%d%d%d",&n,&k1,&k2)&&n&&k1&&k2) { for(i=1;i<=n;i++) { scanf("%d",&s[i].a); s[i].order=i; } sort(s+1,s+1+n,cmp); printf("Case %d\n",++cas); for(i=1;i<=k1;i++) b1[i]=s[i].order; sort(b1+1,b1+1+k1); for(i=1;i<=k1;i++) { cout<<b1[i]; if(i!=k1) cout<<" "; } cout<<endl; for(i=n;i>n-k2;i--) b2[n-i]=s[i].order; sort(b2,b2+k2); for(i=k2-1;i>=0;i--) { cout<<b2[i]; if(i!=0) cout<<" "; } cout<<endl; } return 0;}
Pills:
题意就是:n个w和n个h组成一个排列,对于任意前i(i>=1&&i<=2*n)个字符,w的个数大于等于h的个数。 裸卡特兰数,之前有做过0,1排列的,还是一下没有反应过来。
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>using namespace std;struct node{ int a; int order;}s[1100000];bool cmp(node x,node y){ if(x.a==y.a) return x.order<y.order; else return x.a<y.a;}int b1[110];int b2[110];int main(){ int n,k1,k2,i; int cas=0; while(scanf("%d%d%d",&n,&k1,&k2)&&n&&k1&&k2) { for(i=1;i<=n;i++) { scanf("%d",&s[i].a); s[i].order=i; } sort(s+1,s+1+n,cmp); printf("Case %d\n",++cas); for(i=1;i<=k1;i++) b1[i]=s[i].order; sort(b1+1,b1+1+k1); for(i=1;i<=k1;i++) { cout<<b1[i]; if(i!=k1) cout<<" "; } cout<<endl; for(i=n;i>n-k2;i--) b2[n-i]=s[i].order; sort(b2,b2+k2); for(i=k2-1;i>=0;i--) { cout<<b2[i]; if(i!=0) cout<<" "; } cout<<endl; } return 0;}
User Names:
算是if,else 问题,又是敲完出了好多bug,中间参数竟然传错了,后来输入有问题,原来是样例的问题,每个样例都多了一个空格。经过各路帮助,解决了。
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<map>#include<set>using namespace std;map<string,int > mp;char s[1000][100];string ss[1100];int main(){ int cas=0; int n,k; while(scanf("%d%d",&n,&k)&&n&&k) { mp.clear();// getchar(); char c; while((c=getchar())!='\n') ; for(int i=0;i<n;i++) { gets(s[i]);// cout<<s[i]<<endl; } for(int i=0;i<n;i++) { ss[i]=""; int len=strlen(s[i]); int j=0; while(s[i][j]=='-'||s[i][j]=='\'') { j++; // cout<<"j"<<j<<endl; } if(s[i][j]>='A'&&s[i][j]<='Z') s[i][j]+=32; ss[i]+=s[i][j]; //cout<<ss[i]<<endl; for(j=len-1;j>=0;j--) { if(s[i][j]==' ') break; } j++; // cout<<"je j:"<<j<<endl; int lenth=1; while(j<len&&lenth<k) { if(s[i][j]=='-'||s[i][j]=='\'') { j++; continue; } if(s[i][j]>='A'&&s[i][j]<='Z') s[i][j]+=32; ss[i]+=s[i][j]; j++; lenth++; } mp[ss[i]]++; int ret=mp[ss[i]]; if(ret>1) { //cout<<i<<"hehe"<<endl; ret--; //cout<<"ret"<<ret<<endl; int ll=ss[i].length(); if(ll<k&&ret<10) { ss[i]+=(ret+'0'); } else if(ll<k-1) { if(ret/10!=0) ss[i]+=(ret/10+'0'); ss[i]+=(ret%10+'0'); } else { if(ll==k&&ret<10) { //cout<<"hahha"<<endl; ss[i][ll-1]=(ret+'0'); // cout<<"11"<<endl; //cout<<ss[i][ll-1]<<endl; //cout<<ss[i]<<endl; } else if(ll==k&&ret>=10) { ss[i][ll-1]=(ret%10+'0'); ss[i][ll-2]=(ret/10+'0'); } else if(ll==k-1&&ret>=10) { ss[i][ll-1]=(ret/10+'0'); ss[i]+=(ret%10+'0'); } } } } printf("Case %d\n",++cas); for(int i=0;i<n;i++) { cout<<ss[i]<<endl; } } return 0;}
- 2013 国庆第一场(The 2011 Rocky Mountain Regional Contest)
- The 2011 Rocky Mountain Regional Contest&&Iterated Difference
- The 2012 Rocky Mountain Regional Contest 题解
- Nine(2012 Rocky Mountain Regional Contest)
- Flipping Cards 图论 强连通分量 2015 Rocky Mountain Regional Programming Contest
- 第一场选拔赛 [2013, VI Samara Regional Intercollegiate Programming Contest]
- HDOJ2009暑期集训公开赛(7)-2008 Rocky Mountain Regional
- 人生第一场regional
- 20131002组队赛-Regionals 2011, North America - Rocky Mountain
- 组队赛 131002 Regionals 2011, North America - Rocky Mountain
- The 2013 ACM-ICPC Asia Changsha Regional Contest KPocket Cube
- The 2013 ACM-ICPC Asia Changsha Regional Contest - A
- The 2013 ACM-ICPC Asia Changsha Regional Contest
- The 2013 ACM/ICPC Asia Changchun Regional Contest题解
- The 2013 South America/Brazil Regional Contest 题解
- The 2016 ACM-ICPC Asia Dalian Regional Contest(汇总)
- 国庆后的第一场招聘
- The 2016 Asia Regional Contest, Tsukuba
- 不太看好中国的云端服务市场
- 企业或政府应用怎么做云服务?
- kmp算法详解
- 悲愤的实习生涯,应届生如何迎接毕业的忧伤
- hibernate之component对象细分(面向设计的粒度细分)
- 2013 国庆第一场(The 2011 Rocky Mountain Regional Contest)
- rvalue and lvalue
- hdu 3669 Cross the Wall
- Apache CXF JAX-WS example
- cocos2d-x精灵的旋转
- Matlab得到运行时间
- Excel VBA 入门(3) - Workbook对象主要属性
- 统计数字
- 论这两年不断突破心理底线的互联网薪水by OfferCome