B題 碰撞的小球
簡單模擬題。具體思路詳見註釋。node
#include <bits/stdc++.h> using namespace std; struct node { int pos,d;//球的位置,方向 }a[110]; int n,t,l,tmp; int main() { ios::sync_with_stdio(false); cin>>n>>l>>t; for(int i=1;i<=n;i++) { cin>>a[i].pos; a[i].d=1;//初始方向均向右,每秒位置加上d(d只能等於1或-1) } for(int i=1;i<=t;i++)//遍歷時間 { for(int j=1;j<=n;j++)//遍歷單個小球,處理碰牆狀況 { tmp=a[j].pos+a[j].d; if(tmp==l||tmp==0){ a[j].pos=tmp;a[j].d=(-a[j].d);}//碰到牆,反向 else a[j].pos+=a[j].d;//未碰牆,按原方向移動一個單位長度 } for(int j=1;j<=n;j++)//遍歷尋找兩個相同位置的小球,處理兩球相撞狀況 for(int k=j+1;k<=n;k++) { if(a[j].pos==a[k].pos)//兩球相撞,兩球均反向 { a[j].d=(-a[j].d); a[k].d=(-a[k].d); } } } for(int i=1;i<=n;i++) i==n?printf("%d\n",a[i].pos):printf("%d ",a[i].pos); return 0; }
D題 消除類遊戲
數據很小,直接暴力。ios
100分 AC代碼:c++
#include <cstdio> #include <iostream> using namespace std; bool vis[40][40]; int n,m,x1,x2,y1,y2,tmp,a[40][40]; int main() { ios::sync_with_stdio(false); cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { tmp=0;x1=x2=i;//記得初始化x一、x2(x一、x2爲豎行能夠消去的區間) for(int k=i;k<=n;k++) { if(a[k][j]==a[i][j]){ x2=k;tmp++;} else break; } for(int k=i-1;k>=1;k--) { if(a[k][j]==a[i][j]){ x1=k;tmp++;} else break; } if(tmp>=3) { for(int k=x1;k<=x2;k++) vis[k][j]=1; } tmp=0;y1=y2=j;//記得初始化y一、y2(y一、y2爲橫行能夠消去的區間) for(int k=j;k<=m;k++) { if(a[i][k]==a[i][j]){ y2=k;tmp++;} else break; } for(int k=j-1;k>=1;k--) { if(a[i][k]==a[i][j]){ y1=k;tmp++;} else break; } if(tmp>=3) { for(int k=y1;k<=y2;k++) vis[i][k]=1; } } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(vis[i][j]==1)a[i][j]=0; j==m?printf("%d\n",a[i][j]):printf("%d ",a[i][j]); } return 0; }
A題 跳一跳
100分 AC代碼:web
#include <bits/stdc++.h> using namespace std; int opt,x,ans; int main() { ios::sync_with_stdio(false); x=1;ans=0; while(cin>>opt&&opt) { if(opt==1)x=1; else { if(x==1)x=2; else x+=2; } ans+=x; } printf("%d\n",ans); return 0; }
C題 數位之和
100分 AC代碼:svg
#include <bits/stdc++.h> using namespace std; int n,d,ans; int main() { ios::sync_with_stdio(false); cin>>n; while(n) { d=n%10; ans+=d; n=n/10; } printf("%d\n",ans); return 0; }
本文同步分享在 博客"nefu_ljw"(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。url