[Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
来源:互联网 发布:java可变参数判断为空 编辑:程序博客网 时间:2024/05/02 20:58
Description
Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,
Input
第1行: 3个用空格隔开的整数:
第2..N+1行: 第i+1描述了齿轮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
HINT
输出说明
齿轮转速绝对值之和:20,000
Source
Silver
题解
bfs,首先找到起点
v[i]=v[u]*r[u]/r[i]ans[i]=ans[u]+v[i]
最后输出
代码
#include <cstdio>#include <cmath>const int maxn=1050;const double eps=0.000001;//浮点数精度误差struct data{ double x,y,r,v,ans;};int n,s,t,head,tail,q[maxn*maxn+10],b[maxn+10];data d[maxn+10];double tx,ty;int sqr(int a){ return a*a;}int compare(double x,double y){ return (x<y+eps)&&(x>y-eps);//浮点数比较大小}double bfs(){ head=0; tail=1; q[1]=s; b[s]=1; d[s].v=10000; d[s].ans=10000; while(head!=tail) { head++; int u=q[head]; for(int i=1; i<=n; i++) { if((!b[i])&&compare(sqrt(sqr(d[i].x-d[u].x)+sqr(d[i].y-d[u].y)),d[i].r+d[u].r))//如果i能从u转移过来 { d[i].v=d[u].v*d[u].r/d[i].r;//更新v值 d[i].ans=d[u].ans+d[i].v;//更新ans值 b[i]=1;//入队 tail++; q[tail]=i; } } } return d[t].ans;}int main(){ scanf("%d%lf%lf",&n,&tx,&ty); for(int i=1; i<=n; i++) { scanf("%lf%lf%lf",&d[i].x,&d[i].y,&d[i].r); if(compare(d[i].x,tx)&&compare(d[i].y,ty)) { t=i;//找终点 } if(compare(d[i].x,0)&&compare(d[i].y,0)) { s=i;//找起点 } } printf("%d\n",(int)bfs()); return 0;}
- [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- BFS-BZOJ-1615-[Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 bfs
- BZOJ 1615 [Usaco2008 Mar] The Loathesome Hay Baler 麻烦的干草打包机(BFS)
- bzoj 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- bzoj 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- bzoj1615 【Usaco2008 Mar】The Loathsome Hay Baler 麻烦的干草打包机
- 【bzoj1615】【Usaco2008 Mar】The Loathesome Hay Baler(阅读理解) 代码&题解
- Problem A: [USACO Mar08] 麻烦的干草打包机
- ACM 129. [USACO Mar08] 麻烦的干草打包机(BFS隐式图搜索)
- [Usaco2008 Dec]Hay For Sale 购买干草
- bzoj1618[Usaco2008 Nov]Buying Hay 购买干草
- [BZOJ1618] [Usaco2008 Nov]Buying Hay 购买干草
- bzoj1618【Usaco2008 Nov】Buying Hay 购买干草
- Android Native内存泄漏诊断
- Android Binder 机制初步学习 笔记(一)—— 概述及数据结构介绍
- linux中各个目录中的作用
- beaglebone原版debian9.1镜像vnc连接问题的解决
- Ionic3 安装插件后闪退
- [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
- 高度自适应的输入框
- Spark教程
- windows下python3安装opencv
- 作为程序员的你,除了撸代码,还能干什么?
- MPAndroidChart项目实战(九)——自定义带文字分段堆积柱状图
- leetcode-295-Find Median from Data Stream
- 2017年中总结
- 仿微信的弹出菜单—ALActionSheetView