摘要:
题意 。。。求最短路 Sol 前几天写dijkstra的时候没打vis标记居然A了,然后天真的我就以为Dijkstra不用打标记。 事实上dijkstra真的不用打标记,只不过会被卡成SPFA的复杂度 阅读全文
摘要:
Orz yanQval 内容主要来自半年前洛谷的冬令营,因为版权原因课件就不放了。 本来是不想学来着,但是过几天出去学习要讲这个,怕被虐的太惨就先预习一下吧 然而课件里面的题目基本都是CTSC难度的而且找不到提交地址qwq。 矩阵 $A_{nm}$表示一个$n$行$m$列的矩阵。 一个$1$行$n$ 阅读全文
摘要:
题意 已经很简洁了吧。 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球。 (1)每次只能在某根柱子的最上面放球。 (2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在n根柱子上最多能放多少个球 Sol 这题有两种做法 1:贪心,能放 阅读全文
摘要:
题意 $n$个点从左向右依次排列,有$m$条双向道路 问从起点到终点,再从终点回到起点,在经过的点不同的情况下最多能经过几个点 Sol 首先,问题可以转化为求两条互不相交的路径,使得点数最多 为了满足流量的限制,肯定会想到拆点,把每个点拆为两个,连流量为$1$,费用为$1$的边 起点和终点连费用为1 阅读全文
摘要:
题意 $N$行的矩阵,第一行有$M$个元素,第$i$行有$M + i - 1$个元素 问在三个规则下怎么取使得权值最大 Sol 我只会第一问qwq。。 因为有数量的限制,考虑拆点建图,把每个点拆为$a_1$和$b_1$,两点之间连流量为$1$,费用为权值的边 从$b_i$向下方和右下的$a_1$连一 阅读全文
摘要:
题意 $n \times m$的矩阵,不能取相邻的元素,问最大能取多少 Sol 首先补集转化一下:最大权值 = sum - 使图不连通的最小权值 进行黑白染色 从S向黑点连权值为点权的边 从白点向T连权值为点券的边 黑点向白点连权值为INF的边 这样就转化成了最小割问题,跑Dinic即可 阅读全文
摘要:
题意 描述不清。。。 Sol 网络流24题里面怎么会有状压dp?? 真是狗血,不过还是简单吧。 直接用$f[sta]$表示当前状态为$sta$时的最小花费 转移的时候枚举一下哪一个补丁可以搞这个状态 但是这玩意儿有后效性,可以用SPFA消去 阅读全文
摘要:
题意 直接看题目吧,不好描述 Sol 考虑暴力做法 首先预处理出从$1$到每个节点的最短路, 对于每次询问,暴力的从这个点BFS,从能走到的点里面取$min$ 考虑如何优化,这里要用到Kruskal重构树 我们按边权的海拔从大到小排序,建出Kruskal重构树 这一定是一个小根堆 那么一个点的子树内 阅读全文
摘要:
题意 Link 给出一张$n$个点的无向图,每次询问两点之间边权最大值最小的路径 $n \leqslant 15000, m \leqslant 30000, k \leqslant 20000$ Sol 很显然答案一定在最小生成树上,但是此题还有一个更为玄学的做法—Kruskal重构树 它是在Kr 阅读全文
摘要:
刚刚天真的跑去打codechef,才发现那是IOI模拟赛qwq。 atc是比赛还剩40min结束的时候才打的,就做了前三个题 T1 zz模拟 #include<cstdio> #include<algorithm> using namespace std; const int MAXN = 1e5 阅读全文