[HNOI2007]神奇游乐园(插头DP)
题意:n*m的矩阵内值有正有负,找一个四连通的简单环(长度>=4),使得环上值的和最大。
题解:看到2<=m<=6和简单环,很容易想到插头DP,设f[i][j][k]表示轮廓线为第i行第j列,插头状态为k的最大满意度。然后又成了一道插头DP的板子题。注意左插头为左括号,上插头为右括号,其余位置无插头,因为题目不要求走遍所有格子,且只能走一条回路。
#include<bits/stdc++.h>
using namespace std;
const int N=,mod=;
int n,m,ans,p,bin[],w[][],a[][N],f[][N],tot[N],hd[N],nxt[N];
void add(int S,int v)
{
int u=S%mod;
for(int i=hd[u];i;i=nxt[i])if(a[p][i]==S){f[p][i]=max(f[p][i],v);return;}
a[p][++tot[p]]=S,nxt[tot[p]]=hd[u],hd[u]=tot[p],f[p][tot[p]]=v;
}
int main()
{
scanf("%d%d",&n,&m);
ans=-1e9;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&w[i][j]);
bin[]=;for(int i=;i<=;i++)bin[i]=bin[i-]<<;
tot[p]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=tot[p];j++)a[p][j]<<=;
for(int j=;j<=m;j++)
{
p^=;
memset(hd,,sizeof hd);
tot[p]=;
for(int k=;k<=tot[p^];k++)
{
int S=a[p^][k],b1=(S>>j*-)%,b2=(S>>j*)%,val=f[p^][k];
if(!b1&&!b2)
{
if(i<n&&j<m)add(S+bin[j-]+*bin[j],val+w[i][j]);
add(S,val);
}
else if(!b1&&b2)
{
if(j<m)add(S,val+w[i][j]);
if(i<n)add(S-b2*bin[j]+b2*bin[j-],val+w[i][j]);
}
else if(b1&&!b2)
{
if(j<m)add(S-b1*bin[j-]+b1*bin[j],val+w[i][j]);
if(i<n)add(S,val+w[i][j]);
}
else if(b1==&&b2==)
{
int k1=;
for(int t=j+;t<=m;++t)
{
if((S>>t*)%==)k1++;
if((S>>t*)%==)k1--;
if(!k1){add(S-bin[j-]-bin[j]-bin[t],val+w[i][j]);break;}
}
}
else if(b1==&&b2==)
{
int k1=;
for(int t=j-;t>=;--t)
{
if((S>>t*)%==)k1--;
if((S>>t*)%==)k1++;
if(!k1){add(S-*bin[j-]-*bin[j]+bin[t],val+w[i][j]);break;}
}
}
else if(b1==&&b2==)add(S-*bin[j-]-bin[j],val+w[i][j]);
else if(S-bin[j-]-*bin[j]==)ans=max(ans,val+w[i][j]);
}
}
}
printf("%d",ans);
}
[HNOI2007]神奇游乐园(插头DP)的更多相关文章
- bzoj 1187: [HNOI2007]神奇游乐园 插头dp
1187: [HNOI2007]神奇游乐园 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 668 Solved: 337[Submit][Statu ...
- 【BZOJ1187】[HNOI2007]神奇游乐园 插头DP
[BZOJ1187][HNOI2007]神奇游乐园 Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细 ...
- [HNOI2007][bzoj1187] 神奇游乐园 [插头dp]
题面: 传送门 给定一个四联通棋盘图,每个格子有权值,求一条总权值最大的回路 思路: 插头dp基础教程 棋盘? 回路? n,m<=10? 当然是插头dp啦~\(≧▽≦)/~ 然后发现这道题并不是 ...
- [bzoj1187][HNOI2007]神奇游乐园_插头dp
bzoj-1187 HNOI-2007 神奇游乐园 题目大意:经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这 ...
- 洛谷 P3190 [HNOI2007]神奇游乐园 解题报告
P3190 [HNOI2007]神奇游乐园 Description 给你一个 \(m * n\) 的矩阵,每个矩阵内有个权值\(V(i,j)\) (可能为负数),要求找一条回路,使得每个点最多经过一次 ...
- BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
麻麻我会写插头dp了! 推荐陈丹琦论文:https://wenku.baidu.com/view/3e90d32b453610661ed9f4bd.html 破题调一年 #include <cs ...
- 洛谷P3190 [HNOI2007]神奇游乐园(插头dp)
传送门 大概是算第一道自己做出来的插头dp? (虽然都是照着抄板子的) (虽然有个地方死活没调出来最后只能看题解才发现自己错在哪里的) 我就当你们都会插头dp了…… 因为必须得是一条路径,所以扫描线上 ...
- 1187: [HNOI2007]神奇游乐园 - BZOJ
Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...
- bzoj:1187: [HNOI2007]神奇游乐园
Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...
随机推荐
- 学习笔记—log4j2
概念 什么是日志 日志是系统运行过程中的后台输出信息,方便程序员进行系统运行的管控以及Bug的查找. log4j2的概念 log4j2是一个日志输出的插件,专门用来进行日志的管理. Log4j是Apa ...
- 常见的网页图像格式有 ico、jpg、png、gif,说说他们各自的应用场景
1.ico:一般作为网页的标题上面的图标出现,文件 favicon.ico一般存放在网站根目录 2.jpg:非常适合作为储存像素色彩丰富的图片.例如照片等等 3.png:分为 png-8 以及 png ...
- C#开发命名规范总结整理
1. 命名规范a) 类[规则1-1]使用Pascal规则命名类名,即首字母要大写.eg:Class Test{ ...}[规则1-2]使用能够反映类功能的名词或名词短语命名类.[规则1-3]不 ...
- MyDAL - .UpdateAsync() 之 .SetSegment 根据条件 动态设置 要更新的字段 使用
索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var ...
- Go 反射
基本了解 在Go语言中,大多数时候值/类型/函数非常直接,要的话,定义一个.你想要个Struct type Foo struct { A int B string } 你想要一个值,你定义出来 var ...
- 力扣算法题—093复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", ...
- RIPng(第三组)
一.实验拓扑 2.地址规划 3.实验配置 1)配置各个路由器的端口地址,PC端地址采用自动配置 如本处的PC0,自动获取IPV6地址 2)配置RIP a.现在路由器开启RIP:ipv6 router ...
- 机器翻译评价指标 — BLEU算法
1,概述 机器翻译中常用的自动评价指标是 $BLEU$ 算法,除了在机器翻译中的应用,在其他的 $seq2seq$ 任务中也会使用,例如对话系统. 2 $BLEU$算法详解 假定人工给出的译文为$re ...
- day 24 面向对象之继承及属性查找顺序
组合 组合:自定义类的对象作为另外一个类的属性 class Teacher: def init(self, name, age): self.name = name self.age = age t1 ...
- 华硕飞行堡垒fx50 安装ubuntu18.04
决定把我的渣机脱坑 一.制作启动盘 官方下载ubuntu18.04LTS iso文件 [ubuntu官方链接](https://www.ubuntu.com/download/desktop Ultr ...