hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411

时间:2023-02-17 12:09:59

这题用直接枚举是超时的,必须要用搜索来搜索出所有可能的状态,然后再进行枚举

这是较慢的做法

/*
方格取数,相邻格子的数不可取,问最多取到的和是什么
有点类似炮兵布阵,先打出所有可能的状态,然后dp[i][j]表示前i行在状态v[j]下的最大和
dp[i][j]由dp[i-1][t]推出,v[t]是和v[j]兼容的状态
*/
#include<bits/stdc++.h>
using namespace std;
int mp[][],n,dp[][];
int v[],tot;
vector<int>sum[];//sum[i][j]表示第i行在状态v[j]下的和
inline int legal(int j){
if( j&(j<<) )return false;
return true;
}
inline int cal(int s,int k){//状态s对应的数值
int res=;
for(int i=;i<=n;i++)
if( s&(<<(i-)) )res+=mp[k][n-i+];
return res;
}
void init(){
tot=;
for(int j=;j<=(<<n)-;j++)
if(legal(j))v[tot++]=j;
} int main(){
while(cin>>n){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)cin>>mp[i][j];
init();
memset(dp,,sizeof dp);
for(int i=;i<tot;i++)
dp[][i]=cal(v[i],); for(int i=;i<=n;i++)
for(int j=;j<tot;j++){//枚举i行的状态
for(int k=;k<tot;k++){//枚举k行的状态
if( v[k]&v[j] )continue;
dp[i][j]=max(dp[i][j],dp[i-][k]+cal(v[j],i));
}
} int ans=;
for(int i=;i<tot;i++)
ans=max(ans,dp[n][i]);
printf("%d\n",ans);
}
}

hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411的更多相关文章

  1. POJ&period;3279 Fliptile (搜索&plus;二进制枚举&plus;开关问题)

    POJ.3279 Fliptile (搜索+二进制枚举+开关问题) 题意分析 题意大概就是给出一个map,由01组成,每次可以选取按其中某一个位置,按此位置之后,此位置及其直接相连(上下左右)的位置( ...

  2. SharePoint 2010:搜索服务当前处于脱机状态

    错误 搜索服务当前处于脱机状态.请访问 SharePoint 管理中心中的"服务器上的服务"页,以验证是否启用了该服务.这也可能是由于正在移动索引器所致.   正在配置网站集搜索关 ...

  3. HTTP协议状态码详解(HTTP Status Code)(转)

    原文链接:HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成 ...

  4. 转。http,状态码详解

    转自konglingbinHTTP状态码详解:https://www.cnblogs.com/klb561/p/9205867.html HTTP状态码(HTTP Status Code)是用以表示网 ...

  5. python接口自动化(七)--状态码详解对照表(详解)

    简介 我们为啥要了解状态码,从它的作用,就不言而喻了.如果不了解,我们就会像个无头苍蝇,横冲直撞.遇到问题也不知道从何处入手,就是想找别人帮忙,也不知道是找前端还是后端的工程师. 状态码的作用是:we ...

  6. HTTP协议 &lpar;六&rpar; 状态码详解

    HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果 ...

  7. js基础--浏览器标签页隐藏或显示状态 visibility详解

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求 ...

  8. 前端基础:HTTP 状态码详解

    HTTP 状态码详解 1xx(信息类):表示接收到请求并继续处理 100 客户端应当继续发送请求.这个临时响应是用来通知客户端他的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部 ...

  9. redis状态监控与性能调优

    本文主要介绍及演示一些Redis相关的状态监控和性能调优的命令及使用方法: 1.redis-benchmark redis基准信息,redis服务器性能检测 例如: 检测redis服务器性能,本机63 ...

随机推荐

  1. jQuery&period;extend和jQuery&period;fn&period;extend的区别&quest;

    jquery 本身 是由 Resig: 莱希格, 一个美国的小伙子小伙伴开发的, 在2005年 prototype发表之后, 在2006年1月发表的, 后来进入mozilla工作, mozilla的j ...

  2. 在Entity Framework 7中进行数据迁移

    (此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:虽然EF7重新设计了Entity Framework,不过也还是能够支持数据迁移的. Entity Fra ...

  3. SerializeField和Serializable

    Serialize功能 Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系. 简单的说,在没有自定义Inspector的情况下所 ...

  4. 报错消息写在AT SELECTION-SCREEN OUTPUT和START-OF-SELECTION事件下的区别

    今天面试没答上来的问题,其实我是知道的,以前也遇到过.... START-OF-SELECTION下的话会在左下角报错 AT SELECTION-SCREEN OUTPUT消息会弹出框,然后点击就没有 ...

  5. BUGKUctf-web-writeup

    ---恢复内容开始--- 找到了个ctf平台.里面的web挺多的.终于将web题目写的差不多了. Web 签到题 加群就可以了 Web2 直接F12就看到了 文件上传测试 Burp抓包 文件名改成 1 ...

  6. Python爬虫下载美女图片(不同网站不同方法)

    声明:以下代码,Python版本3.6完美运行 一.思路介绍 不同的图片网站设有不同的反爬虫机制,根据具体网站采取对应的方法 1. 浏览器浏览分析地址变化规律 2. Python测试类获取网页内容,从 ...

  7. python全栈学习--day1

      计算机基础 CPU:*处理器 内存:4GB,8GB,临时处理事务的地方,供给CPU数据. 硬盘:相当于电脑的数据库,存储着大量的数据,文件,电影等. 操作系统:执行者,支配所有关系 window ...

  8. C&num; 正规则表达式

    获取括号里的内容 public string GetRegexStr(string Str, string Symbol1, string Symbol2, bool needSymbol) { ]; ...

  9. &lowbar;&lowbar;ATTRIBUTE&lowbar;&lowbar; 知多少?

    GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和 ...

  10. stat用法:获取文件对应权限的数字

    题目:文件属性为-rw-r--r-- 对应权限为644,如何使用命令获取权限对应的数字?? 举例如下: [linuxidc@localhost ~]$ ll -l-rw-r--r-- 1 linuxi ...