题目特别长,大意为球的传递。

三个轨道,一个库。各自是分钟单位的轨道。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;
}

POj 1879 Tempus et mobilius Time and motion (模拟+群)的更多相关文章

  1. POJ 1879 Tempus et mobilius Time and motion 队列和栈

    很简单的队列和栈的应用,不过读明白题意非常重要:(直接引用白书的题解)三个轨道,一个库.分别是分钟单位的轨道,5min单位的轨道,一小时单位的轨道,还有就是n容量的库.每过一分钟,一个小球从库里面出来 ...

  2. UVA 239 - Tempus et mobilius. Time and motion(更换周期)

    UVA 239 - Tempus et mobilius. Time and motion 题目链接 题意:这题题意也是吊得飞起,看了老半天,大概是这样: 有一个放球的队列.和3个轨道(说白了就是栈) ...

  3. POJ 1573 Robot Motion 模拟 难度:0

    #define ONLINE_JUDGE #include<cstdio> #include <cstring> #include <algorithm> usin ...

  4. poj 1879 Truck History

    本题链接:点击打开链接 题目大意: 输入n表示卡车辆数,输入每辆卡车编号.即长度为7的字符串,每辆卡车编号均可由其他类型编号衍生过来,求由当中一辆衍生出其他全部的最小衍生次数(有一个字符不同就需衍生一 ...

  5. POJ 1879

    栈和队列的综合应用,利用栈和队列分别模拟分,5分,时槽,以及小球队列 利用求出一天后的置换可以求出周期,进而求出最大公约数(可以利用矩阵的角度,也许可以简化,因为每次都是乘上一个相同的置换矩阵) 要注 ...

  6. uva 101 POJ 1208 The Blocks Problem 木块问题 vector模拟

    挺水的模拟题,刚开始题目看错了,poj竟然过了...无奈.uva果断wa了 搞清题目意思后改了一下,过了uva. 题目要求模拟木块移动: 有n(0<n<25)快block,有5种操作: m ...

  7. poj 2993 Emag eht htiw Em Pleh(模拟)

    题目:http://poj.org/problem?id=2993 题意:和2996反着 #include <iostream> #include<cstdio> #inclu ...

  8. POJ 2632 Crashing Robots(较为繁琐的模拟)

    题目链接:http://poj.org/problem?id=2632 题目大意:题意简单,N个机器人在一个A*B的网格上运动,告诉你机器人的起始位置和对它的具体操作,输出结果: 1.Robot i ...

  9. POJ 3419 Difference Is Beautiful(RMQ+二分 或者 模拟)

    Difference Is Beautiful Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%lld & %l ...

随机推荐

  1. window.name 跨域

    跨域的由来 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但是我们常常会遇到无法避免跨域的情况,如普通文章站点(article.xxx.com)需要评论,而评论站点却在chea ...

  2. Qt控件精讲一:按钮

    原地址:http://blog.csdn.net/yuxikuo_1/article/details/17397109 Qt Creater提供6种Button控件.如图1. Button控件介绍 控 ...

  3. html网页中 点击按钮页面跳转

    在html页面中 实现点击按钮页面跳转.语句如下: <input type="button" value="跳转" onClick="windo ...

  4. jquery如何在加载完iframe的内容后才进行下一步操作

    为iframe添加onload事件 ie使用attachEvent("onload",function(){}) firefox.chrome使用addEventListener( ...

  5. 使用jdk的socket通信

    使用JDK提供的API进行网络通信,会用到Socket,ServerSocket两个类.写个简单的SERVER和CLIENT之间发消息的小程序,竟然发现了挺多的问题. 这是服务器端代码: packag ...

  6. cct信息安全

    基本信息 全国计算机等级考试三级教程——信息安全技术(2016年版) 作    者:教育部考试中心 编 出 版 社:高等教育出版社 出版时间:2015-12-1 ISBN:9787040443035 ...

  7. Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站

    Mysql 官方Memcached 插件初步试用感受 - schweigen - ITeye技术网站 Mysql 官方Memcached 插件初步试用感受

  8. C/C++中char* 与char []定义的区别

    转载请注明来自souldak,微博:@evagle Question: 给你一个字符串例如abb输出它包含的字符的所有可能排列. 例如abb输出3个:abb,bab,bba Answer: 假设我们自 ...

  9. 线段树菜鸟一题+归并排序【求逆序数】POJ2299

    题目链接:http://poj.org/problem?id=2299 归并排序解法链接:http://blog.csdn.net/lyy289065406/article/details/66473 ...

  10. 使用iftop网络流量监控

    iftop这是一个非常有用的工具.下面的命令监视无线网卡在我的笔记本 iftop -i wlan0 比如,我现在玩音乐视频.iftop显示的信息: 基本说明: 1. 屏幕主要部分都是表示两个机器之间的 ...