/*
题意:给定每个点在平面内的坐标,要求选出一些点,在这些点建立加油站,使得总花费最少(1号点必须建立加油站)。在i点建立加油站需要花费2^i。
建立加油站要求能使得汽车从1点开始走遍全图所有的点并回到1点,途中汽车加油次数不限,每个加油站的使用次数不限,
但是汽车油箱有上限d(加满油可以跑距离d)。
第i个点的费用=比i小的点的所有费用和+1;
所以从后向前判断,如果当前点不为加油站在这个点前面的所有都为加油站的话,判断是否成立
如果不能成立的话,这个点必选,否则不用必须选
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<algorithm>
#include<iostream>
using namespace std;
#define eps 1e-10
#define inf 0x3fffffff
#define N 200
int ma[N][N];
struct node
{
double x,y;
} f[N*N];
int n,m;
int distan(int i,int j)
{
return ceil(sqrt((f[i].x- f[j].x)*(f[i].x-f[j].x) + (f[i].y - f[j].y)*(f[i].y-f[j].y)));
}
int vis[N];
int bfs(int x)
{
int i,k,viss[N],num=1;
memset(viss,0,sizeof(viss));
queue<int>q;
q.push(1);
viss[1]=1;
while(!q.empty())
{
k=q.front();
q.pop();
for(i=2; i<=n; i++)
{
if(i==k||viss[i])continue;
if(vis[i]==0&&ma[k][i]*2<=m)
{
num++;
viss[i]=1;
}
if(vis[i]&&ma[k][i]<=m)
{
num++;
viss[i]=1;
q.push(i);
}
if(num==n)
return 1;
}
}
return 0;
}
int main()
{
int i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1; i<=n; i++)
scanf("%lf%lf",&f[i].x,&f[i].y);
for(i=1; i<=n-1; i++)
for(j=i+1; j<=n; j++)
{
k=distan(i,j);
ma[i][j]=ma[j][i]=k;
}
for(i=1; i<=n; i++)
vis[i]=1;
if(!bfs(n+1))
{
printf("-1\n");
continue;
}
for(i=n; i>=2; i--)
{
vis[i]=0;
if(!bfs(i))
vis[i]=1;
// printf("%d ",vis[i]);
}
i=n;
while(vis[i]==0)
i--;
for(; i>=1; i--)
{
if(vis[i])
printf("1");
else
printf("0");
}
printf("\n");
}
return 0;
}

hdu 4435 bfs+贪心的更多相关文章

  1. HDU 4435 charge-station () bfs图论问题

    E - charge-station Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  2. HDU 4435 charge-station bfs图论问题

    E - charge-station Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  3. UVA12130 Summits(BFS + 贪心)

    UVA12130 Summits(BFS + 贪心) 题目链接 题目大意: 给你一个h ∗ w 的矩阵,矩阵的每一个元素都有一个值,代表这个位置的高度. 题目要求你找出这个图中有多少个位置是峰值点.从 ...

  4. BFS+贪心 HDOJ 5335 Walk Out

    题目传送门 /* 题意:求从(1, 1)走到(n, m)的二进制路径值最小 BFS+贪心:按照标程的作法,首先BFS搜索所有相邻0的位置,直到1出现.接下去从最靠近终点的1开始, 每一次走一步,不走回 ...

  5. HDU-1072 Nightmare (bfs+贪心)

    Nightmare Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Sub ...

  6. hdu 4531 bfs(略难)

    题目链接:点我 第一次不太清楚怎么判重,现在懂了,等下次再做 /* *HDU 4531 *BFS *注意判重 */ #include <stdio.h> #include <stri ...

  7. Hdu 4864(Task 贪心)(Java实现)

    Hdu 4864(Task 贪心) 原题链接 题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个 ...

  8. D - 淡黄的长裙 HDU - 4221(贪心)

    D - 淡黄的长裙 HDU - 4221(贪心) James is almost mad! Currently, he was assigned a lot of works to do, so ma ...

  9. hdu 2037简单贪心--活动安排问题

    活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动 ...

随机推荐

  1. [转]C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等

    本文转自:http://www.cnblogs.com/suizhikuo/p/3791799.html 我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Inte ...

  2. js 常用处理

    判断浏览器环境是PC端还是手机端 function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios| ...

  3. Nexus3.0搭建私服上传JAR包 Windows10

    背景 近期换了一个项目组,用的是公司自研产品,涉及到很多内部JAR包引用,版本号很多,每次更新都是产品部给出jar包,项目组成员各自复制一套本地替换,来了新人各种安装配置,复杂度太高,这不,我一来,又 ...

  4. git push代码时的'git did not exit cleanly (exit code 1)'问题解决

    在利用git管理本地发布的galleryLeftOrRight插件项目时,按照git的使用方法:先commit→master,再 push,发现提示错误git did not exit cleanly ...

  5. Nginx反向代理node,实现让静态文件在同一域

    Nginx反向代理node,实现让静态文件在同一域 原文https://github.com/zhuangZhou/Blog/issues/4 不管是Vue还是React,还是传统的网站,与node服 ...

  6. git---安装及配置

    git官网:https://git-scm.com 安装: 官网下载->一路Next->安装完成 配置git: 1.win+r进入windows命令行 2.注册: git config - ...

  7. iOS Programming View Controllers 视图控制器

    iOS Programming View Controllers  视图控制器  1.1  A view controller is an instance of a subclass of UIVi ...

  8. R in action读书笔记(4)-第六章:基本图形(下)

    6.3直方图 hist() 其中的x是一个由数据值组成的数值向量.参数freq=FALSE表示根据概率密度而不是频数绘制图形.参数breaks用于控制组的数量.在定义直方图中的单元时,默认将生成等距切 ...

  9. 新奇:(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。

    首先看下面这张图片,下面的所有界面都是用html代码实现的. 编程IDE:vb6.0 使用控件:WEBBROWSER 原理:使用olelib 让程序继承:IDocHostUIHandler 和 ICu ...

  10. [转] 以超级管理员身份运行bat

    (转自:以超级管理员身份运行bat - lishirong   原文日期:2013.07.04) 废话不多说,直接上代码: -------------------------------------- ...