
ACM_UVA
nirvana · rebirth
NIRVANA & REBIRTH
展开
-
UVA—Funny Car Racing Dijkstra + 堆优化
题目传送门题意:有一个赛车跑道,可以看做一个加权有向图。每个跑道(有向边)还有一个特点就是,会周期性地打开a秒,然后关闭b秒。只有在赛车进入一直到出来,该跑道一直处于打开状态,赛车才能通过。开始时所有跑道处于刚打开的状态,求从起点到终点的最短时间。分析:和普通的单源最短路类似,在更新边的权值的时候,更改下条件即可。首先需要判断时间time,time = dis[pos] % ( 开启...原创 2019-10-21 19:49:10 · 212 阅读 · 0 评论 -
UVA 111——History Grading【LCS最长公共子序列】
题目传送门题意:先给出nn个事件的正确发生时间顺序,在给出一些学生排出来的时间发生时间顺序,有两种得分方式:在相应的时间点发生事件相同则得11分可以得到的分数等于发生事件的相对时间顺序正确的最长长度。求按照第二种方式可以获得的得分。nn的范围,2<=n<=202<=n<=20分析:最长公共子序列的应用.之前已经有过一些相对应的练习,不过这道题关于历史...原创 2019-10-31 23:45:00 · 345 阅读 · 1 评论 -
UVA 562——Dividing coins【01背包平衡】
题目传送门题意:给你一堆硬币,让你分成两堆,分别给A,B两个人,求两人得到的最小差。分析:首先算出每个硬币的权值之和sum。然后以sum / 2为背包容量,求出能装出的最大包。答案就是sum - 最大包 * 2原理:如果刚好可以将硬币分为sum / 2和sum / 2那就最好了,答案直接是0。但如果分不到,那么其中一组的权值和肯定是sum / 2的前驱(也就是能凑出的最大的权值和且&...原创 2019-10-24 23:55:08 · 344 阅读 · 0 评论 -
UVA 624——CD【01背包 + 打印路径】
题目传送门题意:有N个物品,每个物品一个重量,现在问你在重量不超过W的前提下,如何选物品可以使得装的物品尽量多,并且要按输入顺序输出被装入的物品,已经总重量sum.分析:基础的01背包,但是要打印路径。dp[i - 1][j]表示在前i - 1件物品中选取若干物品放入容量为j背包所得到的最大的价值,dp[i - 1][j - w[i]] + v[i]表示前i - 1件物品中选取若干物品...原创 2019-10-24 23:44:31 · 230 阅读 · 0 评论 -
UVA 10328 -—— Coin Toss【DP & 大数】
题目传送门题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上(H)的情况有多少种。分析:原题中问出现连续至少k个H的情况,很难下手。我们可以试着将问题转化一下,设 dp[i][j] 表示抛掷i个硬币出现连续至多 j 个H 的情况种数。实际出现连续至少k个H,即出现连续k个H,k+1个H,…n个H的并集,等价于dp[n][n]-dp[n][k-1],即从连续至多n个H的情况(所有抛...原创 2019-10-23 14:39:47 · 369 阅读 · 0 评论