P4474 王者之剑
题目大意
n*m的带权网格,任意选择起点
开始时刻为0秒。以下操作,每秒按顺序执行
- 在第i秒开始的时候,在方格(x,y)上,获得(x,y)的值
- 在偶数秒,周围四格的值清零
- 每秒可选择不动或走一格
求最大值
易证:选择获得某格上的值时,周围四格就不能获得了------二分图最大点权独立集
网格------奇偶分类
网络流跑最小割
My complete code:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<queue>
using namespace std;
typedef long long LL;
const LL maxn=500000;
const LL inf=0x3f3f3f3f;
const LL dx[5]={0,-1,0,1,0};
const LL dy[5]={0,0,1,0,-1};
inline LL read(){
LL x=0,f=1; char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1; c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0'; c=getchar();
}return x*f;
}
struct node{
LL to,next,flow;
}dis[maxn];
LL num=-1,s,t,n,m,ans;
LL head[maxn],dep[maxn];
inline void Add(LL u,LL v,LL flow){
dis[++num]=(node){v,head[u],flow}; head[u]=num;
}
inline bool Bfs(){
memset(dep,0,sizeof(dep));
queue<LL> que;
que.push(s);
dep[s]=1;
while(que.size()){
LL u=que.front();
que.pop();
for(LL i=head[u];i!=-1;i=dis[i].next){
LL v=dis[i].to;
if(!dep[v]&&dis[i].flow){
dep[v]=dep[u]+1;
que.push(v);
}
}
}
return dep[t];
}
LL Dfs(LL u,LL flow){
if(u==t)
return flow;
LL tmp=flow;
for(LL i=head[u];i!=-1;i=dis[i].next){
LL v=dis[i].to;
if(dep[v]==dep[u]+1&&dis[i].flow&&tmp){
LL now=Dfs(v,min(tmp,dis[i].flow));
if(now){
dis[i].flow-=now;
dis[i^1].flow+=now;
tmp-=now;
}else
dep[v]=inf;
}
}
return flow-tmp;
}
inline LL Dinic(){
LL sum=0;
while(Bfs())
sum+=Dfs(s,inf);
return sum;
}
int main(){
n=read(); m=read();
s=0; t=n*m+1;
memset(head,-1,sizeof(head));
for(LL i=1;i<=n;++i)
for(LL j=1;j<=m;++j){
LL val=read();
ans+=val;
if((i+j)&1){
Add(s,(i-1)*m+j,val);
Add((i-1)*m+j,s,0);
}else{
Add((i-1)*m+j,t,val);
Add(t,(i-1)*m+j,0);
}
} for(LL i=1;i<=n;++i)
for(LL j=1;j<=m;++j){
if((i+j)&1){
for(LL k=1;k<=4;++k){
LL nx=i+dx[k],ny=j+dy[k];
if(nx<1||nx>n||ny<1||ny>m)
continue;
Add((i-1)*m+j,(nx-1)*m+ny,inf);
Add((nx-1)*m+ny,(i-1)*m+j,0);
}
}
}
ans-=Dinic();
printf("%lld",ans);
return 0;
}
P4474 王者之剑的更多相关文章
- 洛咕 P4474 王者之剑
宝石只能在偶数秒取到,假设有一个宝石在奇数秒取到了,那么上一秒是偶数秒,在上一秒的时候这里的宝石就没了. 相邻的两个宝石不能同时取,很显然,先取一块,那么这是偶数秒,取完了这一块之后相邻的都没了. 只 ...
- 【BZOJ-1324】Exca王者之剑 最小割
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 483 Solved: 248[Submit][Status][Disc ...
- BZOJ1324: Exca王者之剑
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 256 Solved: 131[Submit][Status] Desc ...
- 图论(二分图最大权独立点集):COGS 2051. 王者之剑
2051. 王者之剑 ★★★☆ 输入文件:Excalibur.in 输出文件:Excalibur.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] 这是在阿尔托 ...
- BZOJ 1324: Exca王者之剑
1324: Exca王者之剑 Description Input 第一行给出数字N,M代表行列数.N,M均小于等于100 下面N行M列用于描述数字矩阵 Output 输出最多可以拿到多少块宝石 Sam ...
- [COGS 2051] 王者之剑
Saber大法吼 2051. 王者之剑 ★★★☆ 输入文件:Excalibur.in 输出文件:Excalibur.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述 ...
- [bzoj1324]Exca王者之剑_最小割
Exca王者之剑 bzoj-1324 题目大意:题目链接. 注释:略. 想法: 最小割经典模型. 所有格子向源点连权值为格子权值的边. 将棋盘黑白染色后白点反转源汇. 如果两个格子相邻那么黑点向白点连 ...
- 【BZOJ】【1324】王者之剑
网络流/二分图最大点权独立集 Amber(胡伯涛)论文<最小割模型在信息学竞赛中的应用>中的例题…… 感觉这个好神啊,果然是一切皆为网络流……这转化太神奇了 /************** ...
- bzoj 1324 Exca王者之剑(黑白染色,最小割)
[题意] 两相邻点不能同时选,选一个点集使得权值和最大. 出题人语文好... [思路] 将图进行黑白二染色,然后构建最小割模型. [代码] #include<set> #include&l ...
随机推荐
- 从需求的角度去理解Linux系列:总线、设备和驱动
笔者成为博客专家后整理以前原创的嵌入式Linux系列博文,现推出以让更多的读者受益. <从需求的角度去理解linux系列:总线.设备和驱动>是一篇有关如何学习嵌入式Linux系统的方法论文 ...
- python发送邮件(转)
SMTP发送邮件 阅读: 90274 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和ema ...
- linux 打开文件数too many open files解决方法
出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值.查看每个用户最大允许打开的文件数量ulimit -a 其中 open files (-n) 1024 表示每个用户最大允许打开的 ...
- 【2048小游戏】——原生js爬坑之封装行的移动算法&事件
引言:2048小游戏的核心玩法是移动行,包括横行和纵行,玩家可以选择4个方向,然后所有行内的数字就会随着行的移动而向特定的方向移动.这个行的移动是一个需要重复调用的算法,所以这里就要将一行的移动算法封 ...
- windows搭建json-server快速方法
JSON-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源. 一.下载并安装node.js 安装完后输入 node --vers ...
- Java实现链表结构的具体代码
一.数据准备 1. 定义节点 2. 定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...
- Struts2学习六----------默认Action
© 版权声明:本文为博主原创文章,转载请注明出处 默认Action - 当访问action不存在时,可通过指定默认action的方式避免出现错误代码页面 - 使用default-action-ref指 ...
- 【Java项目实战】——DRP之HTML总结
在DRP的学习之中,又将之前BS的内容又一次复习了一遍,借着复习的机会将BS的各个部分再又一次总结一下.今天来总结一下HTML. 在学习BS之后就进入了权限系统的开发之中,可是仍然发现非常多代码不会不 ...
- 黑帽SEO手法
黑帽SEO手法 0x00:概念 SEO全称搜索引擎优化,通过站内优化和站内优化方式来提升搜索引擎排名,有白帽SEO和黑帽SEO. 因为正规的SEO优化需要很长时间,黑帽SEO手法让站内快速提升排名的有 ...
- Android----SharedPreferences(存储数据)
SharedPreferences详解 我们在开发软件的时候,常需要向用户提供软件参数设置功能,例如我们常用的微信,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存,如果是在windo ...