上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 65 下一页
摘要: 整天自闭。 A:有各种讨论方式。我按横坐标排了下然后讨论了下纵坐标单调和不单调两种情况。写了15min也就算了,谁能告诉我printf和cout输出不一样是咋回事啊?又调了10min啊?upd:突然想起来我好像define int long long了 #include<iostream> #inc 阅读全文
posted @ 2018-12-24 00:57 Gloid 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 置换数量是阶乘级别的,但容易发现本质不同的点的置换数量仅仅是n的整数拆分个数,OEIS(或者写个dp或者暴力)一下会发现不是很大,当n=53时约在3e5左右。 于是暴力枚举点的置换,并且发现根据点的置换我们得到的实际上是边的置换,暴力数一下循环节就好了。3e5*50*50,luogu上过掉了。诶怎么 阅读全文
posted @ 2018-12-23 19:16 Gloid 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 直接给了一个置换群(当然要自己手动加上不洗牌的情况)。考虑求不动点数量即可。对于一个置换,求出所有循环的长度,然后设f[i][x][y]为给前i个循环着色后,用了x张红色卡片、y张绿色卡片的方案数,dp一发即可。 upd:为啥我写的应该不是假算法却好像也被hack掉了?不管了已经忘了这是啥题肯定哪写 阅读全文
posted @ 2018-12-23 16:12 Gloid 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 对于置换0→i,1→i+1……,其中包含0的循环的元素个数显然是n/gcd(i,n),由对称性,循环节个数即为gcd(i,n)。 那么要求的即为Σngcd(i,n)/n(i=0~n-1,也即1~n)。考虑枚举gcd。显然gcd(i,n)=x在该范围内解的个数是φ(n/x)。分解一下质因数即可。 阅读全文
posted @ 2018-12-23 15:18 Gloid 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 参考:刘汝佳《算法竞赛入门经典训练指南》 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车。 置换:排列的一一映射。置换乘法相当于函数复合。满足结合律,不满足交换律。 置换的循环分解:即将置换看成一张有向图,分解成若干循环。循环的数量称为循环节。 以置换集合来描述等价关系 阅读全文
posted @ 2018-12-23 14:38 Gloid 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 考虑乱搞,用矩形框圆放KD-Tree上,如果当前删除的圆和矩形有交就递归下去删。为防止被卡,将坐标系旋转一定角度即可。注意eps稍微设大一点,最好开上long double。 阅读全文
posted @ 2018-12-23 13:23 Gloid 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 堆维护第k大,每个点KD-Tree上A*式查询较远点,跑得飞快,复杂度玄学。 阅读全文
posted @ 2018-12-22 17:20 Gloid 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 板子题。 阅读全文
posted @ 2018-12-22 16:07 Gloid 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 板子题。 阅读全文
posted @ 2018-12-22 00:01 Gloid 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 参考:https://trinkle23897.github.io/pdf/K-D%20Tree.pdf KD-Tree是一种维护K维空间点的类似BST的数据结构。绝大多数时候只用来维护二维空间的点,因为维度越高复杂度越辣鸡。下面只考虑平面上的KD-Tree,即2D-Tree。 KD-Tree以分割 阅读全文
posted @ 2018-12-21 22:07 Gloid 阅读(263) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 65 下一页