博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3920 Clear All of Them I(DP + 状态压缩 + 贪心)
阅读量:5297 次
发布时间:2019-06-14

本文共 891 字,大约阅读时间需要 2 分钟。

题目链接:

题目大意:你在一个位置用激光枪灭敌人,给你初始位置,下面是2*n个敌人的位置,你一枪能杀两个,可以杀死任意两个人,激光束的路径是消耗的能量,求最小能量,保证一次只消灭两个敌人,你的位置不变

Sample Input
2
 
 
0 0
1
6 0
3 0
 
 
0 0
2
1 0
2 1
-1 0
-2 0
 
Sample Output
Case #1: 6.00
Case #2: 4.41

分析:给每个点编个号,用状态压缩表示射击那些点,射击过的表示为1,dp[i]表示射击状态 i 时最少消耗,答案即为dp[(1<<2*n)-1]

  先每个点到射击点排个序,每次选最近的一个点,和距离这个点最近的点,这两个就是应该选的点(贪心)

代码如下:

1 # include
2 # include
3 # include
4 # include
5 # include
6 using namespace std; 7 const int INF = 0xffffff; 8 double dis[21][21],dp[1<<21]; 9 int vis[1<<21];10 int n,fx,fy;11 struct NODE12 {13 int x,y;14 } node[21];15 double DIS(double x1,double y1,double x2,double y2)16 {17 return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));18 }19 bool cmp(NODE a,NODE b)20 {21 return DIS(a.x,a.y,fx,fy)

 

转载于:https://www.cnblogs.com/acm-bingzi/p/3300256.html

你可能感兴趣的文章
零基础HTML5游戏制作教程 第6章 贪吃蛇的实现及代码
查看>>
非静态成员的sizeof
查看>>
Linux的SVN——RapidSVN及其diff与edit工具配置
查看>>
HTML标签
查看>>
hdu 5592 ZYB's Premutation(线段树优化)
查看>>
Interesting Yang Yui Triangle(hdu3304)
查看>>
ansible总结
查看>>
面试题1字符串的压缩
查看>>
几个孩子围成圈报数 当等于3的时候删除 链表实现 最终输出剩下孩子的编号
查看>>
BZOJ 1853
查看>>
mysql 综合
查看>>
js函数收集
查看>>
python初学的问题记录3-4
查看>>
20169212《Linux内核原理与分析》 第十周作业
查看>>
xml
查看>>
【codeforces 760D】Travel Card
查看>>
HDU 3790 最短路径问题
查看>>
Python实现简单登陆验证(文件操作)
查看>>
自动化构建工具
查看>>
Jan 15 - Next Permutation; Array; Pointer;
查看>>