http://acm.hdu.edu.cn/showproblem.php?pid=2167

第一道状态压缩dp,其实就是爆搜,只不过把排除了大量不可能的情况,先用sta保存每行可能的情况,sum[i][j]保存i行j种情况的该行和,然后依次更新dp。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; int n,sum[][<<],dp[][<<],a[][],sta[<<]; int main()
{
while(~scanf("%d",&a[][]))
{
n = ;
char c;
while(~scanf("%d%c",&a[][++n],&c) && c != '\n');
for(int i = ;i <= n;i++)
{
for(int j = ;j <= n;j++) scanf("%d",&a[i][j]);
}
memset(dp,,sizeof(dp));
memset(sum,,sizeof(sum));
int cnt = ,endd = <<n;
for(int i = ;i < endd;i++)
{
if(i & (i << )) continue;
sta[++cnt] = i;
}
for(int i = ;i <= n;i++)
{
for(int j = ;j <= cnt;j++)
{
for(int k = ;k <= n;k++)
{
if(sta[j] & (<<(k-))) sum[i][j] += a[i][k];
}
}
}
for(int i = ;i <= cnt;i++) dp[][i] = sum[][i];
for(int i = ;i < n;i++)
{
for(int j = ;j <= cnt;j++)
{
for(int k = ;k <= cnt;k++)
{
if(sta[j] & sta[k]) continue;
if(sta[j] & (sta[k]<<)) continue;
if(sta[j] & (sta[k]>>)) continue;
dp[i+][k] = max(dp[i+][k],dp[i][j]+sum[i+][k]);
}
}
}
int ans = ;
for(int i = ;i <= cnt;i++) ans = max(ans,dp[n][i]);
printf("%d\n",ans);
}
return ;
}

HDU_2167_状态压缩dp的更多相关文章

  1. hoj2662 状态压缩dp

    Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M S ...

  2. POJ 3254 Corn Fields(状态压缩DP)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Descr ...

  3. [知识点]状态压缩DP

    // 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...

  4. HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP

    题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...

  5. DP大作战—状态压缩dp

    题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...

  6. 状态压缩dp问题

    问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...

  7. BZOJ-1226 学校食堂Dining 状态压缩DP

    1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...

  8. Marriage Ceremonies(状态压缩dp)

     Marriage Ceremonies Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  9. HDU 1074 (状态压缩DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...

随机推荐

  1. VS从标准输入读入文件

    1.点击[生成],在对应目标平台[64 or 32]文件夹下的[release]或[debug]下找到可执行文件 2.读取销售记录文件 1)打开cmd,将销售记录文件和可执行文件放在同一文件夹下 2) ...

  2. 【JavaScript学习笔记】函数、数组、日期

    一.函数 一个函数应该只返回一种类型的值. 函数中有一个默认的数组变量arguments,存储着传入函数的所有参数. 为了使用函数参数方便,建议给参数起个名字. function fun1(obj, ...

  3. Docker系列-第七篇Docker构建SpringBoot应用

    1.基于Dockerfile构建SpringBoot镜像 1.1准备工作 将SpringBoot项目通过maven打成jar包 mvn clean package #使用maven打包项目 1.2使用 ...

  4. wepy怎么在生命周期中调用methods方法

    很简单: 比如在 onLoad () { imgRemove(e) {         this.methods.onRemove(e)     } } 在methods中就可以直接调用属于它的方法, ...

  5. Spring Boot2 系列教程 (十) | 实现声明式事务

    前言 如题,今天介绍 SpringBoot 的 声明式事务. Spring 的事务机制 所有的数据访问技术都有事务处理机制,这些技术提供了 API 用于开启事务.提交事务来完成数据操作,或者在发生错误 ...

  6. restframework 分页组件、响应器

    一.分页组件 1.PageNumberPagination a.全局配置 导入模块 from rest_framework.pagination import PageNumberPagination ...

  7. oa办公系统是什么?对企业有什么作用?

    OA办公系统是指利用计算机网络帮助企业实现办公自动化,用系统软件代替传统的手工工作帮助企业处理内部事务,例如文档共享.部门协作.报销.业务流程等等,最终目的帮助企业提高工作效率,实现利益最大化. 随着 ...

  8. Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)

    0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...

  9. (分块)楼房重建 HYSBZ - 2957

    题意 长度为n的坐标轴上,从1-n上的每一点都有一栋楼房,楼房的初识高度都为0,每一天都有一栋楼房的高度被修改(也可以不变),一栋楼房能被看见当且仅当其最高点与远点的连线不会与其他之前连线相交,问你每 ...

  10. python 父类方法重写

    class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Os ...