摘要: 有一个环形跑道,上面有n个加油站,到i号加油站可以加pi的油,跑到下一站要花费qi的油,起点任意选,问是否有一个起点可跑完整个跑道。从i开始跑,如果遇到某个站j不能跑了,那么从i到j之间的站开始跑,到j的油不会增加,所以下次直接从j+1开始跑。复杂度是O(n)#includeusing namesp... 阅读全文
posted @ 2015-08-09 17:52 陈瑞宇 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 不难发现,每过一个小时,除了右下方的气球全都是蓝色以外,其他都和上一个小时的气球是一样的,所以是可以递推的。然后定义一类似个前缀和的东西f(k,i)表示k小时之后上面i行的红气球数。预处理出k小时的红气球总数c(k),递归时候注意终止条件。#includeusing namespace std;ty... 阅读全文
posted @ 2015-08-09 17:51 陈瑞宇 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n个数的集合,每次选两个删除,把它们的和放回集合,直到集合的数只剩下一个,每次操作的开销是那两个数的和,求最小开销。Huffman编码。Huffman编码对于着一颗二叉树,这里的数对应着单词出现的频度,每次合并深度最大的结点,选频度最小的两个。用两个队列类似归并排序,合并一下。#inclu... 阅读全文
posted @ 2015-08-09 17:51 陈瑞宇 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题意:把一个包含m个正整数的序列划分成k个非空的连续子序列。使得所有连续子序列的序列和Si的最大值尽量小。二分,每次判断一下当前的值是否满足条件,然后修改区间。注意初始区间的范围,L应该为所有正整数中的最大值,否则应该判断时注意。输出解的时候要使字典序最小,所以从后面贪心。#includeusing... 阅读全文
posted @ 2015-08-09 17:51 陈瑞宇 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 由于互相憎恨的骑士不能相邻,把可以相邻的骑士连上无向边,会议要求是奇数,问题就是求不在任意一个简单奇圈上的结点个数。如果不是二分图,一定存在一个奇圈,同一个双连通分量中其它点一定可以加入奇圈。很明显,其它点和已知的奇圈相连总是有两条点数一奇一偶的路径,因此一定可以找到一条回路使得新的这个点加入一个奇... 阅读全文
posted @ 2015-08-09 00:53 陈瑞宇 阅读(277) 评论(0) 推荐(0) 编辑