[题意] 给定一张航空图, 图中顶点代表城市, 边代表 2 城市间的直通航线. 现要求找出一条满足下述限制条件的且途经城市最多的旅行路线.(1) 从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市) .(2) 除起点城市外, 任何城市只能访问 1 次. 输入文件示例input.txt8 9VancouverYellowknifeEdmontonCalgaryWinnipegTorontoMontrealHalifaxVancouver Edmon…
[] 输入文件示例input.txt4 21 76 87 109 13 输出文件示例output.txt15 [分析] 直接co题解好了,写得挺全.. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a><i.b>,建立附加源S汇T,以及附加顶点S'. 1.连接S到S'一条容量为K,费用为0的有向边.2.从S'到每个<i.a>连接一条容量为1,费用为0的有向边.3.从每个<i.b>到T连接一条容量为1,费用为0的有向边.4.从每个…
[题意] 一个餐厅在相继的 N 天里, 每天需用的餐巾数不尽相同. 假设第 i 天需要 ri 块餐巾(i=1,2,-, N). 餐厅可以购买新的餐巾,每块餐巾的费用为 p 分:或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f分:或者送到慢洗部, 洗一块需 n 天(n>m),其费用为 s<f分.每天结束时, 餐厅必须决定将多少块脏的餐巾送到快洗部, 多少块餐巾送到慢洗部, 以及多少块保存起来延期送洗.但是每天洗好的餐巾和购买的新餐巾数之和, 要满足当天的需求量.试设计一个算法为餐厅合理地安…
[题意] 给定一个由 n 行数字组成的数字梯形如下图所示. 梯形的第一行有 m 个数字.从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动, 形成一条从梯形的顶至底的路径.规则 1:从梯形的顶至底的 m 条路径互不相交.规则 2:从梯形的顶至底的 m 条路径仅在数字结点处相交.规则 3:从梯形的顶至底的 m 条路径允许在数字结点相交或边相交.2 33 4 59 10 9 11 1 10 1 11 1 10 12 1 1 输入文件示例input.txt2 52 33 4 59 1…
------------------------------------------------------------------------------------ 17/24 ------------------------------------------------------------------------------------   开坑了...中考前看看能不能填完(总感觉会TJ...QwQ) TJ啦23333333 1.飞行员配对问题(二分图最大匹配 裸匈牙利. #incl…
#6122. 「网络流 24 题」航空路线问题 题目描述 给定一张航空图,图中顶点代表城市,边代表两个城市间的直通航线.现要求找出一条满足下述限制条件的且途经城市最多的旅行路线. 从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市). 除起点城市外,任何城市只能访问一次. 对于给定的航空图,试设计一个算法找出一条满足要求的最佳航空旅行路线. 输入格式 第一行有两个正整数 NNN 和 VVV,NNN 表示城市数,VVV 表示直飞航线数.接下来的 N…
[题解][网络流24题]航空路线问题 [P2770] [Loj6122] 传送门:航空路线问题 \([P2770]\) \([Loj6122]\) [题目描述] 给出一张有向图,每个点(除了起点 \(1\))每条边都只能经过一次,求出从 \(1\) 到 \(n\) 在回到 \(1\) 的一条路径,使得经过的点个数最大,并输出路径. [输入] 第一行两个整数 \(n,m\) 表示点数和边数.接下来 \(n\) 行字符串表示这 \(n\) 个点的名称(编号从 \(1\) 到 \(n\)),再接下来…
写在前面:SDOI2016 Round1滚粗后蒟蒻开始做网络流来自我拯救(2016-04-11再过几天就要考先修课,现在做网络流24题貌似没什么用←退役节奏) 做的题目将附上日期,见证我龟速刷题. 1.飞行员配对方案问题 2016-04-11 二分图最大匹配问题,更新了一下$Dinic$模板,带上了当前弧优化和多路增广.这道题输出方案有很多种,可是没有special judge,所以没有A,但方案数是对的.合法的输出方案只能用匈牙利算法解决. #include<queue> #include&…
网络最大流 dinic+当前弧优化. const int N=10007,M=100007,inf=1e9; int s,t,head[N],ver[M],edge[M],Next[M],tot=1,cur[N],dep[N];queue<int>q; void add(int u,int v,int w){ver[++tot]=v,Next[tot]=head[u],edge[tot]=w,head[u]=tot,ver[++tot]=u,Next[tot]=head[v],head[v]=…
[题解][网络流24题]汽车加油行驶问题 [P4009] [Loj6223] 传送门:汽车加油行驶问题 \([P4009]\) \([Loj6223]\) [题目描述] 给出一个 \(N \times N\) 的方形网格,设\((1,1)\)为起点,\((N,N)\) 为终点,\(X\) 轴向右为正, \(Y\) 轴向下为正. 某些地方设有油库,可供汽车加油.汽车行驶应遵守如下规则: \((1).\) 汽车装满油后能行驶 \(K\) 次,每次行驶距离为 \(1\).出发时汽车为满油状态,在起点与…