机器设备(dfs)
机器设备
- 描述
-
Alpha 公司设计出一种节能的机器设备。它的内部结构是由 N 个齿轮组成。整个机器设备有 一个驱动齿轮,当启动它时,它立即按 10,000 圈/小时转速顺时针转动,然后它又带动与它相切 的齿轮反方向,即逆时针转动。齿轮之间互相作用,每个齿轮都可能驱动着多个齿轮,最终带动 一个工作齿轮完成相应的任务。 在这套设备中,记录了每个齿轮的圆心坐标和齿轮半径。已知驱动齿轮位于(0,0),最终的 工作齿轮位于(Xt, Yt)。 Alpha 公司想知道传动序列中所有齿轮的转速。所谓传动序列,即能量由驱动齿轮传送,最 后到达工作齿轮的过程中用到的所有齿轮。能量传送过程是,在一个半径为 R,转速为 S 圈/每小 时的齿轮的带动下,与它相切的半径为 R’的齿轮的转速为-S*R/R’ 转/小时。负号的意思是, 表 示按反方向转动。

已知,机器设备中除了驱动齿轮以外,所有齿轮都可能被另外某个齿轮带动,并且不会出现 2 个不同的齿轮带动同一个齿轮的情况。 你的任务是计算整个传动序列中所有齿轮的能量之和。即所有齿轮转速的绝对值之和。
- 输入
- 第一行: T 表示以下有 T 组测试数据(1≤T ≤8) 对每组测试数据: 第 1 行: N Xt Yt (2≤N ≤1100) 接下来有 N 行, Xi Yi Ri 表示 N 个齿轮的坐标和半径 i=1,2,….,N ( -5000 ≤Xi ,Yi ≤ 5000 3 ≤ Ri ≤ 1000 ) 坐标以及半径是整数
- 输出
- 每组测试数据,输出占一行,即所有齿轮转速的绝对值之和 在double范围内,输出整数部分
- 样例输入
-
1
4 32 54
0 30 20
0 0 10
32 54 20
-40 30 20 - 样例输出
-
20000
题解:水题,赛场上队友写的这个题,wa到了最后,我也没看,下来一下就过了
代码:#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
using namespace std; struct Point{
int x, y;
int r;
}dt[];
bool js(Point a, Point b){
double l = (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
if(fabs(sqrt(1.0*l) - (a.r + b.r)) < 0.000000001)return true;
else return false;
}
int mp[][];
int vis[];
double ans;
int start, end;
void dfs(int u, double eng, double tot){
vis[u] = ;
if(u == end){
ans = tot;
return;
}
for(int i = ; i < ; i++){
if(mp[u][i] && !vis[i]){
dfs(i, eng*dt[u].r/dt[i].r, tot + eng*dt[u].r/dt[i].r);
}
}
}
int main(){
int T;
scanf("%d", &T);
int N;
Point e;
while(T--){
scanf("%d%d%d", &N, &e.x, &e.y);
memset(mp, , sizeof(mp));
for(int i = ; i < N; i++){
scanf("%d%d%d", &dt[i].x, &dt[i].y, &dt[i].r);
if(dt[i].x == e.x && dt[i].y == e.y)
end = i;
if(dt[i].x == && dt[i].y == )
start = i;
}
for(int i = ; i < N; i++){
for(int j = i + ; j < N; j++){
if(js(dt[i], dt[j])){
// printf("%d %d\n", i, j);
mp[i][j] = mp[j][i] = ;
}
}
}
ans = ;
memset(vis, , sizeof(vis));
dfs(start, , );
printf("%d\n", (int)ans);
}
return ;
}
机器设备(dfs)的更多相关文章
- day3 自动部署安装软件到其他的机器设备上
PS:原理是在本机创建boot.sh指向每一台主机,使用脚本命令去执行,然后就会自动安装软件 PS:boot.sh里面放着1.免密登录 2.发送每台机器install.sh 这个install.sh中 ...
- winPcap_3_获取设备列表
获取设备列表 int pcap_findalldevs_ex ( char * source, //The 'source' is a parameter that tells the functio ...
- NYOJ--1276--机器设备(河南省第九届省赛,简单的bfs)
机器设备 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Alpha 公司设计出一种节能的机器设备.它的内部结构是由 N 个齿轮组成.整个机器设备有 一个驱动齿轮,当 ...
- [PHP] 2018年终总结
去掉敏感信息后的不完整版 ==========================================================================2018年12月29日 记 ...
- NOIP2018TG 初赛复习
Date: 20180911 TCP/IP OSI7面向对象的程序设计语言 1.不是自顶向下2.simula 67语言 第一个3.继承性.封装性.多态性NOIP支持的语言环境:对于c / c++ :D ...
- 分布式存储之MogileFS分布式文件系统简单应用
一.分布式存储原理: 分布式存储系统,是将数据分散存储在多台独立的设备上.传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储 ...
- Convert BSpline Curve to Arc Spline in OpenCASCADE
Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...
- 转载:持续集成之解决jenkins内存溢出问题
在jenkins master-slave配置中,总是出现内存溢出问题,更换了机器设备仍然跑不起来: 问题如下: Status Code: 500 Exception: org.apache.c ...
- 在ABP中通过EF直接执行原生Sql的解决方案
一般情况下,使用EF中的查询语法和方法语法可以帮助我们完成绝大部分业务,但是也有特殊的情况需要直接执行Sql语句.比如,我们的业务过于复杂繁琐,或是有些业务使用EF操作时比较复杂,但是使用Sql时会很 ...
随机推荐
- 【hoj】1604 cable master
简单,二分法,可是在oj上交的时候会有精度的限制,所以仅仅能把数扩得大一点,并且在扩的时候为防止尾数会自己主动生成一些非零数,所以还是自己吧扩到的位置设置为0,还有输出时由于%.2lf会自己有4设5入 ...
- 老漏洞easy击:CVE-2012 0158占顶!
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- jsp filter登录限制过滤器
http://www.cnblogs.com/hemingwang0902/archive/2012/01/09/2316956.html UserFilter.java package filter ...
- Linux 运维笔记
#配置静态地址网卡DEVICE="eth0"BOOTPROTO=staticHWADDR="00:0C:29:DC:EA:F7"NM_CONTROLLED=&q ...
- string之substring的用法
package com.j1; public class StringTest1 { public static void main(String[] args) { String s =" ...
- (转)vivoxshot 精英版三模转五模模式切换操作方法
https://yunpan.cn/cPUBWc8vtKpID (提取码:de92) 本帖最后由 韩爱峰 于 2016-3-29 23:00 编辑 碰到不少机友在使用过程中操作不成功,现将我的方法跟大 ...
- js+图片实现图片flash效果
var pic_width=685; //图片宽度 var pic_height=225; // 图片高度 var button_pos=4; //按扭位置 1左 2右 3上 4下 var stop_ ...
- js获取上传文件扩展名
File_box.value.substring(File_box.value.lastIndexOf(".") + 1);
- DTO学习系列之AutoMapper(二)
本篇目录: Flattening-复杂到简单 Projection-简单到复杂 Configuration Validation-配置验证 Lists and Array-集合和数组 Nested m ...
- JS小数位保留两位小数--toFixed()
parseInt,parseFloat,parseDouble在JS中是将值转换成相应的类型: 你必须要这样,才能实现: <script> alert(parseFloat ...