博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4026 Unlock the Cell Phone [状态压缩DP]
阅读量:6577 次
发布时间:2019-06-24

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

  一开始看范围特别小就写搜索了。。。结果自己随便出了个4*4就过不了了。。

  其实就是状态压缩DP,求哈密顿回路要多少条,只是要注意判断两点是否可以划线就可以了。

  

#include 
#include
#include
typedef __int64 LL;int n,m,tot;int mz[25],bet[25][25][25],full;int zero[16],zeros,hzero[25],lowb[65536];LL d[16][65536],ans;int cant(int st,int en,int stat){ st=zero[st],en=zero[en]; if(st>en)std::swap(st,en); for(int i=1;i<=bet[st][en][0];i++){ int x=bet[st][en][i]; if(mz[x]==1)return 1; if(mz[x]==0&&((stat>>hzero[x])&1)==0)return 1; } return 0;}LL dp(int last,int stat){ if(d[last][stat]!=-1)return d[last][stat]; if(stat==(stat&-stat))return 1; LL nans=0; int nstat=stat,now,i; while(nstat){ now=(nstat&-nstat),i=lowb[now],nstat-=now;; if(i==last||cant(i,last,stat))continue; nans+=dp(i,stat&~(1<

转载于:https://www.cnblogs.com/swm8023/archive/2012/08/27/2659375.html

你可能感兴趣的文章
UVA 11992 Fast Matrix Operations (降维)
查看>>
暂时不想读研的几点理由
查看>>
增加临时表空间组Oracle11g单实例
查看>>
Diff Two Arrays
查看>>
stark组件(1):动态生成URL
查看>>
169. Majority Element
查看>>
下拉菜单
查看>>
[清华集训2014]玛里苟斯
查看>>
Doctype作用?严格模式与混杂模式如何区分?它们有何意义
查看>>
【MVC+EasyUI实例】对数据网格的增删改查(上)
查看>>
第三章:如何建模服务
查看>>
Project Euler 345: Matrix Sum
查看>>
你可能不知道的技术细节:存储过程参数传递的影响
查看>>
HTML转义字符大全(转)
查看>>
[摘录]调动员工积极性的七个关键
查看>>
Backup Volume 操作 - 每天5分钟玩转 OpenStack(59)
查看>>
.htaccess 基础教程(四)Apache RewriteCond 规则参数
查看>>
转: maven进阶:一个多模块项目
查看>>
Android控件之HorizontalScrollView 去掉滚动条
查看>>
UVM中的class--2
查看>>