描述


http://www.lydsy.com/JudgeOnline/problem.php?id=1615

一个主动轮带着一些轮子转,轮子带着轮子转,轮子带着轮子转...一个非主动轮只会被一个轮子带着转.求从主动轮到某一个轮子的路上所有轮子的转速的绝对值之和.

分析


从起点开始,枚举相接触的轮子,只要不是之前路上的(带着当前轮子转的)轮子,就继续往下走.宽搜深搜都可以.

注意:

1.%.0lf是会四舍五入的!所以要强制转化成int.

宽搜:

 #include <bits/stdc++.h>
using namespace std; const int maxn=+;
const double eps=1e-;
struct node{ double x,y,r; }a[maxn];
int n,s,t;
int q[maxn];
bool vis[maxn];
double xt,yt;
double s_[maxn],ans[maxn];
inline bool c(node a,node b){ return fabs((sqrt(pow(a.x-b.x,)+pow(a.y-b.y,))-a.r-b.r))<eps; }
int main(){
scanf("%d%lf%lf",&n,&xt,&yt);
for(int i=;i<=n;i++){
scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].r);
if(a[i].x==0.0&&a[i].y==0.0) s=i;
else if(a[i].x==xt&&a[i].y==yt) t=i;
}
int front=,tail=;
q[tail++]=s; vis[s]=true; s_[s]=ans[s]=;
while(front!=tail){
int u=q[front++];
if(u==t){ printf("%d\n",(int)ans[u]); return ; }
for(int v=;v<=n;v++)if(!vis[v]&&c(a[u],a[v])){
s_[v]=-s_[u]*a[u].r/a[v].r;
ans[v]+=fabs(s_[v])+ans[u];
vis[v]=true;
q[tail++]=v;
}
}
return ;
}

深搜:

 #include <bits/stdc++.h>
using namespace std; const int maxn=+;
const double eps=1e-;
struct node{ double x,y,r; }a[maxn];
int n,s,t;
int q[maxn];
double xt,yt;
bool vis[maxn];
inline bool c(node a,node b){ return fabs(sqrt(pow(a.x-b.x,)+pow(a.y-b.y,))-a.r-b.r)<eps; }
double dfs(int u,double sp,double ans){
if(u==t) return ans;
for(int v=;v<=n;v++)if(!vis[v]&&c(a[u],a[v])){
vis[v]=true;
double S=-sp*a[u].r/a[v].r;
return dfs(v,S,ans+fabs(S));
}
}
int main(){
scanf("%d%lf%lf",&n,&xt,&yt);
for(int i=;i<=n;i++){
scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].r);
if(a[i].x==0.0&&a[i].y==0.0) s=i;
else if(a[i].x==xt&&a[i].y==yt) t=i;
}
vis[s]=true;
printf("%d\n",(int)dfs(s,,));
return ;
}

BZOJ_1615_[Usaco2008_Mar]_The Loathesome_Hay Baler_麻烦的干草打包机_(模拟+宽搜/深搜)的更多相关文章

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

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

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

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

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

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

  4. bzoj1615 / P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler

    P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler 细节题.$O(n^{2})$的$bfs$可过. #include<iostream> ...

  5. 洛谷P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler

    P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler 题目描述 Farmer John has purchased the world's most l ...

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

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

  7. bzoj1615 麻烦的干草打包机 BFS

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

  8. P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler

    传送门 题目问的是从出发点一直跑到终点的一条链上所有齿轮的速度和 其他的不用考虑 直接搜就好了 注意求的是绝对值之和,不是和的绝对值,所以不用考虑方向问题 注意 N<=1050 数组不要只开10 ...

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

    直接bfs即可,注意开double,还有驱动和终点的齿轮都在序列里,要把它们找出来= = #include<iostream> #include<cstdio> #includ ...

随机推荐

  1. 关于atoi的实现

    一.关于atoi atol的实现 __BEGIN_NAMESPACE_STD __extern_inline double __NTH (atof (__const char *__nptr)) { ...

  2. 九度OJ 1104 整除问题

    题目地址:http://ac.jobdu.com/problem.php?pid=1104 题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2 ...

  3. 我爱工程化 之 gulp 使用(一)

    一.简介 gulp是前端自动化工具,压缩.合并.预编译检查等等,它与grunt频繁IO操作来消耗内存相比,它是使用的流的方式,我们可以简称为管道流(一端入,一端出,3通水,一个大桶,第一通在管道里面流 ...

  4. DataGridView添加另外一个控件。

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  5. Angular 动态生成html中 ng-click无效

    bodyApp.controller('customersCtrl', function ($scope, $http, cfpLoadingBar,$compile) { $scope.test = ...

  6. VB6-系统打印常识

    在一次做图片打印的时候,对位置的调整老是不得法,后来通过CBM666老师的帮助才解决问题,分享以下他给的帮助.     , , picA.Width , picA.Height Printer.End ...

  7. android实现视频图片取缩略图

    取缩略图不等同于缩放图片. 缩放图片是保持不失真的情况下缩放处理,并进行平滑处理. 缩略图则不然,允许失真,目的只是取出图片的轮廓. 保存Bitmap图片 private void saveBitma ...

  8. 【springmvc Request】 springmvc请求接收参数的几种方法

    通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...

  9. DB天气app冲刺第一天

    今天算是正式的第一天开始着手做这个app了,前两天作的是嵌入式的大作业,看着书上的例子做了一个小游戏.基本也算完成了作业.主要是为了练手,熟悉android的开发流程.基本明白了.以后好上手了. 今天 ...

  10. 重启Finder

    解决Finder卡死的问题! 方法一:在Dock 图标上操作 按住 Option 键并右键点按 Finder 图标,选择菜单中的“重新开启” 方法二:在终端里操作 打开终端(应用程序 – 实用工具), ...