51nod
文章平均质量分 64
chenxiaoran666
人要有梦想,不然和咸鱼有什么区别!
展开
-
【51nod1815】调查任务(Tarjan+拓扑)
点此看题面 大致题意:有N个城市由M条单向道路(图不一定联通),每个城市有一个发达程度a[i],要求你求出首都S到城市i的一条路径上的两个不同城市x,y的a[x]%a[y]的最大值(包括S和i),若无法到达输出-1。 首先,我们来考虑一个问题:若你已知若干个数,如何求出其中两个数相模后的最大值? 答案是显然的,用次大值(严格次大)去模最大值。 下面给出证明: 设这些数中的最大值为M...原创 2018-07-18 18:59:59 · 271 阅读 · 0 评论 -
【51nod1443】路径和树(堆优化dijkstra乱搞)
点此看题面 大致题意:给你一个无向联通图,要求你求出这张图中从u开始的权值和最小的最短路径树的权值之和。 (最短路径树:从u开始到任意点的最短路径与在原图中相比不变) 既然要求最短路径,那么最容易想到的就是dijkstra和SPFA(毕竟Floyd的时间复杂度难以承受),又由于黄学长说能用dijkstra时尽量用dijkstra,所以,我就打了一个堆优化的dijkstra开始乱搞。 其实,...原创 2018-07-18 19:53:58 · 212 阅读 · 0 评论 -
【51nod1705】七星剑(成环DP)
点此看题面 大致题意:你要把一把剑从0星升至7星,有n颗宝石供你选择,第i颗宝石的价值是c[i],用第i颗宝石将剑从k-1星升至k星的成功率是prob[k][i],而失败后会掉lose[k][i],要你求出将剑升至7星的期望花费。 看到这题,自然而然地就会想到用动态规划来做,而转移方程其实也很好推: f[i]=min(f[i],f[i-1]+c[j]+(1-prob[i][j])*(f[...原创 2018-07-19 17:22:59 · 217 阅读 · 0 评论 -
【51nod1299】监狱逃离(树形DP)
点此看题面 大致题意:在一棵树中有N条边连接N+1个节点,现在已知这棵树上的M个节点,要求封住最少的节点,使这M个节点中的任意一个节点无法到达叶子节点,若能办到输出最少封住的节点数,若不能输出-1。 这道题目的正解是树形DP(hl666大佬说用O(n^2·m)的最小割也可以过这道题,不过这篇博客并不讨论这种做法,他能做出来是因为他强)。 树形DP,一般都将状态由子节点向父节点转移,这题当然也...原创 2018-07-19 21:06:13 · 341 阅读 · 3 评论 -
【51nod1677】treecnt(树上数学题)
点此看题面 大致题意:给你一个节点从1~n编号的树,让你从中选择k个节点并通过选择的边联通,且要使选择的边数最少,让你计算对于所有选择k个节点的情况最小选择边数的总和。 这道题乍一看很麻烦:最短路径?最小生成树?LCA?通通都不用!!! 其实,这道题就是一道很简单的数学题。 如上图所示,对于某一条边w,假设它的一边共有t个节点,则显然它的另一边共有n-t个节点。 对于一条边的贡献,我...原创 2018-07-19 21:46:28 · 252 阅读 · 0 评论