随笔分类 -  codeforces/Gym

摘要:先筛出来1000以内的素数。 枚举x^(1/3) 和 y^(1/3)以内的素因子,这样除完以后对于x和y剩下的因子,小的那个的平方必须等于大的。 然后判断每个素因数的次数之和是否为3的倍数,并且小的那个次数不小于大的次数的两倍。 当然这题是有O(1)的做法哒。 #include<cstdio> #i 阅读全文
posted @ 2017-07-31 02:19 AutSky_JadeK 阅读(220) 评论(0) 推荐(0)
摘要:三维空间中有一些(<=2000)气球,一些光源(<=15),给定一个目标点,问你在移除不超过K个气球的前提下,目标点所能接受到的最大光照。 枚举每个光源,预处理其若要照射到光源,需要移走哪些气球,构建成一个bitset。 然后再2^15枚举光源集合,看看要让集合中所有光源照到目标点所要移走的气球是否 阅读全文
posted @ 2017-07-26 20:11 AutSky_JadeK 阅读(154) 评论(0) 推荐(0)
摘要:给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的。 枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看看是否合法,如果合法再看看那个错的是否真的错了。 阅读全文
posted @ 2017-07-26 20:07 AutSky_JadeK 阅读(175) 评论(0) 推荐(0)
摘要:给你一个一维细胞自动机,第i个格子在时刻t的状态是这样获得的,问你t时刻的状态。 把0时刻的状态视作一个列向量,发现状态转移其实是一个n*n的矩阵(以n=5为例), 直接快速幂即可。 阅读全文
posted @ 2017-07-26 20:03 AutSky_JadeK 阅读(161) 评论(0) 推荐(0)
摘要:给你一堆定义,问你在那个定义下,<p,q>是不是素数。其实那堆定义都不用管,只要看最下面给你的提示即可。 根据,只要把m^2+n^2当一个整体,去枚举(p^2+q^2)的约数即可,然后再枚举m, 这样的枚举出来是必要的,然后再根据这个充要条件判一下即可。 阅读全文
posted @ 2017-07-26 19:59 AutSky_JadeK 阅读(172) 评论(0) 推荐(0)
摘要:一棵树,q次询问,每次给你三个点a b c,让你把它们选做s f t,问你把s到f +1后,询问f到t的和,然后可能的最大值是多少。 最无脑的想法是链剖线段树……但是会TLE。 LCT一样无脑,但是少一个log,可以过。 正解是分类讨论, 如果t不在lca(s,f)的子树内,答案是dis(lca(s 阅读全文
posted @ 2017-07-25 01:33 AutSky_JadeK 阅读(318) 评论(0) 推荐(0)
摘要:给你A B两个串,让你切B串两刀,问你能否把切开的三个串拼成A。 哈希显然。 阅读全文
posted @ 2017-07-24 20:40 AutSky_JadeK 阅读(182) 评论(0) 推荐(0)
摘要:平面上n个点,点之间沿直线走,规划一条路线,每次只能往左半平面的点走,走过最多的点。 显然所有的点都能走过。 n^2的暴力显然是每次找左边与其所形成夹角最小的点,但这样过不了(卡常数?)。 或者每轮不断求凸包。有个非常巧妙的地方是将每一轮输出后剩下的最后一个点加到下一轮的点里面一起求凸包,这样只要按 阅读全文
posted @ 2017-07-24 20:38 AutSky_JadeK 阅读(152) 评论(0) 推荐(0)
摘要:平面上有100000个哥布林和20000个圆,问你不在圆内的哥布林有多少个。 将每个圆从左到右切2r+1次,形成(2r+1)*2个端点,将上端点记作入点,下端点记作出点,再将这些点和那些哥布林一起排序(x第一关键字,y第二关键字,类型(入 哥布林 出)第三关键字),扫一遍就好了。 阅读全文
posted @ 2017-07-21 20:36 AutSky_JadeK 阅读(262) 评论(0) 推荐(0)
摘要:根据n-1推n的情况,让n从每一个的最右走到最左,再从下一个最左走到最右,如此往复即可。 阅读全文
posted @ 2017-07-21 20:32 AutSky_JadeK 阅读(215) 评论(0) 推荐(0)
摘要:给你一个森林,让你把它连接成一颗树,使得直径最小。 就求出每颗树的重心以后,全都往直径最大的那个的重心上连,一般情况是最大/2+次大/2+1,次大/2+第三大/2+2 中取较大者。 还有些特殊情况要特判处理一下。 阅读全文
posted @ 2017-07-21 20:30 AutSky_JadeK 阅读(203) 评论(0) 推荐(0)
摘要:给你一张地图,给你q次询问,每次问你从A点到B点,最大能移动多大的箱子。 把每个点所能容纳的最大箱子求出来(BFS,八连通,一开始将所有边界点和障碍点入队)。然后从大到小排序。然后用并查集将相邻(四联通)的点依次链接起来,如果不路径压缩的话,那么两个节点的LCA的所能容纳的箱子大小就是答案。于是用并 阅读全文
posted @ 2017-07-20 20:33 AutSky_JadeK 阅读(218) 评论(0) 推荐(0)
摘要:套娃形成一些链形结构,给你套娃的初始状态和目标状态,问你需要几步(将最外层套娃打开,以及将一整套套娃塞进一个空套娃都算一步)才能达到。 容易发现,只有每条链链尾的匹配段可以不拆,其他的都得拆开。 阅读全文
posted @ 2017-07-20 20:28 AutSky_JadeK 阅读(200) 评论(0) 推荐(0)
摘要:注意等边三角形的上顶点是卡不到边界上的。 于是整个凸包分成三部分:左边的连续的三角形、中间的、右边的连续的三角形。 套个计算几何板子求个三角形顶点到圆的切线、三角形顶点到正方形左上角距离啥的就行了,分类比较多。 阅读全文
posted @ 2017-07-20 20:26 AutSky_JadeK 阅读(304) 评论(0) 推荐(0)
摘要:二维下,如果把杨辉三角按照题目里要求的那样摆放,容易发现,第i行第j列的数(从0开始标号)是C(i+j,i)*C(j,j)。 高维下也有类似规律,比如三维下,最后一层的数其实是C(i+j+k,i)*C(j+k,j)*C(k,k)。 题目提示你了,坐标组合相同的位置,其值一定相同。 于是dfs最后一层 阅读全文
posted @ 2017-07-20 10:47 AutSky_JadeK 阅读(282) 评论(0) 推荐(0)
摘要:把每件物品当成平面上一个点,将第一件物品放在原点。那个权重值相当于一条直线,于是相当于直线绕原点转一圈,统计上侧点的数量。 队友的代码: 阅读全文
posted @ 2017-07-20 10:29 AutSky_JadeK 阅读(339) 评论(0) 推荐(0)
摘要:Splay要支持找最左侧的最小值所在的位置。类似线段树一样处理一下,如果左子树最小值等于全局最小值,就查左子树;否则如果当前节点等于全局最小值,就查当前节点;否则查右子树。 为了统计答案,当然还得维护子树大小的函数。 找到位置以后,直接将左右子树交换即可。不需要打标记。 删除节点时,直接将其前驱(是 阅读全文
posted @ 2017-07-15 16:41 AutSky_JadeK 阅读(176) 评论(0) 推荐(0)
摘要:x坐标排序,y坐标当权值,同一个x坐标的,y从大到小排。 求f(i)表示以i结尾的LIS以后,从后向前枚举,不断更新一个max数组,max(i)代表最长上升子序列为i时,当前的 结尾的最大值是多少。 一个元素可能在LIS里面,则说明存在一个j>i,f(j)=f(i)+1,且a(j)>a(i),就查询 阅读全文
posted @ 2017-07-14 19:07 AutSky_JadeK 阅读(175) 评论(0) 推荐(0)
摘要:给你一张有向图,问你将任意一条边变成双向后,所能得到的最大强连通分量的大小。 缩点之后,预处理can(i,j)表示i能到j。 之后枚举每一条边(u,v),再枚举其他所有点t,如果can(u,t) && can(t,v),则t能和u、v共在一个强连通分量,尝试更新答案。 阅读全文
posted @ 2017-07-14 19:00 AutSky_JadeK 阅读(134) 评论(0) 推荐(0)
摘要:网格里放了一些石块,一个炸弹能炸开其所在的行和列。问炸光石块至少要几个炸弹。 枚举不炸开的行数,则可以得出还要炸开几列。 为了不让复杂度爆炸,需要两个优化。 先是递推预处理出f(i)表示i的二进制位中1的个数,f(i)=f(i-2^k)+1,k是可以推算出来的。 还要DFS枚举不炸开的行数,防止重复 阅读全文
posted @ 2017-07-14 18:56 AutSky_JadeK 阅读(202) 评论(0) 推荐(0)

TVアニメ「Charlotte(シャーロット)」公式サイト TVアニメ「Charlotte(シャーロット)」公式サイト