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的邮票,可以推出 ...
随机推荐
- [[: not found,Ubuntu修改默认sh为bash
写好的shell sh执行脚本报错[[: not found,改shell多麻烦,索性直接把电脑默认的dash改成使用bash 1.查看目前使用 Ubuntu版本默认sh都是使用的dash 执行 ls ...
- 【12月13日】A股ROE最高排名
个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多个股ROE最高排名 中公教育(SZ002607) - ROE_TTM:92.66% - ...
- 《一起学netty》
o文章摘自 netty 官网(netty.io) netty 是一个异步的,事件驱动的网络应用通信框架,可以让我们快速编写可靠,高性能,高可扩展的服务端和客户端 样例一:discard ser ...
- Delta-wave HDU - 1030
Delta-wave HDU - 1030 A triangle field is numbered with successive integers in the way shown on the ...
- Dubbo从入门到实战:入门篇
很多时候,其实我们使用这个技术的时候,可能都是因为项目需要,所以,我们就用了,但是,至于为什么我们需要用到这个技术,可能自身并不是很了解的,但是,其实了解技术的来由及背景知识,对于理解一项技术还是有帮 ...
- centos6系统资源限制
1.限制用户CPU使用资源 /etc/security/limits.conf #主配置文件 /etc/security/limits.d/ #子模块配置文件 新建一个普通用户,并查看默认资源限制 [ ...
- 异步编程,await async入门
网上很多异步编程的文章,提供一篇入门: 异步编程模型 .net支持3种异步编程模式: msdn:https://docs.microsoft.com/zh-cn/dotnet/standard/asy ...
- C#工具类SqlServerHelper,基于System.Data.SqlClient封装
源码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using Syst ...
- [基础] - 从xx语言是跨平台的说起
我经常碰到一些人在说xx语言跨平台而yy语言不是(为避免不必要的纷争,在此不写具体语言但不影响阅读),从而来表明自己使用xx语言进行程序开发进而在编程语言鄙视链上高高在上很有优越感. 大概是从Java ...
- python3类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...