摘要:
思路:堆贪心 提交:1次 题解: 先按时间$sort$,然后如果能修就直接扔堆里,不能修取堆顶比一下时间长短,把时间短的扔进堆; cpp include include include include define ull unsigned long long define ll long long 阅读全文
摘要:
思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: 2019.07.22 阅读全文
摘要:
思路:并查集+倒序操作 提交:1次 题解:把正向的摧毁换成逆向的加边,用并查集维护连通块数量就好了。 2019.07.22 阅读全文
摘要:
思路:$tarjan+组合$ 提交:1次 题解: 先$tarjan$求出割点,然后按连通块的性质分类讨论: 1.若没有与割点相连,则需要两个井,防止一个坏掉。 2.若有一个割点相连,修一个井,考虑井坏了从割点跑到相邻的连通块,或者割点坏了从井逃跑。 3.若有两个割点相连,则不用修井,直接跑到相邻连通 阅读全文
摘要:
思路:哈夫曼编码 提交:1次(参考题解) 题解:类似合并果子$QwQ$ 取出前$k$小(注意如果叶子结点不满的话要补全),合并起来再扔回堆里去。 2019.07.22 阅读全文
摘要:
思路:$tarjan+DP$ 提交:1次 题解:首先对于一个强连通分量一定是一个半连通分量,并且形成的半连通分量的大小一定是它的$size$,所以我们先缩点。 这样,我们相当于要在新的$DAG$上找一个最长链(一旦有分叉边就不可能是一个半连通分量)。 于是乎写了个$dfs$,$sz[u]$表示这个( 阅读全文
摘要:
思路:并查集+生成树 提交:2次(虽然样例都没过但感觉是对的$QwQ$(判边少了一条)) 题解: 把所有点之间连边,然后$sort$一遍,从小往大加边,直到连第$n-k+1$条边(相当于是破话$k$个连通块的最短边),记录权值即为答案。 2019.07.22 阅读全文
摘要:
思路:二分图匹配; 提交:1次; 题解:如思路; 但是需要多记一个$ans[u]$代表匹配的答案。 2019.07.21 阅读全文