上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 66 下一页
摘要: "传送门" 解题思路 以前bpw讲过的一道题,顺便复习一下矩阵乘法。做法就是拆点,把每个点拆成$9$个点,然后挨个连边。之后若$i$与$j$之间的边长度为$x$,就让$i$的第$x$个点和$j$的第$1$个点连边。然后就是一个矩阵快速幂,时间复杂度$O((n 9)^3log(n 9))$。 代码 c 阅读全文
posted @ 2018-10-19 22:20 Monster_Qi 阅读(178) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 看到最大,肯定要先想二分答案。二分之后首先从小到大枚举$k$个小于$lim$的所有一级公路,然后用并查集连到一起,然后就在剩下的里面从小到大找n 1 k个二级公路,模仿最小生成树的形成过程还是用并查集维护。为什么这样是对的呢?我的想法是因为已经有了一个二分出来的限制,而且最后要 阅读全文
posted @ 2018-10-19 21:32 Monster_Qi 阅读(122) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-10-19 21:21 Monster_Qi 阅读(7) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 首先这道题如果有两个以上长度的回文串,那么就一定有三个或两个的回文串,所以只需要记录一下上一位和上上位填的数字就行了。数位$dp$,用记忆化搜索来实现。设$f[i][j][k][0/1]$表示填到了第$i$位,上上位数字为$j$,上一位数字为$k$,$0/1$表示有没有出现过回 阅读全文
posted @ 2018-10-18 21:49 Monster_Qi 阅读(287) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 对于第$i$周来说,最小的花费 $sum=min(y[i] (c[j]+s(i j)))(1 include include include include define int long long using namespace std; const int MAXN = 1 阅读全文
posted @ 2018-10-18 20:26 Monster_Qi 阅读(171) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 用堆贪心,每次能走就走,不能走从大根堆里取出以前加进去的油量并更新答案。 代码 cpp include include include include include using namespace std; const int MAXN = 10005; inline int 阅读全文
posted @ 2018-10-18 20:06 Monster_Qi 阅读(88) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 贪心,首先因为$n$比较小,可以$2^n$枚举子集。然后判断的时候就每次看后面的如果用最大生产力生产能不能达成目标,解一个二次函数。 代码 include include include include include define int long long using na 阅读全文
posted @ 2018-10-18 19:51 Monster_Qi 阅读(123) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 还是比较好想的,用一个队列,然后把所有点放在一起排个序,依次入队。每次检查队头元素的种类是否为当前入队元素种类,是的话就一直$pop$,每次更新答案即可。 代码 cpp include include include include include include using 阅读全文
posted @ 2018-10-18 17:23 Monster_Qi 阅读(142) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 一道0/1分数规划+树上背包,两个应该都挺裸的,话说我常数为何如此之大。。不吸氧洛谷过不了啊。 代码 阅读全文
posted @ 2018-10-18 15:21 Monster_Qi 阅读(117) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-10-17 20:31 Monster_Qi 阅读(5) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 66 下一页