2017年9月30日
摘要: Problem 给你一个宠物或是领养者的特点值。 若是领养者的特点值为a,有宠物的特点值为b,那么他会领养abs(a b)最小的值。(如果有a+k和a k,那么优先领养a k) 同理,若是宠物的特点值为a,有领养者的特点值为b,那么它会被abs(a b)最小的值的领养者领养。(如果有a+k和a k, 阅读全文
posted @ 2017-09-30 08:34 WizardCowboy 阅读(126) 评论(0) 推荐(0) 编辑
  2017年9月29日
摘要: Problem 每次给你一个数,找出前面的数与这个数的差的绝对值的最小值 Solution Splay Notice 找不到前驱和后继时,会出错。 Code C++ include include include include include using namespace std; define 阅读全文
posted @ 2017-09-29 20:50 WizardCowboy 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Problem 有以下操作 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数) Solution 裸的 阅读全文
posted @ 2017-09-29 20:25 WizardCowboy 阅读(135) 评论(0) 推荐(0) 编辑
摘要: Problem 共有n个格子,有两个硬币在a,b格子上,还有q个操作。 每个操作给你一个编号,要求将一个硬币移到这个编号上。 问你硬币移动的总距离最小值。 Solution O(n^3):DP[i][a][b]表示i个操作后,1个硬币在a,一个硬币在b的总距离最小值。 O(n^2):DP[i][b] 阅读全文
posted @ 2017-09-29 20:19 WizardCowboy 阅读(266) 评论(0) 推荐(0) 编辑
  2017年9月28日
摘要: Problem 给你n个点,m个询问,每个询问有x, y 问以(x,y)为原点建立的平面直角坐标系分割的第一象限和第三象限的点数和减去第二象限和第四象限的点数和 Solution 用2个树状数组维护一条竖直的线的左右两边的点的分布情况 然后对x轴排序,把一个点从右边的树状数组中拿出,放到左边去(相当 阅读全文
posted @ 2017-09-28 21:00 WizardCowboy 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Problem 给你一个数列,让你求由五个元素组成的顺序对的个数。 Solution DP:用DP[i][j]表示把第j个作为五元组中第i个的方案数 则DP[i][j]=sum{DP[k][j 1]} (k include include include include using namespac 阅读全文
posted @ 2017-09-28 20:53 WizardCowboy 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Code 阅读全文
posted @ 2017-09-28 09:00 WizardCowboy 阅读(133) 评论(0) 推荐(0) 编辑