最后一次模拟
1、防雾霾
#include <stdio.h> int main() { int n; int x,a=0,m,tmp; scanf("%d%d",&n,&m); tmp=m; while(n--) { scanf("%d",&x); tmp-=x; if(tmp<=0) tmp=m,a++; } if(tmp<m) a++; printf("%d",a); return 0; }
2、记数问题
#include <stdio.h> int n,x; int get(int s) { int res=0; while(s) { if((s%10)==x) res++; s/=10; } return res; } int main() { scanf("%d%d",&n,&x); int i=0,ans=0; for(i=1;i<=n;i++) ans+=get(i); printf("%d",ans); return 0; }
3、终极大奖
就是个约瑟夫问题把你个退役憨批搞的这么狼狈
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { int a[123]; while(1) { int n,m; scanf("%d%d",&n,&m); if(n==0 && m==0) break; for(int i=1;i<=n;i++) scanf("%d",&a[i]); int suv=n,tmp=1; while(1) { int cnt=0; while(1) { if(a[tmp]==0) { while(a[tmp]==0) { tmp++; if(tmp>n) tmp=1; } } cnt++; if(cnt==m) break; tmp++; if(tmp>n) tmp=1; } a[tmp]--; if(a[tmp]==0) suv--; if(suv==1) break; tmp++; if(tmp>n) tmp=1; } for(int i=1;i<=n;i++) if(a[i]) { printf("%d\n",i); break; } } return 0; }
4、煎鸡排
生的先煎,没有生的了再考虑半生的
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int a[1234]; int n,k; int main() { scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) a[i]=2; int ans=0; if(n<=k) { printf("%d",n*2); return 0; } ans+=n/k; int tmp=n%k; tmp=k-tmp; ans++; n-=tmp; ans+=n/k; if(n%k) ans++; printf("%d",ans); return 0; }