hdu_3001_Travelling(状压DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3001
题意:给你N个点,M条边,每个点最多走两次,问走完N个点最短的路程为多少。
题解:注意这题有重边,因为最多走两次,所以要用3进制来压缩状态,处理一下就行
#include<cstdio>
#include<cmath>
#define FFC(i,a,b) for(int i=a;i<=b;i++) int n,m,s,g[][],dp[][],inf=1e9,cnt,x,y,z,now,end,ans,cur; int main(){
while(~scanf("%d%d",&n,&m)){
end=pow(,n)-,ans=inf;
FFC(i,,n)FFC(j,i,n)g[j][i]=g[i][j]=inf;
FFC(i,,m){scanf("%d%d%d",&x,&y,&z);if(g[x][y]>z)g[x][y]=g[y][x]=z;}
FFC(i,,n)FFC(j,,end)dp[j][i]=inf;
FFC(i,,n)dp[(int)pow(,i-)][i]=;
FFC(i,,end){
FFC(kk,,n){
cur=i;FFC(k,,kk-)cur/=;
if(cur%==)continue;
if(dp[i][kk]!=inf)FFC(j,,n){
now=,cur=i;FFC(k,,j-)now*=,cur/=;
if(cur%<&&kk!=j&&g[kk][j]!=inf){
if(dp[i+now][j]>dp[i][kk]+g[kk][j])
dp[i+now][j]=dp[i][kk]+g[kk][j];
}
}
}
cur=i,cnt=;
while(cur){if(cur%)cnt++;cur/=;}
if(cnt==n)FFC(k,,n)ans=ans>dp[i][k]?dp[i][k]:ans;
}
printf("%d\n",ans==inf?-:ans);
}
return ;
}
hdu_3001_Travelling(状压DP)的更多相关文章
- BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3336 Solved: 1936[Submit][ ...
- nefu1109 游戏争霸赛(状压dp)
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...
- poj3311 TSP经典状压dp(Traveling Saleman Problem)
题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- HDU 1074 Doing Homework (状压dp)
题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...
- 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP
[BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...
- 【BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP
[BZOJ1725][Usaco2006 Nov]Corn Fields牧场的安排 Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M< ...
随机推荐
- 在cmd中连接数据库
1.进入mysql安装路径的 mysql/bin 目录(即mysqld.exe所在目录) 2.在cmd中输入mysql进入mysql操作环境(mysql -u root -p )链接mysql并输入密 ...
- windows10安装composer并解决和xdebug的冲突
环境:windows10,php7,php安装目录C:\php\,php目录已加入windows的PATH. 1.下载composer,在Windows下最简单的办法是下载composer.phar并 ...
- 《精通CSS》——个人总结
[属性选择器] 属性选择器可以根据某个属性是否存在或属性的值来寻找元素. 只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持属性选择器.在 IE6 及更低的版本中,不支持属性选择. 事例: ...
- Android内存泄漏检测利器:LeakCanary
Android内存泄漏检测利器:LeakCanary MAR 28TH, 2016 是什么? 一言以蔽之:LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具 为什么需要LeakCanary? ...
- Java参数传递问题
参考资料:http://blog.sina.com.cn/s/blog_59ca2c2a0100qhjx.html http://blog.csdn.net/a412588063/article/ ...
- JVM保证线程安全
线程安全 Java内存模型中,程序(进程)拥有一块内存空间,可以被所有的线程共享,即MainMemory(主内存):而每个线程又有一块独立的内存空间,即WorkingMemory(工作内存).普通情 ...
- Glide加载圆形图片
方案1:经过验证,可以完美实现 Glide.with(context).load(url).asBitmap().centerCrop().into(new BitmapImageViewTarge ...
- Struts2第二天
Struts2第二天 昨天: 1.Action的编写方式:实现Action接口.继承ActionSupport.自定义pojo作为action 2.action调用方法:默认的execute.meth ...
- 【1】Chrome - 更换主题
更换 Chrome 主题 参照:百度经验 如何在 Chrome 浏览器设置自己喜欢的皮肤,从而使得浏览器更具有个性和吸引力?下面就一步步教你实现(需要fan墙). 实现的效果如下: 第一步:启动Chr ...
- hdu_5876_Sparse Graph(补图BFS)
题目链接:hdu_5876_Sparse Graph 附上叉姐的题解: 1009 Sparse Graph [by ftiasch] 题意:n 个点的无向完全图中删除 m 条边,问点 s 到其他点的最 ...