hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
这题用直接枚举是超时的,必须要用搜索来搜索出所有可能的状态,然后再进行枚举
这是较慢的做法
/*
方格取数,相邻格子的数不可取,问最多取到的和是什么
有点类似炮兵布阵,先打出所有可能的状态,然后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的更多相关文章
- POJ.3279 Fliptile (搜索+二进制枚举+开关问题)
POJ.3279 Fliptile (搜索+二进制枚举+开关问题) 题意分析 题意大概就是给出一个map,由01组成,每次可以选取按其中某一个位置,按此位置之后,此位置及其直接相连(上下左右)的位置( ...
- SharePoint 2010:搜索服务当前处于脱机状态
错误 搜索服务当前处于脱机状态.请访问 SharePoint 管理中心中的"服务器上的服务"页,以验证是否启用了该服务.这也可能是由于正在移动索引器所致. 正在配置网站集搜索关 ...
- HTTP协议状态码详解(HTTP Status Code)(转)
原文链接:HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成 ...
- 转。http,状态码详解
转自konglingbinHTTP状态码详解:https://www.cnblogs.com/klb561/p/9205867.html HTTP状态码(HTTP Status Code)是用以表示网 ...
- python接口自动化(七)--状态码详解对照表(详解)
简介 我们为啥要了解状态码,从它的作用,就不言而喻了.如果不了解,我们就会像个无头苍蝇,横冲直撞.遇到问题也不知道从何处入手,就是想找别人帮忙,也不知道是找前端还是后端的工程师. 状态码的作用是:we ...
- HTTP协议 (六) 状态码详解
HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了. 如果 ...
- js基础--浏览器标签页隐藏或显示状态 visibility详解
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求 ...
- 前端基础:HTTP 状态码详解
HTTP 状态码详解 1xx(信息类):表示接收到请求并继续处理 100 客户端应当继续发送请求.这个临时响应是用来通知客户端他的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部 ...
- redis状态监控与性能调优
本文主要介绍及演示一些Redis相关的状态监控和性能调优的命令及使用方法: 1.redis-benchmark redis基准信息,redis服务器性能检测 例如: 检测redis服务器性能,本机63 ...
随机推荐
- 用FileZilla链接Linux服务器
这里以CentOS举例 用SSH文件传输端口,默认为22端口,用netstat -antulp | grep ssh命令查看!
- 🍓 redux示例 🍓
- 模拟post表单提交参数
Content-Type: application/x-www-form-urlencoded;charset=utf-8
- mysql 架构 ~ MGR 与PXC的对比
一 简介 MGR和PXC的对比 二 WriteSet1 定义 是组件对于写节点应用事务生成binlog的再封装,用来验证其他节点的事务冲突 PXC构成key db_table_组件值data bin ...
- Spring的jdbcTemplate操作-未完整
1 spring框架一站式框架(1)针对javaee三层,每一层都有解决技术(2)在dao层,使用 jdbcTemplate 2 spring对不同的持久化层技术都进行封装
- 【VMware vSphere】ESXi系统设置静态IP
写在前面: 为了方便管理,一般将ESXi系统的IP设置为静态 ESXi6.5系统和6.0系统类似,这里以ESXi6.0系统为例 1, 进入系 ...
- mac 电脑连接linux 服务器
Mac 电脑下连接Linux服务器 命令: ssh -p 端口号(22) 用户名@ip OK,输入密码,搞定
- Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】
一.Keepalived集群中MASTER和BACKUP角色选举策略 在keepalived集群中,其实并没有严格意义上的主.备节点,虽然可以在keepalived配置文件中设置state选项为MAS ...
- vue之递归组件实现树形目录
递归组件的应用===>可以通过组件命名来自己使用自己的组件 实例如下 父组件 <div class="content"> <detail-list :lis ...
- VC常用小知识
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->Sho ...