uvalive 6323 状态压缩DP
思路:dp[i][j][x]表示状态 i 以 j 为结束 得分为 x 的方案数。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int dp[][][],g[][],d[][],n,l,ans;
bool vi[],ntou[];
struct Point{
int x,y;
}p[];
bool OK(int a,int b)
{
int x1,y1,x2,y2,i;
x1=p[a].x,y1=p[a].y;
x2=p[b].x,y2=p[b].y;
if(x1==x2){
if(y1>y2)
swap(y1,y2);
for(i=y1+;i<y2;i++) if(!vi[g[x1][i]]||ntou[g[x1][i]])
return false;
}
if(y1==y2){
if(x1>x2)
swap(x1,x2);
for(i=x1+;i<x2;i++) if(!vi[g[i][y1]]||ntou[g[i][y1]])
return false;
}
if(abs(x1-x2)==&&abs(y1-y2)==){
int x=(x1+x2)/;
int y=(y1+y2)/;
if(!vi[g[x][y]]||ntou[g[x][y]])
return false;
}
return true;
}
void init()
{
int i,j,cnt=;
for(i=;i<=;i++){
for(j=;j<=;j++){
g[i][j]=++cnt;
p[cnt].x=i,p[cnt].y=j;
}
}
for(i=;i<=;i++){
for(j=;j<=;j++){
d[i][j]=abs(p[i].x-p[j].x)+abs(p[i].y-p[j].y);
}
}
}
void solve()
{
int i,j,k,r;
ans=;
int N=(<<)-;
for(i=;i<;i++)
dp[<<i][i+][]=;
for(i=;i<=N;i++){
memset(vi,,sizeof(vi));
for(k=;k<;k++) if(((<<k)&i)) vi[k+]=;
for(j=;j<;j++) if((((<<j)&i))&&!ntou[j+]){
for(k=;k<;k++) if(((<<k)&i)==&&!ntou[k+]&&OK(j+,k+)){
//cout<<p[j+1].x<<" "<<p[j+1].y<<" "<<p[k+1].x<<" "<<p[k+1].y<<endl;
for(r=;r<=;r++){
dp[i|(<<k)][k+][r+d[j+][k+]]+=dp[i][j+][r];
}
}
}
}
for(i=;i<=N;i++){
for(j=;j<=;j++){
ans+=dp[i][j][l];
}
}
}
int main()
{
int i,j,t,x,y;
init();
scanf("%d",&t);
while(t--){
memset(dp,,sizeof(dp));
memset(vi,,sizeof(vi));
memset(ntou,,sizeof(ntou));
scanf("%d%d",&l,&n);
for(i=;i<=n;i++){
scanf("%d%d",&x,&y);
ntou[g[x][y]]=;
}
if(l>=){
printf("BAD MEMORY\n");
continue;
}
solve();
if(ans)
printf("%d\n",ans);
else
printf("BAD MEMORY\n");
}
return ;
}
uvalive 6323 状态压缩DP的更多相关文章
- hoj2662 状态压缩dp
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...
- POJ 3254 Corn Fields(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4739 Accepted: 2506 Descr ...
- [知识点]状态压缩DP
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...
- HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...
- DP大作战—状态压缩dp
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...
- 状态压缩dp问题
问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...
- BZOJ-1226 学校食堂Dining 状态压缩DP
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...
- Marriage Ceremonies(状态压缩dp)
Marriage Ceremonies Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
随机推荐
- python_39_变量补充
#使用eval()函数计算字符串中的有效表达式,并返回结果 a='1+3' print(eval(a)) b='''{ '闵行': { '人民广场': { '炸鸡店': {}, }, } ''' pr ...
- Github的基本功能
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Fadeoc Khaos链接:http://www.zhihu.com/question/20070065/answer/30 ...
- C#Aspose操作Word & Excel简版(后会研究补充更多功能)
利用Aspose操作Word & Excel首先要在项目中标引用Aspose.Words.dll和Aspose.Cells.dll. 首先说一说向Word中写入数据,目前做的是向Word中的标 ...
- 2- vue django restful framework 打造生鲜超市 -环境搭建
使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, ...
- maven引入dubbo包后启动报错
启动后报错内容为: Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exce ...
- k8s的认证和service account简述
k8s的认证: 与API server通信的客户端大致有两类: 1.集群客户端工具(kubectl.kubeadm.kubelet等) 2.集群内pod. 任何客户端访问k8s时的过程: 1.认 ...
- 固定table的表头同时固定列
table表格是我们最常使用的数据显示一种形式,但有时候数据比较多的时候 就需要我们去固定表头,固定列.我这里用简单的css样式配合两句js脚本来实现,希望能够去帮到你. <div class= ...
- 想成长为一名年薪50万+的实战型架构师?必掌握这7大实战技能经验--阿里mike
想成为一名架构师,但是架构师对应的技能,我应该掌握哪些啊?以及掌握的程度是什么样的?如何成为一名真正的实战性架构师? 我简要分为以下7点来谈谈,从技能的角度抛砖引玉,希望你对你架构师之路有一定的参考. ...
- 11、python中的函数(基础)
一.什么是函数? 在数学中,x2+2x2+3=10这样的叫方程. 而ax2+bx2+c=d这样的才叫函数.数学的函数中,abcd等待输入的未知量叫自变量,它需要我们自己去输入,而x这种待求得未知量叫因 ...
- UVA_1025 a Spy in the Metro 有向无环图的动态规划问题
应当认为,有向无环图上的动态规划问题是动态规划的基本模型之一,对于某个模型,如果可以转换为某一有向无环图的最长.最短路径问题,则可以套用动态规划若干方法解决. 原题参见刘汝佳紫薯267页. 在这个题目 ...