博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-4539 郑厂长系列故事――排兵布阵(状态压缩)
阅读量:4286 次
发布时间:2019-05-27

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

类似于poj-1185

//曼哈顿距离 d = |x1 - x2| + |y1 - y2|//解决曼哈顿距离冲突 s[i]&(s[j] << 1)||s[i]&(s[j] >> 1)#include
#include
#include
#include
using namespace std;int n,m,num;int s[200],p[200],a[200];int dp[110][222][222];bool ok(int x){ if(x&(x<<2)) return false; return true;}void init(){ num = 0; for(int i = 0;i < (1<
>1))) return false; return true;}int main(){ int temp; while(~scanf("%d%d",&n,&m)){ memset(a,0,sizeof(a)); for(int i = 0;i < n;i++){ for(int j = 0;j < m;j++){ scanf("%d",&temp); if(!temp) a[i] += (1<
< num;i++){ p[i] = cal(s[i]); if(find(s[i],a[0])) dp[0][i][0] = p[i]; } for(int i = 1;i < n;i++){ for(int j = 0;j < num;j++){ if(s[j]&a[i]) continue; for(int k = 0;k < num;k++){ if(!find1(s[j],s[k])) continue; for(int l = 0;l < num;l++){ if(s[l]&s[j]) continue; if(!find1(s[j],s[k])) continue; dp[i][j][k] = max(dp[i][j][k],dp[i-1][k][l] + p[j]); } } } } int ans = 0; for(int i = 0;i < num;i++){ for(int j = 0;j < num;j++){ ans = max(ans,dp[n-1][i][j]); } } printf("%d\n",ans); }}

转载地址:http://udsgi.baihongyu.com/

你可能感兴趣的文章
AngularJs directive-scope双向绑定方法处理-实例2
查看>>
AngularJs Ajax分页控件
查看>>
LocalDB数据库修改排序规则,修复汉字变问号
查看>>
C# Json序列化工具--Newtonsoft.Json简介和使用
查看>>
EntityFramework中Json序列化的循环引用问题解决--Newtonsoft.Json
查看>>
AngularJs----ng-class
查看>>
Bootstrap3 datetimepicker控件的使用
查看>>
NodeJs常用链接整理
查看>>
Bootstrap model的使用及点击外部不消失
查看>>
Linq To Entity多条件or查询处理
查看>>
AngularJs ng-options
查看>>
Jquery Md5加密-Jquery.md5.js
查看>>
JQuery.cookie.js操作客户端cookie
查看>>
Git官网下载windows版本慢的问题
查看>>
Js 取模运算、取商、取整方法
查看>>
NodeJs开发环境之Sublime Text3
查看>>
Sublime text 2/3 [Decode error - output not utf-8] 完美解决方法
查看>>
ffmpeg ffplay ffprobe资料整理
查看>>
Sublime Text 插件之Emmet
查看>>
SublimeText插件之CodeFormatter
查看>>