hdu 1565(状态压缩基础题)
题意:容易理解。
分析:这是我做的状态压缩第二题,一开始超内存了,因为数组开大了,后来超时了,因为能够成立的状态就那么多,所以你应该先把它抽出来!!总的来说还是比较简单的!!
代码实现:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> using namespace std; int n;
int dp[][(<<)+],map[][],a[],num; void chushihua()
{
int max=<<,i;
for(i=;i<max;i++)
if((i&(i<<))==)
a[num++]=i;
} int qiu(int r,int flag)
{
int i,x=<<(n-),sum=;
for(i=;i<=n;i++)
{
if((x&flag)!=)
sum=sum+map[r][i];
x=x>>;
}
return sum;
} void solve()
{
int i,j,k,max,res=,temp,p=;
max=<<n;
memset(dp,,sizeof(dp));
for(i=;i<=n;i++)
{
p=p^;
memset(dp[p],,sizeof(dp[p]));
for(j=;j<num&&a[j]<max;j++)
{
for(k=;k<num&&a[k]<max;k++)
{
if((a[j]&a[k])!=)
continue;
temp=qiu(i,a[j]);
if(dp[p][a[j]]<(temp+dp[-p][a[k]]))
dp[p][a[j]]=temp+dp[-p][a[k]];
}
}
}
for(i=;i<num&&a[i]<max;i++)
if(res<dp[p][a[i]])
res=dp[p][a[i]];
printf("%d\n",res);
} int main()
{
int i,j;
num=;
chushihua();//把所有的可能状态抽出来
while(scanf("%d",&n)!=EOF)
{
for(i=;i<=n;i++)
for(j=;j<=n;j++)
scanf("%d",&map[i][j]);
solve();
}
return ;
}
hdu 1565(状态压缩基础题)的更多相关文章
- hdu 2167(状态压缩基础题)
题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取! 分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是 ...
- poj 3254(状态压缩基础题)
题意:就是你给一个n行m列的矩阵,矩阵里的元素由0和1组成,1代表肥沃的土地可以种植作物,0则不可以种植作物,并且相邻的土地不能同时种植作物,问你有多少种种植方案. 分析:这是我做的第一道状态压缩dp ...
- hdu 1565 状态压缩dp
#include<stdio.h> #include<string.h> int Max(int a,int b) { return a>b?a:b; } int dp] ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
- poj1185 状态压缩经典题
状态压缩的好题,直接求会爆内存,先把所有可能的状态求出来存在stk里,然后f[i][k][t]表示i行状态为t,i-1状态为k,由i-1状态来推出i状态即可 注意要打好边际条件的状态,并且某个可行状态 ...
- hdu 4739(状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 思路:状态压缩. #include<iostream> #include<cs ...
- HDU 3341 状态压缩DP+AC自动机
题目大意: 调整基因的顺序,希望使得最后得到的基因包含有最多的匹配串基因,使得所能达到的智商最高 这里很明显要用状态压缩当前AC自动机上点使用了基因的情况所能达到的最优状态 我最开始对于状态的保存是, ...
- HDU 2553 状态压缩
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 3006(状态压缩)
The Number of set Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
随机推荐
- ios开发 ad hoc
iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别 ...
- My SQL InnoDB 1217 - Cannot delete or update a parent row:aforeign key constraint fals
InnoDB 允许有外键 MyISAM 不允许有外键 InnoDB修改成MyISAM 证明有外键 一张表如果有其他表的外键关联的是它 它也不能是MyISAM 来自为知笔记(Wiz)
- jquery:cookie
jquery使用cookie需要引入cookie插件: 插件下载地址:http://plugins.jquery.com/cookie/ cookie设置.获取和删除 <body> < ...
- Oracle ->> 层级查询语句(hierarchical query)connect by
Oracle中的Connect By... Start With语句实现了递归查询或者树状查询. Connect By Prior 一方为起始(root)的ID 参考: http://www.360d ...
- Linux内网环境DNS修改域名指向,JAVA应用程序能否实时切换的问题总结
公司内网环境中许多调用资源(数据库.web接口等)都是通过内网DNS服务来进行域名-IP的映射. 但经常出现DNS映射修改完毕后,应用中连接的资源迟迟没有变更. 以前一直笼统的认为是linux的dns ...
- Html5 Geolocation demo
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>HTML5 Geoloca ...
- PostgreSQL删除表
PostgreSQL的DROP TABLE语句是用来删除表定义及其所有相关的数据表的索引,规则,触发器和约束. 必须使用此命令时要小心,因为一旦一个表被删除表中提供的所有信息也将被永远失去了. 语法: ...
- selenium如何做兼容性测试呢
selenium如何做兼容性测试呢. 现在selenium做自动化测试基本是web driver操作浏览器做操作,code中assert关键值,做判断. 具体执行2种 1.使用htmluint 来执行 ...
- HTML+CSS+JAVASCRIPT 总结
1. HTML 1: <!doctype html> 2: <!-- This is a test html for html, css, javascript --> 3: ...
- CodeForces ZeptoLab Code Rush 2015
拖了好久的题解,想想还是补一下吧. A. King of Thieves 直接枚举起点和5个点之间的间距,进行判断即可. #include <bits/stdc++.h> using na ...