11 2016 档案

摘要:因为数的总和一定,所以用一个人得分越高,那么另一个人的得分越低。 用dp[i][j]表示从[i,j]开始游戏,先手能够取得的最高分。 转移通过枚举取的数的个数k来转移。因为你希望先手得分尽量高,所以另一个人的最高得分应尽量少。 $dp[i][j] = sum[i][j] - \min 阅读全文
posted @ 2016-11-17 20:43 阿波罗2003 阅读(313) 评论(1) 推荐(0) 编辑
摘要:讲一下题目大意,就是有两个长度为p + 1和q + 1的序列,求它们的LCS。 如果用O(pq)的算法对于这道题来说还是太慢了。所以要另外想一些方法。注意到序列中的所有元素都不相同,所以两个序列中数对应的位置都是唯一的,就用第一个序列的元素对第二个序列的元素进行重新编号,记录它们在第一个序列中出现的 阅读全文
posted @ 2016-11-17 20:23 阿波罗2003 阅读(221) 评论(0) 推荐(0) 编辑
摘要:第一题并不是很难,首先筛出1 ~ sqrt(r)中的所有质数,然后用再用筛法直接筛[l, r]中的质数。筛出来找一遍就行了。 Code 这道题就是道计算题(呵呵)。可以直接算出当n = 9, 99, 999...的情况。那么就可以从高位向低位计算。举个例子应该更好说明。 例如n = 1234的时候, 阅读全文
posted @ 2016-11-17 19:40 阿波罗2003 阅读(183) 评论(0) 推荐(0) 编辑
摘要:1.hdu 1009 FatMouse' Trade 题目传送门[戳我] 题解传送门[戳我] 2.删数问题 题目&评测传送门[戳我] (PS) 题解: 通过贪心的策略来想,应该是每一次选择局部最优解。 这个局部最优解就是使当前的数最小,所以可以从高位到低位进行查找,使得s[j + 1] >= s[j 阅读全文
posted @ 2016-11-16 21:08 阿波罗2003 阅读(281) 评论(0) 推荐(0) 编辑
摘要:第一题存在的意义是送分。。(真的没有见过这么简单的数论题,想出正解来了还觉得是错的) 求序列的gcd,如果求出来是1,结果是n,否则是-1 首先呢,随便画个一个很长很长的矩(长)阵(方形),然后随便画一画(手动枚举)。然后就可以发现前n列的情况和前n + 1到前2n的情况很类似,所以可以对每n列进行 阅读全文
posted @ 2016-11-16 20:22 阿波罗2003 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean 阅读全文
posted @ 2016-11-15 20:38 阿波罗2003 阅读(309) 评论(0) 推荐(0) 编辑
摘要:二叉树是一个幌子,其实中序遍历后变成数列。 原问题变成了给定一个数列,问最少把多少个数修改为其他整数,使得数列递增。 考察修改后要满足的条件(b数组为中序遍历后得到的数组),即 bibi+11 所以有: $b_{i} - i\leqslant b_{ 阅读全文
posted @ 2016-11-15 20:31 阿波罗2003 阅读(200) 评论(0) 推荐(0) 编辑
摘要:这一道题的正解是倒推(然后有难度吗?),直接用results[i]表示第i位在某次操作完成后的位置(第几次呢,就看外重循环吧)接着可以分成三种情况 Code #include<iostream> #include<cstdio> #include<cctype> #include<cstring> 阅读全文
posted @ 2016-11-14 20:19 阿波罗2003 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题目描述 农场上有N(1 <= N <= 50,000)堆草,放在不同的地点上。FJ有一辆拖拉机,也在农场上。拖拉机和草堆都表示为二维平面上的整数坐标,坐标值在1..1000的范围内。拖拉机的初始位置与所有草堆不同。 FJ开拖拉机时,只能平行于坐标轴(即东、南、西、北四个方向),而且每次开动的一段必 阅读全文
posted @ 2016-11-11 17:31 阿波罗2003 阅读(353) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示