【USACO 3.2】Spinning Wheels(同心圆旋转)
题意:
5个同心圆,告诉你角速度,每个圆有1至5个楔,告诉你起点和宽度。求最早时间如果有的话使得存在某个角度经过5个圆的楔。
题解:
最重要的是要意识到,360秒钟后,每个圆都回到了原来的位置。
我的具体解法:对于时间t,dfs一遍,f[i]==0表示角度i 是楔,dfs(i)表示对第i个圆遍历360个角度,哪个角度不为楔,就置f为1,如果存在f为0,就继续dfs下一个圆,如果到了dfs(6)说明该时间是存在这样的角度的。
官方题解是:对于时间t,遍历每一个角度,对于该角度,用一个二进制储存五个圆是否是楔。如果都是,则该时间就是答案。
代码:
原来的不好看,按题解写过一份,结果在for里面想要break出外面的while,傻掉惹。
/*
TASK: spin
LANG:C++
URL:
*/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#define in(s) freopen(#s".in","r",stdin);freopen(#s".out","w",stdout);
using namespace std;
int pos[6],speed[6],num[6],wedge[6][6],len[6][6];
int active[400];
int main() {
in(spin);
for(int i=0;i<5;i++){
scanf("%d %d",speed+i,num+i);
for(int j=1;j<=num[i];j++)
scanf("%d %d",&wedge[i][j],&len[i][j]);
}
int t;
for(t=0;t<360;t++){
memset(active,0,sizeof active);
int i;
for(i=0;i<5;i++){
for(int j=1;j<=num[i];j++){
int wpos=pos[i]+wedge[i][j];
for(int k=0;k<=len[i][j];k++){
active[(wpos+k)%360]|=(1<<i);
}
}
}
for(i=0;i<360&&active[i]!=31;i++);
if(active[i]==31)break;
for(i=0;i<5;i++)
pos[i]=(pos[i]+speed[i])%360;
}
if(t!=360) printf("%d\n",t);
else puts("none");
return 0;
}
【USACO 3.2】Spinning Wheels(同心圆旋转)的更多相关文章
- USACO Spinning Wheels
洛谷 P2728 纺车的轮子 Spinning Wheels https://www.luogu.org/problemnew/show/P2728 JDOJ 1800: Spinning Wheel ...
- 洛谷P2728 纺车的轮子 Spinning Wheels
P2728 纺车的轮子 Spinning Wheels 29通过 66提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目背景 一架纺车 ...
- 洛谷 P2728 纺车的轮子 Spinning Wheels
P2728 纺车的轮子 Spinning Wheels 题目背景 一架纺车有五个纺轮(也就是五个同心圆),这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标 ...
- 17.1拓展之纯 CSS 创作炫酷的同心圆旋转动画
效果地址:https://codepen.io/flyingliao/pen/ebjEMm?editors=1100 HTML代码: <div class="loader"& ...
- Canvas 同心圆旋转示例解析
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- spin_USACO
Spinning Wheels1998 ACM NE Regionals Each of five opaque spinning wheels has one or more wedges cut ...
- 【repost】JavaScript 基本语法
JavaScript 基本语法,JavaScript 引用类型, JavaScript 面向对象程序设计.函数表达式和异步编程 三篇笔记是对<JavaScript 高级程序设计>和 < ...
- poj2187 旋转卡(qia)壳(ke)
题意:求凸包的直径 关于对踵点对.旋转卡壳算法的介绍可以参考这里: http://www.cnblogs.com/Booble/archive/2011/04/03/2004865.html http ...
- 【USACO】clocks 遇到各种问题 最后还是参考别人的思路
//放在USACO上一直通不过 不知道哪里出了问题 输出的n总是等于1 但是BFS递归的次数是对的 <----这个问题解决了 局部变量压入queue中返回就是对的了 #include<io ...
随机推荐
- discuz模板语法
Discuz! X 模板的解析主要是 ./source/class/class_template.php 文件解析处理的,如果需要深入了解请可以看看这个文件! 模板嵌套语法 将被嵌套模板内容解析为 P ...
- Inter1-关于i++和++i
Q:关于i++和++i计算以下公式的结果 ```public static void main(String[] args) { int i = 1; System.out.println(" ...
- 每天一个设计模式-4 单例模式(Singleton)
每天一个设计模式-4 单例模式(Singleton) 1.实际生活的例子 有一天,你的自行车的某个螺丝钉松了,修车铺离你家比较远,而附近的五金店有卖扳手:因此,你决定去五金店买一个扳手,自己把螺丝钉固 ...
- linux(八)__yum工具
自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装. 什么是yum? yum工具实例: 因为yum指定的软件仓库源是国外的网站,在国内访问较慢.我们更改它的仓库源. 首先先备 ...
- 在网站开发中很有用的8个 jQuery 效果【附源码】
jQuery 作为最优秀 JavaScript 库之一,改变了很多人编写 JavaScript 的方式.它简化了 HTML 文档遍历,事件处理,动画和 Ajax 交互,而且有成千上万的成熟 jQuer ...
- script标签中defer和async属性的区别
这篇文章来源于JS高级程序设计第三版中关于script标签的介绍,结合查阅的资料写下的学习笔记. 向html页面中插入javascript代码的主要方法就是通过script标签.其中包括两种形式,第一 ...
- SharePoint2016母版页的直接依赖项的数目限制超过10的限制解决方案Direct Dependencies Limit with Master page User Controls
前言 最近母版制作站点模板,根据站点模板新建后发现如下错误: 解决方案 1. 打开C:\inetpub\wwwroot\wss\VirtualDirectories\,如下图: 2. 打开web.co ...
- iOS之由身份证号返回性别
该博文出自:http://www.cnblogs.com/yang-guang-girl/p/5683454.html - (void)viewDidLoad { [super viewDidLoad ...
- java中IO流异常处理
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- BigCouch资料整理
BigCouch架构 CHTTPD 封装了FABIC接口,CouchDB在HTTP层的集群操作 FABRIC CouchDB集群的操作代理. 主要用于控制CouchDB集群,Erlang层面的操作 ...