HDU1565+状态压缩dp
简单的压缩状态
dp
/*
状态压缩dp
同hdu2167
利用滚动数组!!
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<stack>
#include<math.h>
#include<map>
using namespace std;
const int maxn = ;
int binary[ maxn+ ];
int s[ <<(maxn) ];
//int sum[ maxn ][ 1<<maxn ];
//int dp[ maxn ][ 1<<maxn ];
int dp[][<<maxn];
int mat[ maxn ][ maxn ];
void init_binary(){
binary[] = ;
for( int i=;i<=;i++ ){
binary[i] = *binary[i-];
}
} int solve( int n ){
//memset( sum,0,sizeof( sum ) );
memset( dp,,sizeof( dp ) );
int cnt = ;
int N = (<<n);
for( int i=;i<N;i++ ){
if( ( (i<<)&i )== ){
s[ cnt++ ] = i;
}
}//保存合格的状态
//for( int i=0;i<n;i++ ){
//for( int j=0;j<cnt;j++ ){
//for( int k=0;k<n;k++ ){
//if( binary[k]&s[j] ){
//sum[ i ][ j ] += mat[ i ][ k ];
//}
//}
//}
//}
int ans = ;
for( int i=;i<cnt;i++ ){
int sum = ;
for( int j=;j<n;j++ ){
if( binary[j]&s[i] ){
sum += mat[][j];
}
}
dp[][i] = sum;
ans = max( ans,dp[][i] );
}
for( int i=;i<n;i++ ){
for( int j=;j<cnt;j++ ){
for( int k=;k<cnt;k++ ){
if( ( s[j]&s[k] )== ){
int sum = ;
for( int kk=;kk<n;kk++ ){
if( binary[kk]&s[j] ){
sum += mat[i][kk];
}
}
if( i%== ) dp[ ][ j ] = max( dp[][j],dp[][k]+sum );
else dp[ ][ j ] = max( dp[][j],dp[][k]+sum );
//dp[ i ][ j ] = max( dp[i][j],dp[i-1][k]+sum );
//dp[i][j] = max( dp[i][j],dp[i-1][k]+sum[i][j] );
}
}
ans = max( ans,max( dp[][j],dp[][j] ) );
}
}
return ans;
} int main(){
int n;
init_binary();
while( scanf("%d",&n)== ){
for( int i=;i<n;i++ ){
for( int j=;j<n;j++ ){
scanf("%d",&mat[i][j]);
}
}
int ans = solve( n );
printf("%d\n",ans);
}
return ;
}
HDU1565+状态压缩dp的更多相关文章
- HDU1565 方格取数(1)(状态压缩dp)
题目链接. 分析: 说这题是状态压缩dp,其实不是,怎么说呢,题目数据太水了,所以就过了.手动输入n=20的情况,超时.正解是网络流,不太会. A这题时有个细节错了,是dp[i][j]还是dp[i][ ...
- 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 ...
随机推荐
- 第二篇、为UITableViewCell 高度自适应加速 缓存cell的高度
通过NSCache缓存已经算好的行高 @interface ZHCellHeightCalculator : NSObject //系统计算高度后缓存进cache -(void)setHeight:( ...
- (转)持续化集成工具CruiseControl.NET
持续化集成工具CC.NET[ 引言: 团队开发需要 进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效.限定重要文件的访问权限.使用悲观锁杜绝成员同时编辑同一份文件. 不 ...
- javascript笔记——图片大小检测
<html> <head> <script type="text/javascript"> var isIE = /msie/i.test(na ...
- jvmstat监控jvm内存
1.下载jvmstat-3_0.zip: 2.配置环境变量JVMSTAT_JAVA_HOME为jdk目录E:\Program Files\Java\jdk1.5.0_12 3.监控本机: jps查看 ...
- Polyline转Polygon
IGeometry geo = feature.ShapeCopy; IGeometryCollection pPolyline = geo as IGeometryCollection; ISegm ...
- PerformSelector may cause a leak because its selector is unknown 解决方法
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3801030.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- 一个疑惑的的问题-ntvdm.exe进程
今天测试反馈了一个问题,在启动我们程序某个模块的程序时,会立即出现一个ntvdm.exe进程,此进程会占用大量的系统资源,导致系统卡住. 当第一眼看到这个现象时,以为是电脑中毒了,所以立即在网上查. ...
- Unity3D编程回忆录,Unity3d视频教程,教父团队倾情之作
之前一直在看Unity3d的视频教程,包括很多老外的视频教程,老外的教程确实不错,技术含量很高,而且讲得很激情,让我有种恨不得一秒钟就想吧unity3d学个精通的冲动,只是,毕竟是英语教程,没办法,哎 ...
- linux make clean
make clean仅仅是清除之前编译的可执行文件及配置文件. 而make distclean要清除所有生成的文件. Makefile 在符合GNU Makefiel惯例的Makefile中,包含了一 ...
- 在Windows 7下面IIS7的安装和 配置ASP的正确方法
在Windows 7下如何安装IIS7,以及IIS7在安装过程中的一些需要注意的设置,以及在IIS7下配置ASP的正确方法. 一.进入Windows 7的 控制面板,选择左侧的打开或关闭Windows ...