摘要:
假设初始人数为0, 将每个时刻在等待的人数写下来,就是求个和。 如果纵坐标看成人数,横坐标看成时间,就是求个面积。 因为初始人数不一定为零,所以离线后扫描线即可回答所有询问。
阅读全文
posted @ 2017-07-13 22:08
AutSky_JadeK
阅读(211)
推荐(0)
摘要:
让你把所有的“连续的仅有首字母大写的”词组用缩写表示,并且在后面用括号注明原词组。
阅读全文
posted @ 2017-07-13 22:05
AutSky_JadeK
阅读(177)
推荐(0)
摘要:
发现炸毁的瞭望塔必然是连续的,其余下的部分是一个半平面。 二分答案,枚举所有可能的炸毁情况,做个半平面交,如果交出来面积是0,就可以保证不存在安全区域。
阅读全文
posted @ 2017-07-13 11:47
AutSky_JadeK
阅读(155)
推荐(0)
摘要:
容易发现,圆锥体积和点的具体x、y坐标无关,只与其到z轴的距离sqrt(x*x+y*y)有关。 于是将这些三维的点都投射到二维的xOy平面的第二象限(sqrt(x*x+y*y),z),求个上凸壳,然后在每一点处,圆锥的母线的斜率的取值范围就确定了,发现这个圆锥的体积关于圆锥母线的函数是单峰的,可以三
阅读全文
posted @ 2017-07-13 11:45
AutSky_JadeK
阅读(162)
推荐(0)
摘要:
给你两个4k长度的串,问你最长公共子串。两个子串相同被定义为所有字母的出现次数分别相同即可。 就枚举第一个串的所有子串,将字母出现的次数看作一个大数,进行哈希(双关键字),塞到哈希表里面。然后枚举第二个串的子串,去哈希表里面查即可。 一开始用的map,空间被卡常数了。 后来问了别人,发现set就能过
阅读全文
posted @ 2017-07-12 10:22
AutSky_JadeK
阅读(189)
推荐(0)
摘要:
给你一个1~n排好的数组,每次提一个数到最前面,问你最后形成的序列。 就把他的输入顺序倒过来输出即可。没出现过的再按原序输出。
阅读全文
posted @ 2017-07-12 10:19
AutSky_JadeK
阅读(178)
推荐(0)
摘要:
题意跟某道我出的等差子序列求最值非常像…… 反正询问的长度只有10种,你就建立10批树状数组,每组的公差是确定的,首项不同。 然后询问的时候只需要枚举询问串的每一位,找找这一位对应哪棵树状数组即可。 修改的时候会在10棵树状数组里修改,也是算算修改的位置对应哪一棵即可。 要注意,一共有4种字符,每个
阅读全文
posted @ 2017-07-12 10:15
AutSky_JadeK
阅读(137)
推荐(0)
摘要:
让你构造一棵树(给定了总结点数和总的叶子数),使得直径最小。 就先弄个菊花图(周围一圈叶子,中间一个点),然后平均地往那一圈放其他的点即可。
阅读全文
posted @ 2017-07-12 10:11
AutSky_JadeK
阅读(165)
推荐(0)
摘要:
在每个给出的子串的起始位置打个标记,记录的是从这里开始的最长子串。 然后输出的时候就扫,如果遇到开始位置,就从这里开始输出,如果其后被更长的覆盖,就跳转到更长的串进行输出。 如果位置没被覆盖,就输出'a'。
阅读全文
posted @ 2017-07-12 10:10
AutSky_JadeK
阅读(173)
推荐(0)
摘要:
让你在平面上取一个点,使得其到给定的所有点的距离和最小。 就是“费马点”。 模拟退火……日后学习一下,这是从网上扒的,先存下。
阅读全文
posted @ 2017-07-09 21:59
AutSky_JadeK
阅读(212)
推荐(0)
摘要:
题意: 给定S1串,长度100w,S2串,长度1k。问它俩的LCS。 f(i,j)表示S2串前i个字符,LCS为j时,最少需要的S1串的前缀长度。转移的时候,枚举下一个字符在S1的位置即可。(可以预处理出S1中每个字符出现位置的vector,在其中二分)
阅读全文
posted @ 2017-07-09 21:56
AutSky_JadeK
阅读(286)
推荐(0)
摘要:
一个区域,垂直分成三块,每块有一个速度限制,问你从左下角跑到右上角的最短时间。 将区域看作三块折射率不同的介质,可以证明,按照光路跑时间最短。 于是可以二分第一个入射角,此时可以推出射到最右侧边界上的位置,看什么时候恰好射到右上角即可。 这份sb代码貌似挂精度了。
阅读全文
posted @ 2017-07-09 21:52
AutSky_JadeK
阅读(246)
推荐(0)
摘要:
按照回文子串的奇偶分类讨论,分别计算其对答案的贡献,然后奇偶分别进行求和。 推导出来,化简一下……发现奇数也好,偶数也好,都可以拆成一个等比数列求和,以及一个可以错位相减的数列求和。 然后用高中数学知识搞一下就行了。
阅读全文
posted @ 2017-07-09 21:47
AutSky_JadeK
阅读(314)
推荐(0)
摘要:
主席树里每个值的位置存当前该值出现的最右位置。 如果root[r]的前缀主席树中,某值最右位置大于等于l,说明该值出现在了l,r中。 所以主席树维护区间最小值,如果左半值域的最小值<l,则说明左半值域有值未在l,r出现,则查询左子树;否则查询右子树。
阅读全文
posted @ 2017-07-09 21:43
AutSky_JadeK
阅读(366)
推荐(0)
摘要:
数位dp预处理之后,可以容易得到f(x),代表小于等于x的数中,有多少个不含13的。然后就能二分答案啦。
阅读全文
posted @ 2017-07-07 13:52
AutSky_JadeK
阅读(205)
推荐(0)
摘要:
在最外围的一圈没有意义,所以全都涂黑,内部贪心地涂成棋盘即可。
阅读全文
posted @ 2017-07-07 13:50
AutSky_JadeK
阅读(165)
推荐(0)
摘要:
每个城市有4个城门,每个城门会发出唯一一条边去别的城市的城门。问你能否从城市1出发,经过每个城门恰好一次,再回到城市1。 每个城市的度数都是4,必然存在欧拉回路(如果连通)。欧拉回路显然是一个合法解。
阅读全文
posted @ 2017-07-07 13:49
AutSky_JadeK
阅读(168)
推荐(0)
摘要:
#include #include #include using namespace std; #define EPS 0.00000001 struct Point{ double x,y; }a[2],b[2]; typedef Point Vector; Vector operator * (const double &a,const Vector &v){ return (Vec...
阅读全文
posted @ 2017-07-04 17:11
AutSky_JadeK
阅读(124)
推荐(0)
摘要:
一种方法是二分总时间,复杂度O(nlogn)。 另外我们可以证明,当所有人同时到达终点的时候,是最优的,因为没有人的时间“浪费”了。 我们又发现,每个人的运动过程总是两段,要么是走路,要么是坐车。于是每个人的运动都是等价的(坐车的时间也相等,走路的时间也相等)。 这里借用一下这个推导,懒得写了。 (
阅读全文
posted @ 2017-07-04 17:09
AutSky_JadeK
阅读(144)
推荐(0)
摘要:
对每个矩阵里的元素用两个大素数做双关键字哈希,丢进set即可。
阅读全文
posted @ 2017-07-04 17:00
AutSky_JadeK
阅读(213)
推荐(0)
摘要:
京州电子科技大学遭遇废校危机,为了保护我们心爱的学校,N位魔法少女站了出来,她们能做的就是……成为偶像! 每个魔法少女都拥有一定的人气,他们中的每个人的人气计算方式如下: 假设某个魔法少女的学号为a,学号从1到a-1的共a-1位同学都会为她应援,学号为i的同学能让这位魔法少女增加gcd(a,i)的人
阅读全文
posted @ 2017-07-04 16:57
AutSky_JadeK
阅读(277)
推荐(0)
摘要:
打个表出来看看,其实很明显。 推荐打这俩组 11 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000 12 1 10 100 1000 10000 100000 1000000 10000000 1
阅读全文
posted @ 2017-06-18 10:56
AutSky_JadeK
阅读(291)
推荐(0)
摘要:
容易发现,删除的顺序不影响答案。 所以可以随便删。 如果行数大于列数,就先删列;否则先删行。
阅读全文
posted @ 2017-06-18 10:49
AutSky_JadeK
阅读(169)
推荐(0)
摘要:
考虑用4^n-不存在连续4个相同的。 f(i,j,k,l)表示以i为结尾的序列,最后三位分别是j,k,l时的方案。 可以转移,写一个64*64的转移矩阵。 貌似可以优化?……未完待续。
阅读全文
posted @ 2017-06-03 00:40
AutSky_JadeK
阅读(274)
推荐(0)
摘要:
回文自动机讲解!http://blog.csdn.net/u013368721/article/details/42100363 pam上每个点代表本质不同的回文子串。len(i)代表长度,cnt(i)代表个数(要最后在fail树上dp一遍方可)。 答案直接枚举一遍结点,然后用len(i)*cnt(
阅读全文
posted @ 2017-06-02 22:11
AutSky_JadeK
阅读(219)
推荐(0)
摘要:
f(i,j)表示打了i行出现j个bug的方案数。 还是跟背包有点像嘛。
阅读全文
posted @ 2017-06-02 21:02
AutSky_JadeK
阅读(185)
推荐(0)
摘要:
#include<cstdio> #include<algorithm> using namespace std; int n,V,w[110],c[110],a[110],f[50010]; int main(){ scanf("%d%d",&n,&V); for(int i=1;i<=n;++i
阅读全文
posted @ 2017-06-02 21:00
AutSky_JadeK
阅读(184)
推荐(0)
posted @ 2017-06-02 20:59
AutSky_JadeK
阅读(210)
推荐(1)
摘要:
斜率优化裸题,模型可以看http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html
阅读全文
posted @ 2017-06-02 20:58
AutSky_JadeK
阅读(181)
推荐(0)
摘要:
有向图博弈问题。 能转移到一个必败态的就是必胜态。 能转移到的全是必胜态的就是必败态。 转移的时候可以用队列维护。 可以看这个 http://www.cnblogs.com/quintessence/p/6618640.html
阅读全文
posted @ 2017-06-02 20:56
AutSky_JadeK
阅读(122)
推荐(0)
摘要:
四边形不等式优化的资料去网上找下吧!很多。 可以证明,这个题里面,合并的代价满足较小区间+较大区间<=交错区间。 可以自己画个图看看。
阅读全文
posted @ 2017-06-02 20:54
AutSky_JadeK
阅读(200)
推荐(0)
摘要:
要处理从四个角出发的答案。最后枚举那个交点,然后讨论一下来的方向即可。
阅读全文
posted @ 2017-06-02 20:51
AutSky_JadeK
阅读(176)
推荐(0)
摘要:
最长上升子序列。 要求输出字典序最小解。 就在更新答案的时候记录一下前驱。容易发现记录的这个玩意实际上形成了一个森林。
阅读全文
posted @ 2017-06-02 20:49
AutSky_JadeK
阅读(165)
推荐(0)
摘要:
方格取数。 但由于题意说金币数<0就死了,就不能继续转移。
阅读全文
posted @ 2017-06-02 20:47
AutSky_JadeK
阅读(113)
推荐(0)
摘要:
转移方程很显然。 因为是多段图模型,所以可以滚动数组优化一维空间。
阅读全文
posted @ 2017-06-02 20:45
AutSky_JadeK
阅读(185)
推荐(0)
摘要:
#include<cstdio> #include<algorithm> using namespace std; int n,V,op[20010],c[20010],w[20010],f[10010]; int main(){ scanf("%d%d",&n,&V); for(int i=1;i
阅读全文
posted @ 2017-06-02 20:44
AutSky_JadeK
阅读(116)
推荐(0)
摘要:
裸的状压的话,很显然……但有一个强大的优化。 就是在枚举决策的时候,固定第一个空位置。可以证明,这样状态数没有减少,但是降低了很多重复访问。 因为你在枚举的时候,总是可以划分为包含第一个空位置的3个位置;以及不包含第一个空位置的三个位置。这样固定先枚举前者,避免了重复。 还有一个优化是,没必要每次判
阅读全文
posted @ 2017-06-02 20:43
AutSky_JadeK
阅读(137)
推荐(0)
posted @ 2017-06-02 20:39
AutSky_JadeK
阅读(151)
推荐(0)
posted @ 2017-06-02 00:43
AutSky_JadeK
阅读(281)
推荐(0)
摘要:
预处理每一层最左侧的1的位置,以及最右侧的1的位置。 f(i,0)表示第i层,从左侧上来的最小值。f(i,1)表示从右侧上来。 转移方程请看代码。
阅读全文
posted @ 2017-06-02 00:40
AutSky_JadeK
阅读(136)
推荐(0)