USACO Spinning Wheels
洛谷 P2728 纺车的轮子 Spinning Wheels
https://www.luogu.org/problemnew/show/P2728
JDOJ 1800: Spinning Wheels 纺车的轮子
Description
一架纺车有五个纺轮,这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标记(在0 度),这样所有的轮子都可以在统一的已知位置开始转动.
轮子按照`plus degrees'方向旋转,所以从起始位置开始,在一定的时间内,它们依次转过1 度,2 度等等(虽然这些轮子很可能不会同时转过这些角度).
这是一个整数问题.轮子不会转过1.5 度或23.51234123 度这样的角度.例如,轮子可能在一秒钟内转过20 到25 度甚至30 到40 度(如果转得快的话).
这个问题中的所有角度都限制在 0 <= 角度 <= 359 这个范围内.轮子转过 359 度后接下来就是 0度.每个轮子都有一个确定的旋转速度,以秒作为单位.1 <= 速度 <= 180.
轮子上的缺口的起始角度和缺口大小(或长度)各由一个整数表示,都以度为单位.在一个轮子上,两个缺口之间至少有一度的间隔.
在起始位置,设时间为 0,所有的轮子的起始标记排列成一条直线.你的程序必须计算,最早出现每个的轮子上的缺口同其他轮子上的缺口对准(也就是一束光可以通过五个轮子上的五个缺口)情况的时间.这些缺口在任意一个角度对准.
Input
输入中的五行对应五个轮子.
第一个数字表示轮子的转动速度.下一个数字是缺口的数目 W.1 <= W <= 5.接下来的 W 对数字表示每个缺口的起始角度和长度.
Output
只有一行,包括一个整数,表示光能够通过这五个轮子的最早时间.如果无解,输出`none'小写,不含引号).
Sample Input
50 1 150 90
60 1 60 90
70 1 180 180
90 1 180 60
Sample Output
#include<cstdio>
#include<cstring>
using namespace std;
int speed[];
int s[];
int p[][],width[][];
int v[];
int b[];
int main()
{
for(int i=;i<=;i++)
{
scanf("%d%d",&speed[i],&s[i]);
for(int j=;j<=s[i];j++)
scanf("%d%d",&p[i][j],&width[i][j]);
}
for(int t=;t<=;t++)
{
memset(v,,sizeof(v));
for(int i=;i<=;i++)
for(int j=;j<=s[i];j++)
{
for(int k=p[i][j];k<=p[i][j]+width[i][j];k++)
v[k%]++;
p[i][j]=(p[i][j]+speed[i])%;
}
for(int i=;i<=;i++)
if (v[i]==)
{
printf("%d",t);
return ;
}
}
printf("none");
return ;
}
在这里我采用了合理的压行。
所谓圆轮题是我给起的名,大体就是那种收尾相连的串,如果用数组的话会越界,再就会WA,因为根据题意,1的前面是n,n的后面是1,如果用数组模拟的话,我的想法是开三倍的数组,然后把串复制三份扔进去,再...
哇,麻烦死了。
所以我们想到了另外一种做法。
我们的数组不用开三倍,开一倍的即可,当我们需要找数组下标时怎么办呢?
很简单,把枚举到的数(可能会超出n的范围),对n取模即可。
很好理解吧!然后就可以进行后续的操作。
针对本题,不仅在v[k%360]的时候用到了这个思想,在它的下一行——p[i][j]=(p[i][j]+width[i][j])%360的时候也同样用到了这样的原理。
希望同学们多多体会。
USACO Spinning Wheels的更多相关文章
- 洛谷P2728 纺车的轮子 Spinning Wheels
P2728 纺车的轮子 Spinning Wheels 29通过 66提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目背景 一架纺车 ...
- 洛谷 P2728 纺车的轮子 Spinning Wheels
P2728 纺车的轮子 Spinning Wheels 题目背景 一架纺车有五个纺轮(也就是五个同心圆),这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标 ...
- 【USACO 3.2】Spinning Wheels(同心圆旋转)
题意: 5个同心圆,告诉你角速度,每个圆有1至5个楔,告诉你起点和宽度.求最早时间如果有的话使得存在某个角度经过5个圆的楔. 题解: 最重要的是要意识到,360秒钟后,每个圆都回到了原来的位置. 我的 ...
- 【repost】JavaScript 基本语法
JavaScript 基本语法,JavaScript 引用类型, JavaScript 面向对象程序设计.函数表达式和异步编程 三篇笔记是对<JavaScript 高级程序设计>和 < ...
- spin_USACO
Spinning Wheels1998 ACM NE Regionals Each of five opaque spinning wheels has one or more wedges cut ...
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...
- 算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- USACO . Your Ride Is Here
Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs often co ...
- 【USACO 3.1】Stamps (完全背包)
题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200. 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出 ...
随机推荐
- 自定义安装office
自定义安装office 1.下载office安装包:https://msdn.itellyou.cn 2.下载offiice部署工具:https://www.microsoft.com/en-us/d ...
- bioawk
https://github.com/lh3/bioawk 1.基本思想 使用: usage: bioawk [-F fs] [-v var=value] [-c fmt] [-tH] [-f pro ...
- ORB-SLAM2初步(Tracking.cpp)
今天主要是分析一下Tracking.cpp这个文件,它是实现跟踪过程的主要文件,这里主要针对单目,并且只是截取了部分代码片段. 一.跟踪过程分析 首先构造函数中使用初始化列表对跟踪状态mState(N ...
- Ubuntu命令行打开新终端并执行脚本
gnome-terminal -x bash -c "bash test.sh;exec bash;"
- python 学习常见问题笔记
1.for...if...构建List segs = [v for v in segs if not str(v).isdigit()]#去数字 https://www.cnblogs.com/eni ...
- HBase开发错误记录(java.net.UnknownHostException: unknown host: hadoop111)
windows下开发HBase应用程序,HBase部署在linux环境中, 在运行调试时可能会出现无法找到主机,类似异常信息如下: java.net.UnknownHostException: unk ...
- java基础之----java常见异常及代码示例
概述 java中有两种错误类型,一个是Exception,一个是Error,都在java.lang包下,一般来说程序中的try...catch捕获的是Exception类型的异常,而Error类型的错 ...
- 使用k8s-prometheus-adapter实现HPA
环境: kubernetes 1.11+/openshift3.11 自定义metric HPA原理: 首选需要注册一个apiservice(custom metrics API). 当HPA请求me ...
- redis命令之 ----List(列表)
BLPOP BRPOP BRPOPLPUSH LINDEX LINDEX key index 返回列表 key 中,下标为 index 的元素. 下标(index)参数 start 和 stop 都以 ...
- C#网页 截图
using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Threading; using S ...