hdu3832
来源:互联网 发布:论文数据分析法 编辑:程序博客网 时间:2024/05/22 01:06
/*
分析:
竟然用的这个方法过的:
先算出3个点分别到其它各个点的距离,然后遍历所
有点,求min=MIN(min,dis_1[i]+dis_2[i]+dis_3[i]);
那么结果就是n-d-1。
实在不明白,为什么这样能ac。比如:这样得出的
点10作为中心是最合适的,那么如果1到10的路径上有边
与2到10的路径上的边重合的话,那么这方法坑定的不对
啊~!
2012-07-25
*/
分析:
竟然用的这个方法过的:
先算出3个点分别到其它各个点的距离,然后遍历所
有点,求min=MIN(min,dis_1[i]+dis_2[i]+dis_3[i]);
那么结果就是n-d-1。
实在不明白,为什么这样能ac。比如:这样得出的
点10作为中心是最合适的,那么如果1到10的路径上有边
与2到10的路径上的边重合的话,那么这方法坑定的不对
啊~!
2012-07-25
*/
#include"stdio.h"#include"math.h"#include"string.h"int queue[5555];struct A{int x,y;int r;int total;int mem[222];}E[222];int n;int dis[222];int dis_1[222];int dis_2[222];int dis_3[222];int MIN(int a,int b){return a>b?b:a;}void SPFA(int s){int key,k;int i;int hash[222];int temp;for(i=1;i<=n;i++)dis[i]=1111111;dis[s]=0;memset(hash,0,sizeof(hash));k=0;key=1;queue[0]=s;hash[s]=1;while(k<key){for(i=0;i<E[queue[k]].total;i++){temp=dis[queue[k]]+1;if(temp<dis[E[queue[k]].mem[i]]){dis[E[queue[k]].mem[i]]=temp;if(!hash[E[queue[k]].mem[i]]){hash[E[queue[k]].mem[i]]=1;queue[key++]=E[queue[k]].mem[i];}}}hash[queue[k]]=0;k++;}}int main(){int T;int i,l;int t1,t2;int min;scanf("%d",&T);while(T--){scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d%d%d",&E[i].x,&E[i].y,&E[i].r);for(i=1;i<=n;i++){E[i].total=0;for(l=1;l<=n;l++){if(i==l)continue;t1=abs(E[i].x-E[l].x)*abs(E[i].x-E[l].x)+abs(E[i].y-E[l].y)*abs(E[i].y-E[l].y);t2=(E[i].r+E[l].r)*(E[i].r+E[l].r);if(t2>=t1)E[i].mem[E[i].total++]=l;}}SPFA(1);for(i=1;i<=n;i++)dis_1[i]=dis[i];SPFA(2);for(i=1;i<=n;i++)dis_2[i]=dis[i];SPFA(3);for(i=1;i<=n;i++)dis_3[i]=dis[i];min=111111;for(i=1;i<=n;i++)min=MIN(min,dis_1[i]+dis_2[i]+dis_3[i]);if(min==111111)printf("-1\n");elseprintf("%d\n",n-min-1);}return 0;}
- hdu3832
- hdu3832 Earth Hour
- hdu3832(3次迪杰斯特拉)
- hdu3832 Earth Hour
- 多校联合1004,hdu3832
- hdu3832-Earth Hour-最短路dij
- HDU3832 Earth Hour 斯坦纳树(三点连通)
- HDU3832 Earth Hour 2011 Multi-University Training Contest 1 - Host by HNU
- hdu3832(2011 Multi-University Training Contest 1 - Host by HNU )
- 从IT菜鸟变为“IT骨干开发者”的11个建议
- stfp server 环境搭建
- 评级机构雪上加霜,欧元跌跌不休
- iphone 常用校验表单
- jquery刷新页面与页面跳转
- hdu3832
- 成为“Android高手”需要经过的六个阶段和6个境界
- 百度嫁人了?
- 去除MTK Android 自带Launcher用自己的Launcher
- SEO行业中八个真实的谎言,你信了吗
- 大连化物所关于水的光解动力学文章获JCP杂志推荐
- PHP访问表单变量
- windows 7下搭建android开发环境步骤图解
- 堆排序的实现-C语言