POj 1879 Tempus et mobilius Time and motion (模拟+群)
2016-01-29 10:58
381 查看
题目特别长,大意为球的传递。
三个轨道,一个库。各自是分钟单位的轨道。5min单位的轨道。一小时单位的轨道。还有就是n容量的库。
每过一分钟,一个小球从库里面出来,库符合先进先出,进入分钟轨道。假设分钟轨道里面已经有了4个,那么这四个就滑入库,而这个球则进入5min轨道,假设5min轨道已经有了11个。这11个就滑入库。而这个球则滑入小时轨道。假设小时轨道已经有了11个,则这11个滑入库。这个球最后滑入库。在轨道中的球滑入库中,轨道里的球满足先进后出。
如此,轨道是栈。库是队列。并且模拟过程也出来了。
暴力会爆
这个题目
提升了我的调试能力。
1. 大规模数据用freopen输入输出,再用UE等软件对照diff,找到问题后再调试
2.中途设置条件输出。
三个轨道,一个库。各自是分钟单位的轨道。5min单位的轨道。一小时单位的轨道。还有就是n容量的库。
每过一分钟,一个小球从库里面出来,库符合先进先出,进入分钟轨道。假设分钟轨道里面已经有了4个,那么这四个就滑入库,而这个球则进入5min轨道,假设5min轨道已经有了11个。这11个就滑入库。而这个球则滑入小时轨道。假设小时轨道已经有了11个,则这11个滑入库。这个球最后滑入库。在轨道中的球滑入库中,轨道里的球满足先进后出。
如此,轨道是栈。库是队列。并且模拟过程也出来了。
暴力会爆
这个题目
提升了我的调试能力。
1. 大规模数据用freopen输入输出,再用UE等软件对照diff,找到问题后再调试
2.中途设置条件输出。
#include <iostream> #include <cstdio> #include <vector> #include <string> #define maxn 1005 using namespace std; int N,M; int a[200]; int q[60*24*10]; int Mstack[3][20];//sec min hou int top[3]; int vis[200]; int head,tail; int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int solve() { int i,j,k,flag; int cnt,ans; for(i=1;i<=N;i++) q[i]=a[i]=i; head=1;tail=N+1; memset(top,0,sizeof(top)); memset(vis,0,sizeof(vis)); for(j=tail,i=1;i<=60*24;i++) { if(top[0]==4){ for(k=0;k<4;k++) q[j++]=Mstack[0][--top[0]]; if(top[1]==11){ for(k=0;k<11;k++) q[j++]=Mstack[1][--top[1]]; if(top[2]==11){ for(k=0;k<11;k++) q[j++]=Mstack[2][--top[2]]; q[j++]=q[i]; }else Mstack[2][top[2]++]=q[i]; }else Mstack[1][top[1]++]=q[i]; }else Mstack[0][top[0]++]=q[i]; /*if(i>=720) printf("%d\n",q[i]); printf("\n");*/ } ans=1; for(j=i;j<N+i;j++) { if(vis[j-i+1]==0) { vis[j-i+1]=1; k=q[j]; cnt=1; while(vis[k]==0) { cnt++; vis[k]=1; k=q[i+k-1]; } ans=ans/gcd(ans,cnt)*cnt; } } return ans; } int main() { //freopen("E:\\out.txt","w",stdout); while(scanf("%d",&N),N) { printf("%d balls cycle after %d days.\n",N,solve()); } return 0; }
相关文章推荐
- gcd和NSOperationQueue区别
- 验证码倒计时
- 整理HTML5的一些新特性与Canvas的常用属性
- 性能监视器
- javaWeb笔记(二) httpServlet
- CSS3动画-表盘
- 三元表达式
- extern 常用于声明一个指针
- 【NOIP模拟题】连通
- Objective-C MD5 And SHA And HMAC-SHA
- ElasticSearch 2 (5) - Document APIs
- 自学adb命令
- requirejs data-main加载总是失败的问题
- Hive hiveserver2
- Xamarin开发Android之创建一个项目并调试
- iptables 设置
- 邮件服务器金牌服务是如何练成
- Zoj 3785 What day is that day?
- 漫天雪花效果
- js倒计时