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

2024-06-01 20:18

本文主要是介绍UVA 239 - Tempus et mobilius. Time and motion(置换周期),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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(置换周期)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022019

相关文章

nginx 504 Gateway Time-out

环境:PHP7.1,NGINX,Mysql 问题描述: 本地写了一个需要执行比较长时间的脚本,放到了php-fpm里面跑。用一个链接调用起这个脚本。发现第一次调用的时候,需要等比较久的时间,但是如果在执行期间再次请求这个链接。第二个请求的链接会返回504。甚至,直接在脚本最开始的地方中断都还是报 504. 但是如果请求其他链接,可以正常请求。 nginx 返回码、、 504 Gateway

UVA - 12206 Stammering Aliens (hash)

这题其实很容易想到2分长度,关键是2分后,怎么判断出现最多次的串是否》=m次了。这里需要用到hash来处理。 对于一个字符串   H[i] =H[i+1]*131+s[i]  ;其中 H[n]=0;那么对于一个长度为L的串 ,hanh[i,l]=H[i]-H[i+L]*x^L ; 这样记录每个字符串的hash值,然后再处理起来就比较简单了。 VIEW CODE #include<

leetcode刷题(43)——239. 滑动窗口最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值------------

数据分析:置换检验Permutation Test

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 置换检验是一种非参数统计方法,它不依赖于数据的分布形态,因此特别适用于小样本数据集,尤其是当样本总体分布未知或不符合传统参数检验的假设条件时。置换检验的基本思想是通过随机置换样本来评估观察到的统计量是否显著不同于随机情况下的预期值。最初真正认识置换检

Windows 内核驱动无法使用 __DATA__、__TIME__、__TIMESTAMP__ 解决方法

项目 -> 属性 -> Driver Settings -> Driver Model -> Allow Date, Time and Timestamp -> Yes。 感谢单总的解答和这篇文章:https://developercommunity.visualstudio.com/content/problem/186922/-timestamp-macro-not-defined-in-r

OSS报错The difference between the request time and the current time is too large

目录 一、问题描述二、问题原因三、解决方法 一、问题描述 文件上传阿里云 OSS 报错: The difference between the request time and the current time is too large 二、问题原因 请求发起的时间超过 OSS 服务器当前时间 15 分钟,OSS 判定该请求无效,返回报错。 三、解决方法 OSS

关于面试经常被问到的socket的TIME_WAIT状态的原因及解决办法和避免的办法

一查看现在time_wait的数量及浅析          netstat -an | grep TIME_WAIT | wc -l  发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,在 /etc/sysctl.conf中加入          net.ipv4.tcp_tw_recycle = 1    (表示开启TCP连接中TIME-WAIT sockets的快速回

Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别

CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别,我们可以通过在终端下,查看结果就能知道: SELECT CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP, now(), sysdate(); 比如我们要对某表插入数据,这个表add_time字段是datetime类

论文浅读之Mamba: Linear-Time Sequence Modeling with Selective State Spaces

介绍 这篇论文提出了一种新型的"选择性状态空间模型"(Selective State Space Model, S6)来解决之前结构化状态空间模型(SSM)在离散且信息密集的数据(如文本)上效果较差的问题。 Mamba 在语言处理、基因组学和音频分析等领域的应用中表现出色。其创新的模型采用了线性时间序列建模架构,结合了选择性状态空间,能够在语言、音频和基因组学等不同模式中提供卓越的性能。这种突破

【读论文】Learning perturbations to explain time series predictions

文章目录 Abstract1. Introduction2. Background Work3. Method4. Experiments4.1 Hidden Markov model experiment4.2 MIMIC-III experiment 5. ConclusionReferences 论文地址:Learning Perturbations to Explain