CDQZ多校集训题目--盛夏
题意:
给一个有向无环带权图,每条路径上最多只能割一条边,最后使1到n无路径,问最小割边边权和是多少。
题意很清楚,但是这道题的题解其实是只适用于很少的情况的
我们考虑的做法是网络流最小割
对于所有边的反向边,流量均为inf
那么如果具体分析原因其实是这条路径割上游,那条路径割下游,然而可以走这条路径的上游和那条路径的下游,如何避免?
考虑到那条路径的上游和这条路径的下游是没有割的,中间的边如果可以反着走那么就可以很好的避免这种情况的发生
所以如果反向边是inf就可以很好的解决这个问题了
但是这样子想未必太过美好了一点,例如:
如果在网络流的图中有一条边是反向建的,那么正向的流量就是inf,导致答案与正确答案不符
无论如何,这道题的思路还是很好的,下贴代码
#include<bits/stdc++.h>
using namespace std;
const int inf=0x7fffffff;
int tot=1,w[2005],remain[2005],to[2005],nxt[2005];
int head[305],depth[305],hh[305];
int n,m,shu1,shu2,shu3,ans;
queue <int> que;
int minn(int x,int y)
{if(x<y) return x;return y;
}
void add(int x,int y,int z)
{to[++tot]=y;nxt[tot]=head[x];head[x]=tot;remain[tot]=z;
}
bool bfs()
{que.push(1);memset(depth,0,sizeof(depth));depth[1]=1;while(!que.empty()){int x=que.front();que.pop();for(int i=head[x];i;i=nxt[i]){int y=to[i];if(!remain[i]||depth[y]) continue;depth[y]=depth[x]+1;que.push(y);}}return depth[n];
}
int dfs(int x,int delta)
{if(x==n) return delta;int sum=0;for(int &i=hh[x];i&δi=nxt[i]){int y=to[i];if(depth[y]!=depth[x]+1||!remain[i]) continue;int flow=minn(remain[i],dfs(y,delta));remain[i]-=flow;remain[i^1]+=flow;sum+=flow;delta-=flow;}return sum;
}
int main()
{freopen("mer.in","r",stdin);freopen("mer.out","w",stdout);cin>>n>>m;for(int i=1;i<=m;i++){scanf("%d%d%d",&shu1,&shu2,&shu3);add(shu1,shu2,shu3);add(shu2,shu1,inf/3);}while(bfs()){for(int i=1;i<=n;i++)hh[i]=head[i];ans+=dfs(1,inf);}cout<<ans;return 0;
}
CDQZ多校集训题目--盛夏相关推荐
- 2018 java蓝桥杯校赛题目
1.[问题描述] 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一 ...
- ●观光(17.12.02多校联测题目)
题目: 题解: DP,方案数统计,(神奇). 题意不再赘述. 但不得不说,做这种dp真的好难受啊. 我们做如下考虑: 首先,起点只有出度,终点只有入度,其它点的出入度均为 1(这个结论好像没啥明显的用 ...
- 【摘苹果】scratch蓝桥杯集训题目
摘苹果-用scratch编程实现 题目要求 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果. 陶陶身高 130 厘米,同时还有一个固定高度的板凳,当 ...
- HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)
HDU 2019 Multi-University Training Contest 1 杭电2019暑期多校集训第一场 1001 Blank (6578) Problem Description T ...
- 2019年高教社杯全国大学生数学建模竞赛 题目回顾及个人体会
本文目录 1. 校内初赛 2. 组织队伍 3. 国赛 4. 个人感受 1. 校内初赛 我们学校在每次国赛前有一个校内选拔赛,我们选的校赛题目是 "两江游"轮船的调度问题,个人感觉这 ...
- Comet OJ 夏季欢乐赛 篮球校赛
Comet OJ 夏季欢乐赛 篮球校赛 题目传送门 题目描述 JWJU注重培养学生的"唱,跳,rap,篮球"能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台 ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
- 我对ACM初学者想说的话
1 算法学习 ACM算法的学习,一般看刘汝佳的系列书籍即可.初学者需要看的书是<算法竞赛入门经典>(俗称小白书),或者可以看<算法竞赛入门经典(第二版)>(俗称紫书).理论上 ...
- ACM经历和退役感想
文章目录 经历 感受 题外话 经历 2021.04.03 打完了最后一场ICPC,心中感慨万千,回忆一下这几年的经历,做一个记录. 大一进集训队,自己成绩一般般,也不成熟.组队后,刚上大学的愣头青,作 ...
最新文章
- “从A到I”智慧数据中心上海论坛
- 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
- 深入探究Python中的字典容器
- java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?
- C | 构成和编码规范
- 记录遇到的Python陷阱和注意点
- 4999元起!三星在中国正式发布Galaxy S22系列
- 【bzoj1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草 区间dp
- 计算机更新安装失败,电脑更新安装失败
- matlab和vc联合编程
- Emmagee 不支持android7.0以上,社区努力中~
- 家庭WIFI路由器当交换机用
- 图应用:骑士周游问题
- “~i“在C语言的for循环中是什么意思
- 华为平板可不可以安装Android,华为平板能跟iPad过招?MatePad Pro在安卓称王但用户不一定买单...
- android文本自动添加图片,Android textView文字添加图片 imageSpan使用
- mysql 设置 0、1 用什么数据类型_不断精炼核心知识点,终于能把MySQL讲懂了
- maple linux 远程,Maplesoft Maple Linux版下载
- tomcat启动错误Error deploying web application directory
- IMEI码规则及校验算法
热门文章
- 插画版Kubernetes指南(小孩子也能看懂的kubernetes教程)
- 统信UOS20-1030 初体验
- JBoss EAP 7消息系统
- linux 网络编程 51cto,Linux服务器开发,2小时搞定高并发网络编程
- DDR、DDR2、DDR3、DDR4、LPDDR区别
- CSS笔试题: 实现表格首行首列固定和自适应窗口
- Node 异步I/O 实现
- (2/3) c++ 集成 使用 steam api steam sdk
- kali中的firefox无法打开:your tab just crashed
- 自媒体怎么赚钱?新手小白日入600+