Code: #include<cstdio> #include<iostream> #include<algorithm> #include<vector> #include<cstring> #include<queue> #include<string> #include<map> using namespace std; const int maxn=800; const int INF=1000000+…
传送门 完了这题好厉害……字符串什么的好麻烦…… 要求从$1$到$n$的路径,不重复,经过边数最多 每一个点拆成两个,$A_i,B_i$,然后$A_i$到$B_i$连容量为$1$,费用为$1$的边,保证每个点只被选一次 然后$1$和$n$的话要容量为$2$ 然后有连边的话,$B_i$向$A_j$连边,容量$1$,费用$1$ 要选的点最多,那么就是要费用最大,所以跑一个最大费用流 然后找方案的话,直接dfs,然后正着和倒着输出 有几个细节,写在代码里了 //minamoto #include<io…
题意 $n$个点从左向右依次排列,有$m$条双向道路 问从起点到终点,再从终点回到起点,在经过的点不同的情况下最多能经过几个点 Sol 首先,问题可以转化为求两条互不相交的路径,使得点数最多 为了满足流量的限制,肯定会想到拆点,把每个点拆为两个,连流量为$1$,费用为$1$的边 起点和终点连费用为1,流量为2的边 输出方案比较蛋疼,我是dfs两次,然后第二次倒着输出 但是$a->c->a$这种情况会WA,so只好打表喽 #include<cstdio> #include<al…
记得cnt=1!!因为是无向图所以可以把回来的路看成另一条向东的路.字符串用map处理即可.拆点限制流量,除了1和n是(i,i+n,2)表示可以经过两次,其他点都拆成(i,i+n,1),费用设为1,原图中的边(i,j)连接(i+n,j,1),注意特判掉i==q&&j==nst直接相连的情况,流量要设为2,然后跑最大费用最大流,如果流量小于2就是无解,否则分别从s和tdfs输出方案. 记得输出方案前先输出一次起点. #include<iostream> #include<c…
题目链接:https://www.luogu.org/problem/show?pid=1649 历经千辛万苦,我总算是把这个水题AC了,现在心里总觉得一万只草泥马在奔腾: 这是一道很明显的BFS,然后我也明显的看出来了 但是,我就是WA了很久很久,在调试第一个晚上后,我发现读入是存在空格的,而不是数据问题 然后第二个问题就是,BFS找到的第一个终点不一定就是最优的答案(当然第二个问题是我重新打了一次猛然发现之前没注意的一点) 注意到这两点,其实这道题就没难度了 然后这道题的处理需要注意一个地方…
#include <cstdio> #include <cstdlib> #include <map> #include <queue> #include <algorithm> #include <string> #include <iostream> #include <cstring> #include <vector> #define inf 0x3f3f3f3f using namespa…
\(\color{#0066ff}{题目描述}\) 给定一张航空图,图中顶点代表城市,边代表 2 城市间的直通航线.现要求找出一条满足下述限制条件的且途经城市最多的旅行路线. (1)从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市). (2)除起点城市外,任何城市只能访问 1 次. 对于给定的航空图,试设计一个算法找出一条满足要求的最佳航空旅行路线. \(\color{#0066ff}{输入格式}\) 第 1 行有 2 个正整数 N 和 V,N…
题目链接 \(Click\) \(Here\) 本来想调剂心情没想到写了那么久,还被\(dreagonm\)神仙嘲讽不会传纸条,我真是太弱了\(QAQ\)(原因:最开始写最大费用最大流一直想消圈,最后发现自己完全是\(zz\)了) 这个题是最大费用最大流,避免正环的关键在于只从西向东连边.还有要注意题目中并没有说能任一点开始结束,所以必须是两条\(1->n\)的路线. 路径输出方法真的是学到了,看下面代码吧.还有注意只有\(1->n\)一条边的特判. #include <bits/std…
https://www.luogu.org/problemnew/show/P2770 第一眼看过去,觉得这不是一个经典的双路DP模型吗,将一条过去一条回来互不相交的路径看作是起点出发了两条路径一起走向终点,用DP[i][j]表示一条路到i一条路到j的状态下经过的最大的城市,只要保证枚举的城市单调递增,一个n3 的DP就可以直接递推出答案,比较麻烦的是输出路径,开始使用记忆路径的操作但是总是蜜汁WA,后来直接在dp的过程中记录当前状态的前驱就可以了. #include <map> #inclu…
正解:树形dp 解题报告: 大概是第一道NOI的题目?有点激动嘻嘻 然后先放个传送门 先大概港下这题的题意是啥qwq 大概就是给一棵树,然后可以选若干条链把链上的所有边的边权变成0,但是这些链不能有交集,问所有点到根的边权最大值的最小值是多少,然后有几种这样的方案 大概解释下我们是怎么搞出来这个题意的...我发现我语文巨差好几道题死于无法理解题意了?药丸药丸QAQQQ 就是首先看懂它说每个城市最多和一个左边的城市相连,那我们把它横过来看就相当于说最多和一个上面的城市相连,就是棵树咯,那就先把无解…