CROC-MBTU 2012, Elimination Round (ACM-ICPC)
来源:互联网 发布:win7无法打开网络共享 编辑:程序博客网 时间:2024/05/22 03:30
代码很烂,将就着看吧~
点击打开题目链接
A. System Administrator
水题
代码:
#include<iostream>#include<cstring>#include<math.h>#include<cstdio>#include<cstdlib>using namespace std;int main(){ double a,b,c; int n,i,j,k; double sum1,sum2,s1,s2;while(~scanf("%d",&n)) { sum1=sum2=s1=s2=0; for(i=0;i<n;i++) { cin>>a>>b>>c; if(a==1) { sum1+=b+c;s1+=b;} else { sum2+=b+c;s2+=b; } } if(s1/sum1>=0.5) puts("LIVE"); else puts("DEAD"); if(s2/sum2>=0.5) puts("LIVE"); else puts("DEAD"); } return 0;}
B. Internet Address
水题,就是给你个字符串,写成<protocol>://<domain>.ru[/<context>]的形式
代码:
#include<iostream>#include<cstring>#include<math.h>#include<cstdio>#include<cstdlib>using namespace std;int main(){ char a[100]; int i,j,k; while(~scanf("%s",a)) { int t=strlen(a),s; if(a[0]=='h') { s=4; for(i=0;i<4;i++) printf("%c",a[i]); } else { s=3; for(i=0;i<3;i++) printf("%c",a[i]); } printf("://%c",a[s++]); for(int i=s;i<t-1;i++) { if(a[i]=='r'&&a[i+1]=='u'&&i+1<t-1) { printf(".%c%c/",a[i],a[i+1]);k=i+1; break; } else if(a[i]=='r'&&a[i+1]=='u') { printf(".%c%c\n",a[i],a[i+1]); k=i+1; break; } else printf("%c",a[i]); } for(j=k+1;j<t;j++) printf("%c",a[j]); cout<<endl; } return 0;}C. Game with Coins
题意:给你一个序列,每次任选一个x,使得x,2*x,2*x+1的位置上的数减一,求至少经过多少次,所有的书都变成0.
第一反应就是贪心,结果过了
代码:
#include<iostream>#include<cstring>#include<math.h>#include<cstdio>#include<cstdlib>using namespace std;int main(){ int n,i,j,k,s,Max; int a[105]; while(~scanf("%d",&n)) { int sum=0; Max=0;s=0; memset(a,0,sizeof(a)); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } if(n==1||n==2||n%2==0) { printf("-1\n"); continue; } for(i=n/2;i>0;i--) { Max=max(a[2*i],a[2*i+1]); a[2*i]=0,a[2*i+1]=0,a[i]=max(0,a[i]-Max); sum+=Max; } for(i=0;i<n;i++) sum+=a[i]; printf("%d\n",sum); } return 0;}
D.Restoring Table
题意:给你一个矩阵使得bij = ai & aj,求数列a
这道题的要求是只要给出其中一个结果就可以,所以,与的反运算就是或运算
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<stack>#include<algorithm>using namespace std;long long a[1005],c[1005][1005]; int main() { int n,i,j,k; while(cin>>n) { for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>c[i][j]; for(i=0;i<n;i++) { for(j=0;j<n;j++) if(c[i][j]!=-1) a[i]=a[i]|c[i][j]; } printf("%d ",a[0]); for(int i=1;i<n;i++) printf(" %d",a[i]); cout<<endl; } return 0; }
E. Mishap in Club
题意:给你一个字符串,只由+和-组成,每进一个人,用+表示,出一个人用减表示,求最少多少人能完成这些操作
用堆栈,每次栈顶与要进栈的字符不一样时,出栈;分别记录过程中栈中"+"和"-"的最大值,然后相加。
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<stack>#include<algorithm>using namespace std;stack<char>s1; char a[350]; int Max1,Max2; int main() { int i,j,k,ss; while(~scanf("%s",a)) { int t=strlen(a); Max1=0,Max2=0; ss=0; s1.push(a[0]); if(a[0]=='-') Max2=1; if(a[0]=='+') Max1=1; for(i=1;i<t;i++) { if(!s1.empty()&&(s1.top()!=a[i])) { s1.pop(); } else { s1.push(a[i]); } if(!s1.empty()&&Max1<s1.size()&&s1.top()=='+') Max1=s1.size(); else if(!s1.empty()&&Max2<s1.size()&&s1.top()=='-') Max2=s1.size(); //cout<<Max1<<"***"<<Max2<<endl; } printf("%d\n",Max1+Max2); while(!s1.empty()) s1.pop(); } return 0; }
后来发现实验室的都是这么做的(感觉他们做的简单,写代码能力太差):
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<stack>#include<algorithm>using namespace std;char a[350]; int main() { int i,j,k,sum1,sum2,s,e; while(~scanf("%s",a)) { int t=strlen(a); s=0;e=0; int ss=0; sum1=sum2=0; for(i=0;i<t;i++) { if(a[i]=='+') ss++; else ss--; s=min(s,ss); e=max(e,ss); } printf("%d\n",max(1,e-s)); } return 0; }
0 0
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CF CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) D题
- codeforces CROC-MBTU 2012, Elimination Round (ACM-ICPC) G题 && HDU4039
- CROC-MBTU 2012, Elimination Round / 245F Log Stream Analysis (日期处理&二分)
- CROC-MBTU 2012, Elimination Round / 245D Restoring Table (位运算)
- CROC-MBTU 2012, Elimination Round / 245E Mishap in Club (想法题)
- CF CROC-MBTU 2012, Final Round div 2
- CROC-MBTU 2012, Final Round (Online version, Div. 2)
- codeforce CROC-MBTU 2012, Final Round (Online version, Div. 2)
- CROC-MBTU 2012, Final Round (Online version, Div. 2)
- Codeforces CROC 2016 - Elimination Round
- CROC 2016 - Elimination Round C 二分
- CROC 2016 - Elimination Round(A)bfs
- CROC 2016 - Elimination Round (Rated Unofficial Edition)题解
- curl获取网页内容
- afgdaga
- a美报:马航客机搜寻中国不用“蛟龙”号暴露技术差距
- keil uvision4和proteus联合调试
- 2014编程之美挑战赛初赛 题目1 焦距
- CROC-MBTU 2012, Elimination Round (ACM-ICPC)
- C++中string类常用方法
- ACM-计算几何之围困——hrbustoj1142
- Android OpenGL ES设置光照效果Set Lighting
- MiniGui
- Java实现发送邮件
- Javascript十问
- 堆排序算法的实现
- XMemcached&Spring集成