hdu 1565 方格取数(1)
来源:互联网 发布:excel 数据连接 编辑:程序博客网 时间:2024/05/21 10:24
状态压缩》》》》》》》》》》》》》》》》》》》》》》》》
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<ctype.h>
#include<queue>
#include<iostream>
#define inf 999999999
using namespace std;
int Min( int a,int b )
{
return a>b?b:a;
}
int n, m, k;
int dp[22][20000];
int map[30][30];
int num[20000];
int main()
{
int i, j, t, sum, countt, maxx, falg, cas=0;
k=0;
for( i=0;i<( 1<<20 );i++ )
{
if( ( i&( i<<1 ) )==0 )
num[k++]=i;
}
while( scanf( "%d",&n )!=-1 )
{
for( i=1;i<=n;i++ )
{
for( j=0;j<n;j++ )
scanf( "%d",&map[i][j] );
}
memset( dp,0,sizeof( dp ) );
for( k=1;k<=n;k++ )
{
for( i=0;num[i]<( 1<<n );i++ )
{
sum=0;
maxx=0;
for( j=0;j<n;j++ )
{
if( ( num[i]&( 1<<j )) )
sum+=map[k][j];
}
for( j=0;num[j]<( 1<<n );j++ )
{
if( ( num[j]&num[i] )==0 )
{
if( dp[k-1][j]>maxx )
maxx=dp[k-1][j];
}
}
dp[k][i]=maxx+sum;
}
}
maxx=0;
for( i=0;num[i]<( 1<<n );i++ )
{
if( dp[n][i]>maxx )
maxx=dp[n][i];
}
printf( "%d\n",maxx );
}
return 0;
}
- HDU 1565 方格取数(1)
- hdu 1565 方格取数(1)
- HDU-1565-方格取数(1)
- hdu 1565 方格取数(1)
- HDU 1565 方格取数(1)
- hdu(1565)方格取数(1)
- hdu 1565 方格取数(1)
- hdu 1565 方格取数(1)
- hdu 1565 方格取数(1)
- HDU - 1565 方格取数(1) (DP)
- hdu 1565 方格取数(1)
- HDU 1565 方格取数(1)
- HDU 1565 方格取数(1)
- hdu acm 1565 方格取数(1)
- HDU 1565 方格取数(1)
- HDU - 1565 方格取数(1)
- HDU 1565 方格取数(1)
- HDU 1565 方格取数(1)
- OC 成员变量和属性的区别 .
- Mac OS X 安装和配置 PAServer,调试Firemonkey程序
- LeetCode OJ算法题(五十九):Permutation Sequence
- ios--UITabBarController的基本用法3
- c#程序以管理员身份运行(三种办法)
- hdu 1565 方格取数(1)
- Qt构建及编译出错问题及解决方案
- Why my APNs push certificate did not work?
- 嵌入式 tasklet使用workqueue示例
- 一个可以自动生成静态库,自动安装程序的Makefile
- gcc常用命令
- ACdream区域赛指导赛之手速赛系列(4) A Bad Horse
- C语言思想14
- ubuntu 14.04 添加 CPU 温度 在面板标题栏上