jzoj4802-[GDOI2017模拟9.24]探险计划【费用流,拆点】

正题


题目大意

一个nnn行的不完全矩阵第iii行有m+i−1m+i-1m+i1个格子,然后每个格子有危险度。
每次可以从(i,j)(i,j)(i,j)走到(i−1,j)(i-1,j)(i1,j)(i−1,j−1)(i-1,j-1)(i1,j1)

  1. m次,每个格子和路不可以重复走的最小危险度。
  2. m次,路不可以重复但是格子可以的最小危险度。

解题思路

显然网络流,把点拆开就可以限制重复走的。
在这里插入图片描述

然后第二问改一下就好了


codecodecode

#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#define p(x,y,z) 2*((y-1)*n+x)-z
using namespace std;
const int N=200,inf=2147483647/2;
struct node{int to,next,w,c;
}a[8*N*N];
int ans,n,m,s,e,tot=1,dan[N][2*N],t;
int f[2*N*N],mf[2*N*N],ls[2*N*N],pre[2*N*N];
bool v[2*N*N];
queue<int> q;
void addl(int x,int y,int w,int c)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;a[tot].c=c;a[++tot].to=x;a[tot].next=ls[y];ls[y]=tot;a[tot].w=0;a[tot].c=-c;
}
bool spfa()
{memset(f,0x3f,sizeof(f));mf[s]=inf;f[s]=0;v[s]=1;q.push(s);pre[e]=0;while(!q.empty()){int x=q.front();q.pop();v[x]=0;for(int i=ls[x];i;i=a[i].next){if(!a[i].w)continue;int y=a[i].to;if(f[x]+a[i].c<f[y]){f[y]=f[x]+a[i].c;mf[y]=min(a[i].w,mf[x]);pre[y]=i;if(!v[y]){q.push(y);v[y]=1;}}}}return pre[e];
}
void over_path()
{int now=e,w=0,flow=mf[e];ans+=mf[e]*f[e];while(now!=s){a[pre[now]].w-=flow;a[pre[now]^1].w+=flow;now=a[pre[now]^1].to;}
}
void Net_flow()
{while(spfa())over_path();
}
int main()
{scanf("%d%d",&n,&m);e=0;s=p(n,n+m-1,1)+1;t=s+1;for(int i=1;i<=n;i++)for(int j=1;j<=m+i-1;j++){scanf("%d",&dan[i][j]);if(i==1)addl(p(i,j,1),t,inf,0);if(i==n)addl(s,p(i,j,0),inf,0);addl(p(i,j,0),p(i,j,1),1,dan[i][j]);if(j<m+i-1&&i>1) addl(p(i,j,1),p(i-1,j,0),1,0);if(j>1&&i>1) addl(p(i,j,1),p(i-1,j-1,0),1,0);}addl(t,e,m,0);Net_flow();printf("%d\n",ans);ans=0;tot=1;memset(ls,0,sizeof(ls));for(int i=1;i<=n;i++)for(int j=1;j<=m+i-1;j++){if(i==1)addl(p(i,j,1),t,m,0);if(i==n)addl(s,p(i,j,0),m,0);addl(p(i,j,0),p(i,j,1),m,dan[i][j]);if(j<m+i-1&&i>1) addl(p(i,j,1),p(i-1,j,0),1,0);if(j>1&&i>1) addl(p(i,j,1),p(i-1,j-1,0),1,0);}addl(t,e,m,0);Net_flow();printf("%d",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala与Java差异(一)之基础语法

一、Scala解释器的使用 &#xff08;1&#xff09;REPL Read&#xff08;取值&#xff09;-> Evaluation&#xff08;求值&#xff09;-> Print&#xff08;打印&#xff09;-> Loop&#xff08;循环&#xff09;。 scala解释器也被称为REPL&#xff0c;会快速编译…

08-输出类型

输出类型 目录 输出简单类型输出 Map 类型key:列名 value:列名对应的值key:自己指定的列 value:自定义对象resultMap输出简单类型 CustomerMapper.java&#xff1a;返回值为简单类型。 public interface CustomerMapper {/*查询总数*/public Integer getAccountCustomer();…

在Ubuntu 16.04环境下安装Docker-CE(附视频教程)

“ 任何的课程都逃不开理论的支持”久等了各位&#xff0c;上一篇说Docker开始的消息已经过去了一周多的时间&#xff0c;今天推送的消息是告诉大家视频可以学习了&#xff01;52ABP .NET CORE QQ群 : 633751348大纲Docker的介绍Ubuntu下安装Docker快速体验Docker利用Docker搭…

jzoj4800-[GDOI2017模拟9.24]周末晚会【dp,循环重构】

正题 题目大意 nnn个人的圆桌&#xff0c;可以放男可以放女&#xff0c;然后要求不能有连续kkk个女生坐在一起。求方案总数。 解题思路 先不考虑圆桌&#xff0c;设fi,jf_{i,j}fi,j​表示放了i个人&#xff0c;最前面有连续jjj个女生&#xff0c;动态转移方程显然 fi,jfi−1,j…

Scala与Java差异(二)之条件控制与循环

一、if表达式 &#xff08;1&#xff09;if表达式的定义 在Scala中&#xff0c;if表达式是有值的&#xff0c;就是if或者else中最后一行语句返回的值。 例如&#xff0c;val age 30; if (age > 18) 1 else 0 可以将if表达式赋予一个变量&#xff0c;例如&#xff0c;va…

WebApi client 的面向切面编程

.Net的面向切面编程.Net的服务端应用AOP很常见&#xff0c;在Asp.net MVC与Asp.net WebApi等新框架里到处都有AOP的影子&#xff0c;我们可以把一个服务方法“切”为很多面&#xff0c;日志面、验证面、请求方式处理、接口业务实现等多个面&#xff0c;有一些面可以使用过滤器特…

09-一对多关系建表

多表操作 目录 表之间关系一对多关系建表原则表之间关系 一对一关系&#xff1a;一夫一妻。 一对多关系&#xff1a; 一个部门有多个员工&#xff0c;一个员工只能属于某一个部门。 一个班级有多个学生&#xff0c;一个学生只能属于一个班级。 多对多关系&#xff1a; 一个…

jzoj6191-[NOI2019模拟2019.5.31]Exchange【线段树】

正题 题目大意 一个序列&#xff0c;给定若干个区间[l..r][l..r][l..r] 从l∼rl\sim rl∼r任意一个位置出发&#xff0c;见到比手中大的数字就交换&#xff0c;到rrr求最小的交换次数 (注意&#xff0c;并不是真的交换) 解题思路 首先算出每个点的后继(在它后面第一个比他大的…

面试阿里挂了却拿到网易、点我达offer,一个三年经验Java程序员的面试总结

转载自 面试阿里挂了却拿到网易、点我达offer&#xff0c;一个三年经验Java程序员的面试总结 前言 15年毕业到现在有三年多了&#xff0c;最近去面试了阿里集团&#xff08;菜鸟网络&#xff0c;蚂蚁金服&#xff09;、网易、滴滴、点我达&#xff0c;最终收到点我达、网易o…

10-多对一左连接查询分步查询(查询所有订单及订单对应的客户)

左连接查询&#xff08;级联查询&#xff09; 回顾一下&#xff1a;左连接查询&#xff0c;将左边表(order)里的全部内容查出&#xff0c;右边表(customer)查满足条件的。 SELECT * FROM order AS o LEFT JOIN customer AS c on o.cust_id c.cust_id;1那么在 MyBatis 中如何…

入门干货之Grpc的.Net 封装-MagicOnion

0x01、Grpc1、介绍Google主导开发的RPC框架&#xff0c;使用HTTP/2协议并用ProtoBuf作为序列化工具&#xff0c;支持多种语言。在.NET Core “大更新” 之前&#xff0c;也就是目前来说还算是个很不错的选择。2、吐槽a、有很多性能比较的文章拿Grpc开涮.b、搭建困难&#xff0c…

欢乐纪中A组周六赛【2019.6.1】

前言 六一儿童节快乐(然而我还在学校) dalao都走了&#xff0c;导致只剩下我们这帮菜鸡在被虐 成绩 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC111(J−2)ZYC(J-2)ZYC(J−2)ZYC1301301303030301001001000002…

11-分步查询懒加载

分步查询——懒加载模式 目录 懒加载模式示例不使用懒加载使用懒加载aggressiveLazyLoadinglazyLoadTriggerMethods所谓懒加载&#xff0c;也称延时加载&#xff0c;是指不一下子加载完全部资源。需要用到哪些资源才去加载这些资源&#xff0c;用不到的资源&#xff0c;就不去…

利用Service Fabric承载eShop On Containers

从模块化到微服务化从Pet Shop 到eShop on Container都是Microsoft在技术演进的路径上给开发者展示.Net的开发能力和架构能力的Sample工程&#xff0c;Petshop的时候更多的是展现应用的分层架构&#xff0c;设计的抽象与模块间的通讯。到了eShop on Container更多的关注在架构设…

2019阿里天猫团队Java高级工程师面试题之三轮面试

转载自 2019阿里天猫团队Java高级工程师面试题之三轮面试 作者&#xff1a;编程砖家 https://www.cnblogs.com/xiaoyangjia/p/10697324.html 一.第一面 1.五分钟自我介绍&#xff0c;说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括能力&#x…

P2680-运输计划【LCA,树上差分,二分答案】

正题 题目链接:https://www.luogu.org/problemnew/show/P2680 题目大意 一棵带权无根树&#xff0c;给出若干条路径。选择一条边使其边权变为0&#xff0c;要求路径的长度的最大值最小。 解题思路 首先最大值最小我们可以想到二分答案&#xff0c;现在我们二分到midmidmid了…

12-多对一添加操作(添加新客户及对应的新订单)

多对一添加操作 场景&#xff1a;现在想要添加一个新客户对应一个新订单&#xff0c;那么要怎么来添加呢&#xff1f; 分析&#xff1a;由于添加订单时&#xff0c;客户对订单是一对多的关系&#xff0c;所以添加订单的时候必须要指明一位客户。 要同时添加新客户以及一个新订…

.NET Core+MySql+Nginx 容器化部署

1. 引言上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习&#xff0c;完成ASP.NET Core MySql Nginx的容器化部署。本文是基于CentOS 7.4环境进行演示&#xff0c;示例项目可以访问Docker.NetCore.MySql进行下载。2. Hello MySQL同样我们还是以循序…

HiveSQL常用优化方法全面总结

转载自 HiveSQL常用优化方法全面总结 Hive作为大数据领域常用的数据仓库组件&#xff0c;在平时设计和查询时要特别注意效率。影响Hive效率的几乎从不是数据量过大&#xff0c;而是数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等等。对Hive的调优既包含对HiveQL语…

P3597-[POI2015]WYC【矩阵乘法,倍增】

前言 正题 题目链接:https://www.luogu.org/problemnew/show/P3597 题目大意 问第kkk长的路径长度(非简单路径) 解题思路 先考虑kkk比较小时的情况&#xff0c;我们可以求出长度为111的路径&#xff0c;长度为222的路径&#xff0c;然后以此类推找到第一个与前面的和到kkk就…