1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 980  Solved: 403 [Submit][Status][Discuss]

Description

Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互相作用,每个齿轮都可能驱动着多个齿轮。 FJ记录了对于每个齿轮i,记录了它的3个参数:X_i,Y_i表示齿轮中心的位置坐标(-5000 <= X_i <= 5000; -5000 <= Y_i <= 5000);R_i表示该齿轮的半径(3 <= R_i <= 800)。驱动齿轮的位置为0,0,并且FJ也知道最终的工作齿轮位于X_t,Y_t。 驱动齿轮顺时针转动,转速为10,000转/小时。你的任务是,确定传动序列中所有齿轮的转速。传动序列的定义为,能量由驱动齿轮传送到工作齿轮的过程中用到的所有齿轮的集合。对能量传送无意义的齿轮都应当被忽略。在一个半径为Rd,转速为S转/每小时的齿轮的带动下,与它相接的半径为Rx的齿轮的转速将为-S*Rd/Rx转/小时。S前的负号的意思是,一个齿轮带动的另一个齿轮的转向会与它的转向相反。 FJ只对整个传动序列中所有齿轮速度的绝对值之和感兴趣,你的任务也就相应转化成求这个值。机器中除了驱动齿轮以外的所有齿轮都被另外某个齿轮带动,并且不会出现2个不同的齿轮带动同一个齿轮的情况。 相信你能轻易地写个程序来完成这些计算:)

Input

* 第1行: 3个用空格隔开的整数:N,X_t,Y_t

* 第2..N+1行: 第i+1描述了齿轮i的位置及半径:X_i,Y_i,以及R_i

Output

* 第1行: 输出所有在传动中起到作用的齿轮转速的绝对值,包括驱动齿轮和 工作齿轮。只需要输出答案的整数部分

Sample Input

4 32 54
0 0 10
0 30 20
32 54 20
-40 30 20

机器里一共有4个齿轮,位于0,0的是半径为10的驱动齿轮,它带动了位于
0,30的,半径为20的某个齿轮。这个齿轮又间接带动了位于32,54,半径为20的
工作齿轮,以及一个位于-40,30,半径同样为20的冗余的齿轮。

Sample Output

20000
bfs
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char buf[10000000], *ptr = buf - 1;
inline int readint(){int f = 1, n = 0;char ch = *++ptr;while(ch < '0' || ch > '9'){if(ch == '-') f = -1;ch = *++ptr;}while(ch <= '9' && ch >= '0'){n = (n << 1) + (n << 3) + ch - '0';ch = *++ptr;}return f * n;
}
const int maxn = 1000 + 100;
inline int sqr(const int &x){return x * x;
}
int x[maxn], y[maxn], r[maxn];
double v[maxn];
int q[maxn], h, t, pre[maxn] = {0};
bool vis[maxn] = {false};
int main(){fread(buf, sizeof(char), sizeof(buf), stdin);int N, ex, ey, s, e;N = readint();ex = readint();ey = readint();for(int i = 1; i <= N; i++){x[i] = readint();y[i] = readint();r[i] = readint();if(!x[i] && !y[i]) s = i;if(x[i] == ex && y[i] == ey) e = i;}v[s] = 10000;h = t = 0;q[t++] = s;vis[s] = true;int now;while(h != t){now = q[h++];for(int i = 1; i <= N; i++)if(!vis[i] && sqr(x[now] - x[i]) + sqr(y[now] - y[i]) == sqr(r[now] + r[i])){vis[i] = true;pre[i] = now;v[i] = v[now] * r[now] / r[i];q[t++] = i;}}double ans = 0;for(int i = e; i; i = pre[i]) ans += v[i];printf("%d\n", (int)ans);return 0;
}

转载于:https://www.cnblogs.com/ruoruoruo/p/7563008.html

[BZOJ1615][Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机相关推荐

  1. bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...

  2. 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: ...

  3. bzoj 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: ...

  4. BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 bfs

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1615 1615: [Usaco2008 Mar]The Loathesome Hay Bale ...

  5. BZOJ 1615 [Usaco2008 Mar] The Loathesome Hay Baler 麻烦的干草打包机(BFS)

    [问题描述] FJ新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是N个齿轮互相作用,每个齿轮都可能驱动着多个齿轮. FJ记录了对于每个齿轮i,记录了它的 ...

  6. [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N(2<=N<=1050)N (2 个齿轮互 ...

  7. 【BZOJ】1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机(模拟+bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1615 这种题..... #include <cstdio> #include <c ...

  8. BFS-BZOJ-1615-[Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机

    Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...

  9. bzoj1615 【Usaco2008 Mar】The Loathsome Hay Baler 麻烦的干草打包机

    1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: ...

最新文章

  1. rsync安装及部署
  2. the application has stopped unexpected。please try again
  3. python 笔记 pickle json
  4. MVC View显示详解(RenderBody,RenderPage,RenderSection,Partial)
  5. LiteOS:剖析时间管理模块源代码
  6. Pytorch——循环神经网络层、损失函数、优化器
  7. java动态代理和Cglib动态代理的区别和使用
  8. apk提取加密素材_高效IO之Dex加密(三)
  9. Android性能测试工具Emmagee的基本使用
  10. 谷歌拼音 输入法设置
  11. [论文总结] 科技论文英语写作笔记1
  12. [pip安装]There was a problem confirming the ssl certificate
  13. 国外程序员真实生活曝光,谷歌的工资竟这么高
  14. 网络异常无法连接远程服务器,《Chess Rush》网络异常进不去怎么回事 无法连接服务器解决方法...
  15. windows进程管理器_系统变慢?WMI进程导致的CPU高占用解决
  16. 凉面经-维恩贝特面试复盘
  17. 3dsnbsp;max基础材质初学者必读(15)——设置砖墙纹理
  18. 堆排序重建堆的时间复杂度_排序算法之 堆排序 及其时间复杂度和空间复杂度-Go语言中文社区...
  19. 投稿前如何查询期刊的审稿周期
  20. 2014年最新720多套源码2.0GB免费一次性打包下载

热门文章

  1. 1. 用户行为采集平台概述
  2. 易编远航程序防封防检测方法
  3. java des解密乱码_des解密不完整,前面几位是乱码的解决办法
  4. iptables 学习笔记 (下)
  5. ATM自动取款机程序设计
  6. 计算机打印机提示无法打印,打印机没有打印设置,教您打印机无法打印怎么解决...
  7. 转载 感受K2.Net 2003工作流解决方案
  8. G2:一个由纯 javascript 编写、强大的语义化图表生成工具
  9. hbuildx打包 vue3项目成apk
  10. Oracle 19c 新特性 —— 自动索引 Automatic indexing