上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页
摘要: 思路:堆贪心 提交:1次 题解: 先按时间$sort$,然后如果能修就直接扔堆里,不能修取堆顶比一下时间长短,把时间短的扔进堆; cpp include include include include define ull unsigned long long define ll long long 阅读全文
posted @ 2019-07-22 17:42 LuitaryiJack 阅读(162) 评论(0) 推荐(1) 编辑
摘要: 思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: 2019.07.22 阅读全文
posted @ 2019-07-22 15:41 LuitaryiJack 阅读(142) 评论(0) 推荐(1) 编辑
摘要: 思路:并查集+倒序操作 提交:1次 题解:把正向的摧毁换成逆向的加边,用并查集维护连通块数量就好了。 2019.07.22 阅读全文
posted @ 2019-07-22 15:22 LuitaryiJack 阅读(181) 评论(0) 推荐(1) 编辑
摘要: 思路:$tarjan+组合$ 提交:1次 题解: 先$tarjan$求出割点,然后按连通块的性质分类讨论: 1.若没有与割点相连,则需要两个井,防止一个坏掉。 2.若有一个割点相连,修一个井,考虑井坏了从割点跑到相邻的连通块,或者割点坏了从井逃跑。 3.若有两个割点相连,则不用修井,直接跑到相邻连通 阅读全文
posted @ 2019-07-22 12:19 LuitaryiJack 阅读(245) 评论(0) 推荐(1) 编辑
摘要: 思路:哈夫曼编码 提交:1次(参考题解) 题解:类似合并果子$QwQ$ 取出前$k$小(注意如果叶子结点不满的话要补全),合并起来再扔回堆里去。 2019.07.22 阅读全文
posted @ 2019-07-22 10:41 LuitaryiJack 阅读(201) 评论(0) 推荐(1) 编辑
摘要: 思路:$tarjan+DP$ 提交:1次 题解:首先对于一个强连通分量一定是一个半连通分量,并且形成的半连通分量的大小一定是它的$size$,所以我们先缩点。 这样,我们相当于要在新的$DAG$上找一个最长链(一旦有分叉边就不可能是一个半连通分量)。 于是乎写了个$dfs$,$sz[u]$表示这个( 阅读全文
posted @ 2019-07-22 09:27 LuitaryiJack 阅读(210) 评论(0) 推荐(1) 编辑
摘要: 思路:并查集+生成树 提交:2次(虽然样例都没过但感觉是对的$QwQ$(判边少了一条)) 题解: 把所有点之间连边,然后$sort$一遍,从小往大加边,直到连第$n-k+1$条边(相当于是破话$k$个连通块的最短边),记录权值即为答案。 2019.07.22 阅读全文
posted @ 2019-07-22 09:12 LuitaryiJack 阅读(141) 评论(0) 推荐(1) 编辑
摘要: 思路:二分图匹配; 提交:1次; 题解:如思路; 但是需要多记一个$ans[u]$代表匹配的答案。 2019.07.21 阅读全文
posted @ 2019-07-22 00:00 LuitaryiJack 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 思路:数位$DP$ 提交:5次(其实之前A过,但是调了调当初的程序。本次是2次AC的) 题解: 我们分别求出$sum(x)=i$,对于一个$i$,有几个$x$,然后我们就可以快速幂解决。 至于求个数用数位$DP$就好了。 2019.07.21 阅读全文
posted @ 2019-07-21 23:58 LuitaryiJack 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 还好$QwQ$ 思路:矩阵快速幂 提交:1次 题解: 如图: 注意$n,m$如果小于$k$就不要快速幂了,直接算就行、。。 2019.07.21 阅读全文
posted @ 2019-07-21 23:51 LuitaryiJack 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 思路:贪心 提交:1次(看了题解$QwQ$) 题解: 若我方最弱可以干掉对方最弱,则干; 否则若我方最强可以干掉对方最强,则干; 否则若我方最弱与对方最强平手,则平; 其实貌似一二条是可以互换的,主要说明最后一条:相当于用最垃圾的去换掉对方最强的。 2019.07.21 阅读全文
posted @ 2019-07-21 22:47 LuitaryiJack 阅读(236) 评论(0) 推荐(1) 编辑
摘要: 思路:最短路+DP 提交:1次 题解: $f[i]$表示到第$i$天的最小代价,我们可以预先处理出$i,j$两天之间(包括$i,j$)都可通行的最短路的代价记做$s[i][j]$,然后有$f[i]=min(f[i],f[j]+s[j+1][i]*(i-j)+W);$ 2019.07.21 阅读全文
posted @ 2019-07-21 20:57 LuitaryiJack 阅读(233) 评论(0) 推荐(1) 编辑
摘要: 思路:矩乘优化DP 提交:3次(用了一个奇怪的东西导致常数过大) 题解: 如果可以走完正向边后又走反向边那就显然了,但是不能走,所以我们要将正反向边分别编号,区分正反向边。 所以这道题的矩阵是以边的编号(边的邻接矩阵),而非点来DP的。 具体地,记录每个边$w_i=(u_i,v_i)$和$w_{i^ 阅读全文
posted @ 2019-07-20 13:19 LuitaryiJack 阅读(207) 评论(0) 推荐(1) 编辑
摘要: 思路:分块 提交:2次(第一次的求解有问题) 题解: 设块长为$T$,我们开$N/T$个单调栈,维护每一块的上升斜率。 修改时暴力重构整个块,$O(T)$ 求解时记录一个最大斜率$lst$,然后块内二分,求出能看见几个,同时更新$lst$ 时间复杂度$O(N*(T+\frac{N}{T}*log_2 阅读全文
posted @ 2019-07-20 13:02 LuitaryiJack 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 傻了。。 思路:$scc$缩点,树上背包。 提交:2次(无语。。建边建错了) 思路:关系可能会形成环,而整个环是一个整体(要选就选环上所有点,否则整个不选),所以我们先把所有的环缩点,然后便形成了一棵树(一个点不可能有两个父亲),然后跑树上背包。 代码: 2019.07.20 阅读全文
posted @ 2019-07-20 12:44 LuitaryiJack 阅读(225) 评论(0) 推荐(1) 编辑
摘要: 思路:枚举边集,最小生成树 提交:1次 题解:枚举最长边,添加较小边。 2019.07.20 阅读全文
posted @ 2019-07-20 12:35 LuitaryiJack 阅读(191) 评论(0) 推荐(1) 编辑
摘要: 思路:二分+DP 提交:3次 错因:二分写萎了,$cnt$记录段数但没有初始化成$1$,$m$切的次数没有$+1$ 思路: 先二分答案,不提; 然后有个很$naive$的$DP$: 设$f[i][j]$表示分成$i$段,到第$j$个木棍的方案数,$l$表示二分后的答案, 所以有$f[i][j]=\s 阅读全文
posted @ 2019-07-19 09:06 LuitaryiJack 阅读(242) 评论(0) 推荐(1) 编辑
摘要: 莫比乌斯反演学傻了$QwQ$ 思路:推式子? 提交:2次 错因:又双叒叕没开$long\space long$ 题解: $\sum_{i=1}^n gcd(i,n)$ $=\sum_{d|n}d\sum_{i=1}^{\frac{n}{d}} [gcd(i,\frac{n}{d})=1]$ 注意到$ 阅读全文
posted @ 2019-07-19 08:45 LuitaryiJack 阅读(194) 评论(0) 推荐(1) 编辑
摘要: 思路:脑子+二分图匹配 提交:1次(课上讲过) 题解: 发现:如果符合题意,那么行和列一定是一一匹配的(必要条件),所以最大匹配必须是$n$。 同时我们发现,一定可以通过交换行列的方式,将(看起来)有交错的最大匹配,转换成符合题意的状态。 所以最大匹配是$n$即为判断依据。 2019.07.18 阅读全文
posted @ 2019-07-18 20:52 LuitaryiJack 阅读(224) 评论(0) 推荐(1) 编辑
摘要: 很久以前就。。。但是一直咕咕咕 思路:数位$DP$ 提交:1次 题解:见代码 2019.07.18 阅读全文
posted @ 2019-07-18 18:48 LuitaryiJack 阅读(215) 评论(0) 推荐(1) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页