uva 10911 Forming Quiz Teams
来源:互联网 发布:淘宝主图视频拍摄方法 编辑:程序博客网 时间:2024/06/04 19:38
状态压缩集合上的dp
uva 10911 Forming Quiz Teams
#include<stdio.h>#include<string.h>#include<math.h>#define N 10#define INF 1<<30double dp[1<<(N*2)];int x[N*2],y[N*2],n;double min(double a,double b){ return a>b?b:a;}double dis(int a,int b){ double h; h=(x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b]); return sqrt(h);}int main(){ int i,j,k,l,st;k=1; while(scanf("%d",&n)&&n) { char str[30]; for(i=0;i<n*2;i++) { scanf("%s",str); scanf("%d %d",&x[i],&y[i]); } for(i=0;i<(1<<(n*2));i++) dp[i]=INF;dp[0]=0; for(i=1;i<n*2;i++)//每个i与i之后的状态中第j个人分组 { for(st=0;st<(1<<i);st++) { for(j=0;j<i;j++) { if(!(st&(1<<j)))//j在st状态中 continue; if(dp[st^(1<<j)]!=INF)//st中除了j是双数,可以 { dp[st|(1<<i)]=min(dp[st|(1<<i)],dis(i,j)+dp[st^(1<<j)]); } } } } printf("Case %d: %.2f\n",k++,dp[(1<<(n*2))-1]); } return 0;}
- uva 10911 Forming Quiz Teams
- UVA 10911 Forming Quiz Teams
- uva 10911 Forming Quiz Teams
- UVa 10911 - Forming Quiz Teams
- UVA 10911 - Forming Quiz Teams
- UVA - 10911 Forming Quiz Teams
- UVA 10911 - Forming Quiz Teams
- uva 10911 - Forming Quiz Teams
- UVA - 10911 Forming Quiz Teams
- UVA - 10911 Forming Quiz Teams
- UVA 10911 Forming Quiz Teams
- uva 10911Forming Quiz Teams
- UVa:10911 Forming Quiz Teams(状态压缩)
- UVA-10911 - Forming Quiz Teams(状态压缩)
- Forming Quiz Teams - UVa 10911 状压dp
- UVA - 10911 Forming Quiz Teams 状态压缩
- UVa 10911 Forming Quiz Teams(dfs)
- UVa 10911 Forming Quiz Teams [DP]
- 全世界最短的IE判定
- 谈谈android 布局 的优化
- Shell 知识记录
- windows串口编程
- Android初级教程_获取Android控件的宽和高
- uva 10911 Forming Quiz Teams
- C# 多线程相关问题
- maven 配置篇 之 settings.xml
- 在网上请不要惹一个程序员
- Android JSON网络数据交换
- 去听RAD Studio XE3实战及Delphi for iOS开发预览发表会
- recv()设置超时
- 开源库各种例子项目
- 渐变终点html5 Canvas画图4:填充和渐变