acm轻松入门.docx
- 文档编号:5678601
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:64
- 大小:29.53KB
acm轻松入门.docx
《acm轻松入门.docx》由会员分享,可在线阅读,更多相关《acm轻松入门.docx(64页珍藏版)》请在冰豆网上搜索。
acm轻松入门
Zjut部分成功代码(三)
注:
表示对XX忍无可忍了....格式审核什么的不带这样的啊
编程分
#include
usingnamespacestd;
voidmain()
{
inta[300];
intn;cin>>n;
for(inti=0;i { intk;cin>>k; if(k>100)a[i]=1; elseif(k>=76&&k<=100)a[i]=2; elseif(k>=51&&k<=75)a[i]=4; elseif(k>=31&&k<=50)a[i]=6; elseif(k>=11&&k<=30)a[i]=8; elseif(k>=1&&k<=10)a[i]=10; } intp;cin>>p; while(p--) { intm;cin>>m; intsum=0; while(m--) { intmm;cin>>mm; sum+=a[mm]; } cout< } } 斐波那契的余数 #include #include usingnamespacestd; voidmain() { vector v[0]=0; v[1]=1; for(inti=2;i v[i]=v[i-1]+v[i-2]; for(inta,b;cin>>a>>b;) { if(a==0&&b==0)break; cout< } } 卡普里加数 #include #include #include usingnamespacestd; voidmain() { vector intk,t,sum,i; for(i=10;i<100;i++) { k=i/10;t=i%10; sum=t+k; if(i==sum*sum)v.push_back(i); } for(i=1000;i<10000;i++) { k=i/100;t=i%100; sum=t+k; if(i==sum*sum)v.push_back(i); } for(i=100000;i<1000000;i++) { k=i/1000;t=i%1000; sum=t+k; if(i==sum*sum)v.push_back(i); } for(i=10000000;i<100000000;i++) { k=i/10000;t=i%10000; sum=t+k; if(i==sum*sum)v.push_back(i); } vector for(intn;cin>>n;) { for(intp=0;p<11;p++) { if(n==v[p])v1.push_back(n); } } sort(v1.begin(),v1.end()); vector for(pp=1;pp { if(v1[pp]! =v1[pp-1]) v2.push_back(v1[pp-1]); } v2.push_back(v1[pp-1]); for(intppp=0;ppp cout< } 半数跳海(题型和N个胜利者一样) #include #include usingnamespacestd; voidmain() { intn,m; for(;cin>>n>>m;) { inta[50];intk=0,t=0; vector for(inti=0;i<=n;i++)a[i]=1; while(t<(n+1)/2) { for(intp=0;p { if(a[p]! =0)k++; if(k==m) { a[p]=0;k=0; v.push_back(p+1);t++; if(t>=(n+1)/2)break; } } } for(intj=0;j cout< cout< cout< } } 半数生存(半数跳海的另一版本) 不同点: 输出幸存者。 #include #include usingnamespacestd; voidmain() { intn,m; for(;cin>>n>>m;) { if(n==1){cout<<0< else { inta[50];intk=0,t=0; vector for(inti=0;i<=n;i++)a[i]=1; while(t<(n+1)/2) { for(intp=0;p { if(a[p]! =0)k++; if(k==m) { a[p]=0;k=0;t++; if(t>=(n+1)/2)break; } } } for(intkk=0;kk { if(a[kk]==1)v.push_back(kk+1); } for(intj=0;j cout< cout< cout< } } } 勘探油田 #include usingnamespacestd; chars[100][100]; inta,b; voidf(inti,intj) { if(i+1 { s[i+1][j]='*'; f(i+1,j); } if(j+1 { s[i][j+1]='*'; f(i,j+1); } if(j-1>=0&&s[i][j-1]=='@') { s[i][j-1]='*'; f(i,j-1); } if(i-1>=0&&s[i-1][j]=='@') { s[i-1][j]='*'; f(i-1,j); } if(i-1>=0&&j-1>=0&&s[i-1][j-1]=='@') { s[i-1][j-1]='*'; f(i-1,j-1); } if(i-1>=0&&j+1 { s[i-1][j+1]='*'; f(i-1,j+1); } if(i+1=0&&s[i+1][j-1]=='@') { s[i+1][j-1]='*'; f(i+1,j-1); } if(i+1 { s[i+1][j+1]='*'; f(i+1,j+1); } } voidmain() { while(cin>>a>>b) { if(a==0&&b==0)break; intcount=0; inti,j,k,l; for(i=0;i for(j=0;j cin>>s[i][j]; for(i=0;i for(j=0;j { if(s[i][j]=='@'){ s[i][j]='*'; f(i,j); count++; } } cout< } } 倒数新解 #include #include #include usingnamespacestd; voidmain() { strings; intn;cin>>n; while(n--) { cin>>s; stringss=(s[0]=='-'? s.substr (1): s); stringsign=(ss.length()==s.length()? "": "-"); reverse(ss.begin(),ss.end()); stringS=sign+ss; cout< } } 统计图 #include usingnamespacestd; voidmain() { inta[26]={0}; for(charc;cin>>c;) { if(c>='A'&&c<='Z') a[int(c-65)]++; } intmax=0; for(inti=0;i<=25;i++) if(a[i]>max)max=a[i]; for(intj=max;j>0;j--) { if(a[0]>=j)cout<<'*'; elsecout<<''; for(intp=1;p<=25;p++) { if(a[p]>=j)cout<<''<<'*'; elsecout<<''<<''; } cout< } cout<<'A'; for(chart='B';t<='Z';t++) cout<<''< cout< } 画8 #include #include usingnamespacestd; voidmain() { intn,a;charch; cin>>n; while(n--) { cin>>ch>>a; strings=string(a/6+1,'')+string(a/2-1,ch)+"\n"; stringt=string(a/6+1,ch)+string(a/2-1,'')+string(a/6+1,ch)+"\n"; cout< for(inti=0;i<(a-3)/2;i++) cout< cout< for(intj=1;j cout< cout< cout<<(n==0? "": "\n"); } } 织斜纹布(加强) #include #include usingnamespacestd; voidmain() { strings;intn; for(;cin>>s>>n;) { for(inta=0;a { for(intb=0;b { cout< } cout< } cout< } } *傻瓜A-B #include #include #include using namespace std; void main() { int n; cin>>n; while(n--) { string a,b,result; cin>>a>>b; int min,max,i,j,k,s; min=a.length()>b.length()? b.length(): a.length(); max=b.length()+a.length()-min; k=max-min; for(i=min-1;i>=0;i--) { if(b.length()>a.length())result+=(a[i]-b[i+k])>0? (a[i]-b[i+k]+'0'): (b[i+k]-a[i]+'0'); else result+=(b[i]-a[i+k])>0? (b[i]-a[i+k]+'0'): (a[i+k]-b[i]+'0'); } for(j=k-1;j>=0;j--) { if(a.length()>b.length())result+=a[j]; else result+=b[j]; } reverse(result.begin(),result.end()); int pos=result.find_first_not_of('0'); if(pos! =string: : npos)result=result.substr(pos); else if(pos==string: : npos)result="0"; cout< } } 算菜价 请正确处理四舍五入,不应把付每个菜的零头累计起来 #include #include usingnamespacestd; voidmain() { strings;doublen,m;doublesum=0; for(;cin>>s>>n>>m;) { intd=n*m*10;doublek; if(n*m*10-d>0.5){k=(d+1)*1.0/10;} else{k=d*1.0/10;} sum+=k; } cout< } 文件名排序 文件名比较时忽略大小写,文件夹总是排在文件的前面. #include #include #include usingnamespacestd; voidmain() { vector vector strings1,s2; intl,j,i; while(cin>>s1>>s2) { if(s2=="File"){ f.push_back(s1); l=s1.length(); for(j=0;j if(s1[j]>='A'&&s1[j]<='Z')s1[j]+=32; fc.push_back(s1); } if(s2=="Dir"){ d.push_back(s1); l=s1.length(); for(j=0;j if(s1[j]>='A'&&s1[j]<='Z')s1[j]+=32; dc.push_back(s1); } } for(i=1;i<=f.size()-1;i++)4 for(j=0;j<=f.size()-1-i;j++) if(fc[j]>fc[j+1]){swap(fc[j],fc[j+1]);swap(f[j],f[j+1]);} for(i=0;i for(j=0;j if(dc[j]>dc[j+1]){swap(dc[j],dc[j+1]);swap(d[j],d[j+1]);} for(i=0;i cout< for(i=0;i cout< } 矩阵鞍点2 #include usingnamespacestd; voidmain() { intm,n; while(cin>>m>>n) { inta[100][100]; boolflag1;boolflag2; inti,j; for(i=0;i for(j=0;j cin>>a[i][j]; for(i=0;i { flag1=1;flag2=1; intx=i,y=0,x1=i,y1=0,max=a[i][0],min=a[i][0]; for(j=0;j<=n-2;j++) if(max elseif(min>a[i][j+1]){min=a[i][j+1];x1=i;y1=j+1;} for(ints=0;s if(a[x][y]>a[s][y])flag1=0; if(flag1)break; for(intss=0;ss
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- acm 轻松 入门
![提示](https://static.bdocx.com/images/bang_tan.gif)