机械设备--第九届省赛--深搜


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

题意求出连接起点圆到终点圆的所有齿轮转速和废话不多说,深搜,广搜都行,以下深搜代码
#include <stdio.h>
#include <algorithm>
#include<string.h>
using namespace std;
const int N = 1118;

int xi, n, yi, book[N], x[N], y[N], f, R[N];
double sum;
void dfs(int xx, int yy, int r, double sp)
{
    if(f==1)
        return;///剪枝
    for(int i=1; i<=n; i++)
    {
        if(xx==xi&&yy==yi)
        {
            printf("%d\n",(int)sum);///这个题比较坑的一点只取整数部分
            f=1;
            return;
        }
        if(((x[i]-xx)*(x[i]-xx)+(y[i]-yy)*(y[i]-yy)==(r+R[i])*(r+R[i])) && book[i]==0)
        {
            sum+=(sp*1.0*r)/(1.0*R[i]);
            book[i]=1;
            dfs(x[i], y[i], R[i], (sp*r*1.0)/R[i]);
            book[i]=0;
            sum-=(sp*1.0*r)/(R[i]*1.0);///回溯
        }
    }
}
int main()
{
    int T, t;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d%d%d", &n, &xi, &yi);
        for(int i=1; i<=n; i++)
        {
            scanf("%d%d%d", &x[i], &y[i], &R[i]);
            if(x[i]==0&&y[i]==0)
                t=i;///记录起点
        }
        memset(book, 0, sizeof(book));
        sum=10000.0;
        book[t]=1;
        f=0;
        dfs(0, 0, R[t], 10000.0);
    }
    return 0;
}
时间: 2024-10-10 12:32:49

机械设备--第九届省赛--深搜的相关文章

第九届省赛-表达式求值(模拟)

表达式求值 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 假设表达式定义为: 1. 一个十进制的正整数 X 是一个表达式. 2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+. 3. 如果 X 和 Y 是 表达式,则 函数 Smax(X,Y)也是表达式,其值为:先分别求出 X ,Y 值的各位数字之和,再从中选最大数. 4.如果 X 是 表达式,则 (X)也是表达式. 例如: 表达式 12*(2+3)+Smax(333,220+2

nyoj1273 河南省第九届省赛_&quot;宣传墙&quot;、状压DP+矩阵幂加速

宣传墙 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做一系列的宣传.为了统一规划,CBA 镇长要求每个宣传栏只能占相邻的两个方格 位置.但这条道路被另一条道路分割成左右两段.CBA 镇长想知道,若每个位置都贴上宣传栏, 左右两段各有有多少种不同的张贴方案. 例如: N=6,M=3, K=2, 左,右边各有 5 种不同的张贴方案 输入 第一行: T 表示

Comet OJ 篮球校赛 深搜

题目描述 JWJU注重培养学生的“唱,跳,rap,篮球”能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台.校赛冠军的奖励是看wls女装一次,为了这个目标,大家都努力训练,希望自己能看到wls女装. 教练my手下有 n 名队员,现在他要挑选 5 人组成一个篮球队来参赛.众所周知,一个篮球队伍有五个不同的位置(控球后卫,得分后卫,小前锋,大前锋,中锋),现在教练mymy给出每名队员在每个位置的能力. 注:如果一个队员作为控球后卫出战,则他只能发挥他的控球后卫的能力值.(其他位

Interesting Calculator 湖南第九届省赛

There is an interesting calculator. It has 3 rows of button. ? Row 1: button 0, 1, 2, 3, - , 9. Pressing each button appends that digit to the end of the display. ? Row 2: button +0, +1, +2, +3, - , +9. Pressing each button adds that digit to the dis

2018山东第九届省赛总结与反思

按比赛时的开题顺序写一下总结.反思.大概题解,以及以后的训练规划. A题大概题解: 简单讨论了一下.注意到题目要求的是变换到目的串的任意排列的最小花费,想到对两个串都按字典序排序,在B串中找到第一个大于等于A[0]的元素,之后一一对应,如果B[I]>=A[J],ans+=A[J]-B[I];否则跳过B[I],最后剩下的A中的元素与B中的元素再一一对应.一发过. 看榜,开F.F题是一个比较难想全的容斥,卡了很久,中间换题把C题一发过了. C题大概题解: 把权值最小的点与所有点相连. 之后我想E题,

UVA 12663 第九届省赛 高桥与低桥 树状数组

1 #include <cstdio> 2 #include <math.h> 3 #include <iostream> 4 #include <cstring> 5 #include <cstdlib> 6 #include <algorithm> 7 using namespace std; 8 9 const int maxn = 1e5+10; 10 int c[maxn], a[maxn]; 11 int lowbit(i

ZOJ 3601 Unrequited Love 浙江省第九届省赛

Unrequited Love Time Limit: 16 Seconds      Memory Limit: 131072 KB There are n single boys and m single girls. Each of them may love none, one or several of other people unrequitedly and one-sidedly. For the coming q days, each night some of them wi

NYOJ--1276--机器设备(河南省第九届省赛,简单的bfs)

机器设备 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 Alpha 公司设计出一种节能的机器设备.它的内部结构是由 N 个齿轮组成.整个机器设备有 一个驱动齿轮,当启动它时,它立即按 10,000 圈/小时转速顺时针转动,然后它又带动与它相切 的齿轮反方向,即逆时针转动.齿轮之间互相作用,每个齿轮都可能驱动着多个齿轮,最终带动 一个工作齿轮完成相应的任务. 在这套设备中,记录了每个齿轮的圆心坐标和齿轮半径.已知驱动齿轮位于(0,0),最终的 工作齿轮位于(Xt,

湖南第九届省赛 好老师

I want to be a good teacher, so at least I need to remember all the student names. However, there are too many students, so I failed. It is a shame, so I don't want my students to know this. Whenever I need to call someone, I call his CLOSEST student