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. CSS3 3D旋转动画代码实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. html弹窗,与弹出对话框

    弹出对话框 <script type="text/JavaScript"> <!-- alert("Good Morning!"); //al ...

  3. Android在 Alertdialog对话框中点击消失?

    在开发的时候遇到一个问题.就是一触摸对话框边缘外部,对话框会自己主动消失.这个问题非常纠结啊,查找了一下发现从Android 4.0開始.AlertDialog有了变化.就是在触摸对话框边缘外部.对话 ...

  4. 经常使用的js小方法

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% Strin ...

  5. 行人检测(Pedestrian Detection)资源整合

    一.纸 评论文章分类: [1] D. Geronimo, and A. M.Lopez. Vision-based Pedestrian Protection Systems for Intellig ...

  6. 王立平--Unity综上所述控制

    GUILayout   Label 创建一个自己主动布局的标签. Box 创建一个自己主动布局的box. Button 创建一个单次button.当用户点击button会马上发生一些事件. Repea ...

  7. [改变自己wordpress.2]至wordpress再加上简单的debug sql调试.

    或者说,同事. 需要帮助她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/p ...

  8. Jenkins(两)

    官网:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 我的这篇文章不过简单的依据上文,介绍Jenkins提供了哪些功能.详细大家还是要 ...

  9. EasyUI基础searchbox&amp;progressbar(搜索框,进度条)

    easyui学习的基本组成部分(八个部分)硕果仅存searchbox和pargressbar.tooltip该,有一点兴奋.本文将偏向searchbox和pargressbar做一个探讨.鉴于双方的内 ...

  10. 【原创】leetCodeOj --- Jump Game II 解题报告

    原题地址: https://oj.leetcode.com/problems/jump-game-ii/ 题目内容: Given an array of non-negative integers, ...