UVA 239 - Tempus et mobilius. Time and motion

题目链接

题意:这题题意也是吊得飞起,看了老半天,大概是这样:

有一个放球的队列。和3个轨道(说白了就是栈),一个容纳5,1个12,1个12,每1分钟队列出一个小球。放入栈。假设放入5的满了。就把5的放回队列,头一个放入12的。假设12的满了,就把12的放回队列。头一个放入还有一个12的栈,假设又满了。就所有放回队列(头一个最后放回),问多少天之后。队列中小球会回复原来的状态

思路:先是模拟求出一天的情况。相应一个置换,然后就是求置换中循环的最大公倍数就可以了

代码:

#include <stdio.h>
#include <string.h>
#include <queue>
#include <stack>
using namespace std; const int N = 7005;
int n, next[N], vis[N]; long long gcd(long long a, long long b) {
if (!b) return a;
return gcd(b, a % b);
} long long lcm(long long a, long long b) {
return a / gcd(a, b) * b;
} int main() {
while (~scanf("%d", &n) && n) {
queue<int> Q;
stack<int> mins, fives, hours;
for (int i = 0; i < n; i++)
Q.push(i);
for (int t = 0; t < 1440; t++) {
int now = Q.front();
Q.pop();
if (mins.size() == 4) {
for (int i = 0; i < 4; i++) {
Q.push(mins.top());
mins.pop();
}
if (fives.size() == 11) {
for (int i = 0; i < 11; i++) {
Q.push(fives.top());
fives.pop();
}
if (hours.size() == 11) {
for (int i = 0; i < 11; i++) {
Q.push(hours.top());
hours.pop();
}
Q.push(now);
}
else hours.push(now);
}
else fives.push(now);
}
else mins.push(now);
}
for (int i = 0; i < n; i++) {
next[i] = Q.front();
Q.pop();
}
memset(vis, 0, sizeof(vis));
long long ans = 1;
for (int i = 0; i < n; i++) {
if (!vis[i]) {
long long cnt = 1;
vis[i] = 1;
int t = next[i];
while (!vis[t]) {
cnt++;
vis[t] = 1;
t = next[t];
}
ans = lcm(ans, cnt);
}
}
printf("%d balls cycle after %lld days.\n", n, ans);
}
return 0;
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

UVA 239 - Tempus et mobilius. Time and motion(更换周期)的更多相关文章

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

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

  2. POj 1879 Tempus et mobilius Time and motion (模拟+群)

    题目特别长,大意为球的传递. 三个轨道,一个库.各自是分钟单位的轨道.5min单位的轨道.一小时单位的轨道.还有就是n容量的库. 每过一分钟,一个小球从库里面出来,库符合先进先出,进入分钟轨道.假设分 ...

  3. excel做回归分析的应用【风控数据分析】

    方法1     统计逻辑:统计一个loginname的所有去重的通讯录数C,统计这个Loginname对应的每个设备对应的通讯录c1,c2,c3…cn; X=(c1/c+c2/c+c3/c+….cn/ ...

  4. UVa 10012 - How Big Is It? 堆球问题 全排列+坐标模拟 数据

    题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短. 由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了. 全排列用next_per ...

  5. Fast Matrix Operations(UVA)11992

    UVA 11992 - Fast Matrix Operations 给定一个r*c(r<=20,r*c<=1e6)的矩阵,其元素都是0,现在对其子矩阵进行操作. 1 x1 y1 x2 y ...

  6. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  7. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  8. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  9. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

随机推荐

  1. HttpMime 处理 多部件 POST 请求

    HttpMime 处理 多部件 POST 请求 在有的场合例如我们要用到上传文件的时候,就不能使用基本的GET请求和POST 请求了,我们要使用多部件的POST请求.由于Android 附带的 Htt ...

  2. JS 在 HTML 无缝滚动

    marquee图片无缝滚动先了解一下对象的几个的属性:innerHTML: 设置或获取位于对象起始和结束标签内的 HTMLscrollHeight: 获取对象的滚动高度.scrollLeft: 设置或 ...

  3. Qt之QComboBox(基本应用、代理设置)

    QComboBox下来列表比较常用,用户可以通过选择不同的选项来实现不同的操作,如何实现自己的下拉列表呢? 很多人在问QComboBox如何设置选项的高度.代理等一些问题!今天就在此分享一下自己的一些 ...

  4. html网页特殊符号代码

    HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的特殊符号大全.                   ...

  5. Oracle错误——ORA-03113:在通信信道文件的末尾 解决方案

    起源 今天跟往常一样,登陆PL/SQL,确登陆失败,出现一个错误"ORA-01034"和"ORA-27101"如图: 然后就就通过命令提示符去登陆Oracle, ...

  6. Android中Dialog的使用

    上一篇博文讲到对话框popWindow的使用,这篇博文主要解说Dialog的使用. 1.什么是Dialog? Dialog就是对话框的一种方式! 在Android开发中.我们常常会须要在Android ...

  7. ExtJs自学教程(1):从一切API开始

    称号 记得 本系列文章是不是引进全套焦点ExtJs使用,您只需专注于解决ExtJs思考问题.人们不写长篇大论.别人能学会自立.l  有些人只要学会CSS的javascript对于英文不至于很蹩脚(以辅 ...

  8. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  9. 如何设置一个activity透明(转)

    1.在AndroidManifest.xml文件中设置: ? 1 android:theme="@android:style/Theme.Translucent 此代码固定为全背景透明. 2 ...

  10. Coco2dx-3.0中怎样调用LUA

    一个用3.0的工具导出类到lua,自己主动生成代码的方法. 曾经要导出c++类到lua.就得手动维护pkg文件,那简直就是噩梦.3.0以后就会感觉生活非常轻松了. 以下我就在说下详细做法. 1.安装必 ...