上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页
摘要: n<=3000个数划分成m段,每段的权值为这一段数字的和,求段的最小方差乘上m平方。 所以就是求上边那组平方和的最小值,这个可以dp,f(i,j)表示分成i段,前j个数最小方差, pre表示前缀和,这个式子可以用斜率优化或决策单调性解决。 1 #include<stdio.h> 2 #include 阅读全文
posted @ 2017-10-12 16:10 Blue233333 阅读(142) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-12 15:39 Blue233333 阅读(1) 评论(0) 推荐(0) 编辑
摘要: n个数,对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j))。 这就是要找max(Aj-Ai+sqrt(abs(i-j))向上取整。把他分成两部分,Max(Max (Aj+sqrt(i-j)) , Max (Ak+sqrt(k 阅读全文
posted @ 2017-10-11 16:59 Blue233333 阅读(223) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-11 16:03 Blue233333 阅读(0) 评论(0) 推荐(0) 编辑
摘要: n<=1e5个点的树有边权,m个询问,每次问max dis(i,j) a<=i<=b,c<=j<=d。 结论:一个区间的最远点对,要么是其左半区间的最远点对,要么是其右半区间的最远点对,要么是左右半区间最远点对的四个点的互相组合之一。如下图: 两个集合最远点对分别是A-B,A并B的最远点对是红A-蓝 阅读全文
posted @ 2017-10-10 22:08 Blue233333 阅读(419) 评论(0) 推荐(0) 编辑
摘要: n<=10000个点,求欧几里德距离最小的一对点。 经典分治,把这些点按x排序,分成两半,每边分别算答案,答案是左边的最小,右边的最小,左右组起来的最小三者的最小。发现只有左右组的有点难写。 假设左右两半各自的最小中的最小是d,左半边最右的点横坐标是X1,右半边最左的点的横坐标是X2。那么只需要坐标 阅读全文
posted @ 2017-10-10 16:49 Blue233333 阅读(422) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-10 15:45 Blue233333 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 求三个人从a,b,c这三个位置跳到x,y,z最少多少步。跳:任意选一颗棋子,对一颗中轴棋子跳动。跳动后两颗棋子距离不变。一次只允许跳过1颗棋子。 从它跳的性质出发,向内跳只有一种操作,而向外跳有两种。这就是说,每个状态可以找到一个唯一前趋,有两个后继。这是一棵二叉树!求两个状态的最短路就是求他们到l 阅读全文
posted @ 2017-10-10 08:11 Blue233333 阅读(314) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-09 16:57 Blue233333 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-08 16:14 Blue233333 阅读(3) 评论(0) 推荐(0) 编辑
摘要: n<=300个点的有向图求点数最少的负环。 先倍增,用floyd找到最少出现负环的走2^k的最短路,把倍增过程中那些图记下来。倍增floyd就跟矩阵快速幂一样的,因为:把floyd当成一次乘法,走一步的图*走一步的图=走两步的图,走两步的图*走两步的图=走四步的图…… 不过有个小问题,走3步出现负环 阅读全文
posted @ 2017-10-08 08:19 Blue233333 阅读(352) 评论(1) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-08 06:44 Blue233333 阅读(0) 评论(0) 推荐(0) 编辑
摘要: n<=1e5个数字,做m<=1e5次操作:把第Li到Ri的数字升序/降序排,求最后第Q位的数字。 似乎没有什么数据结构可以做这个?但可以转判定性问题。就是说,把一段数排序是没法的,但把一个01串排序是可以线段树乱搞的。 所以二分一个答案,比它小(等)的数都记0,比它大的都记1,如果最后第Q位0就没毛 阅读全文
posted @ 2017-10-07 21:50 Blue233333 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 本来不是来写这题的看名字不错就顺便写了。。 连续一段长度为x的1得分为x^3,现给每个数是0或1的概率,求期望得分。n<=1e5。 方法一:f(i)--前i个数的期望得分,,P0表示某个数是0的概率,P1表示某段数是1的概率。 这东西不知道怎么维护??? 方法二:新进来一个1的贡献为,所以只要求出: 阅读全文
posted @ 2017-10-07 07:15 Blue233333 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 给n<=1e6的序列每个数<=1e6,求m<=1e6个询问,每次问一个长度L<=n的序列是不是一开始给的序列的子序列。 贪心一波,每进来一个数就找他最早的可能位置,这样是比后面的位置要好的。一开始预处理,把每个数字的编号,按数字大小第一关键字,编号第二,放在一个表里,在表里面二分即可。 1 #inc 阅读全文
posted @ 2017-10-06 20:05 Blue233333 阅读(211) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页