hdu 4435
一道枚举+搜索题;
很容易看出这道题目要求尽量不在大的城市里面建加油站;
所以从最大的城市开始枚举!
代码:
#include<cstdio>
#include<cmath>
#include<cstring>
#define maxn 130
#include<queue>
using namespace std; struct node
{
double x,y;
} no[maxn];
queue<int>q;
int dis[maxn][maxn],n,d,dd[maxn];
bool vis[maxn],flag[maxn]; bool bfs()
{
while(!q.empty())q.pop();
for(int i=;i<=n;i++)if(flag[i])dd[i]=;
else dd[i]=;
q.push();
vis[]=;
while(!q.empty())
{
int u=q.front();
vis[u]=;
q.pop();
for(int i=; i<=n; i++)
{
if(!vis[i]&&i!=u&&dis[u][i]<=d)
{
dd[i]=min(dd[i],dd[u]+dis[u][i]);
if(flag[i])q.push(i);
}
}
}
for(int i=;i<=n;i++)
if(flag[i]==&&dd[i]*>d)return ;
else if(flag[i]&&!vis[i])return ;
return ;
} int main()
{
while(scanf("%d%d",&n,&d)!=EOF)
{
memset(flag,,sizeof flag);
memset(vis,,sizeof vis);
for(int i=; i<=n; i++)
scanf("%lf%lf",&no[i].x,&no[i].y);
for(int i=; i<=n; i++)
for(int j=i+; j<=n; j++)
dis[i][j]=dis[j][i]=ceil(sqrt((no[i].x-no[j].x)*(no[i].x-no[j].x)+(no[i].y-no[j].y)*(no[i].y-no[j].y)));
if(!bfs()){puts("-1");continue;}
for(int i=n; i>=; i--)
{
memset(vis,,sizeof vis);
flag[i]=;
if(!bfs())flag[i]=;
}
int i;
for(i=n;i>=;i--)if(flag[i])break;
for(;i>=;i--)if(flag[i])printf("");
else printf("");
printf("\n");
}
return ;
}
hdu 4435的更多相关文章
- HDU 4435 charge-station () bfs图论问题
E - charge-station Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- HDU 4435 charge-station bfs图论问题
E - charge-station Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- hdu 4435 charge-station
// 题意 从1出发逛完N个点回到出发点 要在这N个点选择性建设加油站 车每次加满油最多可以行使D米// 然后最少要花多少钱才能达到上述要求// 注意到 第i个城市的花费是 2^(i-1) 所以 我就 ...
- HDU 4435 charge-station (并查集)
先说下题目的意思: 在一个二维坐标系中有N个点,某人要来个走遍所有点的旅行,但是他的车每次加油后只能走M个单位距离:所以要在这个N点中选一些建立加油站:问题来了:i^th 点 建加油站的花费是 2 ...
- hdu 4435 第37届ACM/ICPC天津现场赛E题
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题目:给出N个城市,从1开始需要遍历所有点,选择一 ...
- hdu 4435 bfs+贪心
/* 题意:给定每个点在平面内的坐标,要求选出一些点,在这些点建立加油站,使得总花费最少(1号点必须建立加油站).在i点建立加油站需要花费2^i. 建立加油站要求能使得汽车从1点开始走遍全图所有的点并 ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
随机推荐
- A Swift Tour(3) - Functions and Closures
Functions and Closures 使用func来声明函数,通过括号参数列表的方式来调用函数,用 --> 来分割函数的返回类型,参数名和类型,例如: func greet(name: ...
- NHibernate中的IQueryable和IQueryover
今天在做一个小项目时,用到了NHibernate,使用了模糊查询(Like),在后台用IQueryable去接收Session.Query<T>()的查询结果. 代码如下: /// < ...
- (转) ASP.NET反射
原文:http://www.cnblogs.com/zizo/p/3509895.html 两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何 ...
- Win10 10586 更新
最近发现,电脑c盘突然少了许多,发现c盘多了个windowsBT文件夹,大概6个G,恩,win10 又推出更新了,版本10586. 不知道为啥,更新时win10 把原来的下载的删除了,大概出了什么错误 ...
- 2.redis.3.2 下载,安装、配置、使用 - 2
上篇简单介绍了 下载,安装,测试,现在直接使用了,看结果 使用的redis服务便是,上篇临时搭建的简易服务,,注意,说的是简易,因为它只是一个单点的“玩具”: 临时在项目登录的时候模拟了一下,这里使用 ...
- ArcGIS Runtime SDK for WPF已不更新,后续将被ArcGIS Runtime SDK for .NET取代
ArcGIS Runtime SDK 10.2.5 for WPF is now available! by mbranscomb and Rex Hansen on January 27, 2015 ...
- ios objection
给大家介绍个不错的团队开发模块化工具objection 1. setup<这里我只介绍ios相关> rake artifact:ios cp -R build/Release-iphone ...
- JavaScript高级程序设计(二):在HTML中使用JavaScript
一.使用<script>元素 1.<script>元素定义了6个属性: async:可选.表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本 ...
- HUD加载动画支持gif
下载地址 https://pan.baidu.com/s/1c2E7QW4
- iOS 获取当前媒体音量
#import <AVFoundation/AVAudioSession.h> AVAudioSession *audioSession = [AVAudioSession sharedI ...