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 ...
随机推荐
- Cocos2d-x中停止播放背景音乐
停止背景音乐播放代码放置到什么地方比较适合呢?例如:在HelloWorld场景中,主要代码如下: bool HelloWorld::init() { return true; } void Hello ...
- c# 简单的通用基础字典
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Alif.Ali ...
- js笔记——浏览器及版本判断
判断IE浏览器的时候注意需要做两个判断 一个是msie 一个是Edge function myBrowser(){ var userAgent = navigator.userAgent; //取得浏 ...
- 关于ajax解析
出处:http://www.cnblogs.com/huashanlin/archive/2006/10/09/524707.html 要很好地领会Ajax技术的关键是了解超文本传输协议(HTTP), ...
- 随机森林之oob error 估计
摘要:在随机森林之Bagging法中可以发现Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中,当然也就没有参加决策树的建立,那是不是意味着就没有用了呢,答案是否定的 ...
- Unity3D设置字体颜色大小,用于游戏分数显示设置等,
最近在学unity3d,慢慢的学会了许多unity的东西,今天记录下unity3d的Label字体大小及颜色的代码,下面是显示游戏中分数的代码,, public static int Score = ...
- 类似QQ的应用毗邻(Pilin)即时聊天源码
这个应用是从安卓教程网分享过了的,个人觉得这个还是挺不错的,毗邻(Pilin)即时聊天应用源码,承诺的 基于xmpp openfire asmack 的即时聊天应用,继续完善,现在只完成了文字.表 ...
- js异步收集
http://www.cnblogs.com/rubylouvre/archive/2011/03/18/1984336.html http://www.cnblogs.com/hustskyking ...
- Hibernate Cascade & Inverse
Cascade - 修改实体表 Inverse - 修改中间表 http://www.cnblogs.com/amboyna/archive/2008/02/18/1072260.html 1.到底在 ...
- Android:启动引导页实现
前言 基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页.效果如下所示