上一页 1 2 3 4 5 6 7 8 9 10 ··· 21 下一页
摘要: 先筛出来1000以内的素数。 枚举x^(1/3) 和 y^(1/3)以内的素因子,这样除完以后对于x和y剩下的因子,小的那个的平方必须等于大的。 然后判断每个素因数的次数之和是否为3的倍数,并且小的那个次数不小于大的次数的两倍。 当然这题是有O(1)的做法哒。 #include<cstdio> #i 阅读全文
posted @ 2017-07-31 02:19 AutSky_JadeK 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 对每个点的取值都取最小的可能值。 那个图最多一个环,非环的点的取值很容易唯一确定。 对于环上的点v,其最小可能取值要么是mex{c1,c2,...,ck}(ci这些是v直接相连的非环点)(mex是)。要么是这个值+1。 并且如果环上的一个点的值确定了,其他的值也就唯一确定了。 那么就一共只有两种可能 阅读全文
posted @ 2017-07-29 22:50 AutSky_JadeK 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 每次将最大的数减到n以下,如此循环直到符合题意。 复杂度大概是n*n*log?(?)。 阅读全文
posted @ 2017-07-29 22:44 AutSky_JadeK 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 从n个t变化到n个t-1,恰好要n步,并且其中每一步的max值都>=t,所以把50个49当成最终局面,从这里开始,根据输入的K计算初始局面即可。 阅读全文
posted @ 2017-07-29 22:42 AutSky_JadeK 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 非常棒的题解,我就不复述了:http://blog.csdn.net/Bahuia/article/details/76141574 O(n) 阅读全文
posted @ 2017-07-27 00:16 AutSky_JadeK 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 三维空间中有一些(<=2000)气球,一些光源(<=15),给定一个目标点,问你在移除不超过K个气球的前提下,目标点所能接受到的最大光照。 枚举每个光源,预处理其若要照射到光源,需要移走哪些气球,构建成一个bitset。 然后再2^15枚举光源集合,看看要让集合中所有光源照到目标点所要移走的气球是否 阅读全文
posted @ 2017-07-26 20:11 AutSky_JadeK 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的。 枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看看是否合法,如果合法再看看那个错的是否真的错了。 阅读全文
posted @ 2017-07-26 20:07 AutSky_JadeK 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 给你一个一维细胞自动机,第i个格子在时刻t的状态是这样获得的,问你t时刻的状态。 把0时刻的状态视作一个列向量,发现状态转移其实是一个n*n的矩阵(以n=5为例), 直接快速幂即可。 阅读全文
posted @ 2017-07-26 20:03 AutSky_JadeK 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 给你一堆定义,问你在那个定义下,<p,q>是不是素数。其实那堆定义都不用管,只要看最下面给你的提示即可。 根据,只要把m^2+n^2当一个整体,去枚举(p^2+q^2)的约数即可,然后再枚举m, 这样的枚举出来是必要的,然后再根据这个充要条件判一下即可。 阅读全文
posted @ 2017-07-26 19:59 AutSky_JadeK 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 把b数组的所有置换群求出来,用数组记录一下每个大小所出现的次数。 然后求a的置换群,对每个置换群求能被其整除的b的置换群的大小总和(只有这些才能满足构造出一个f,且不自相矛盾),然后把它们全都乘起来就是答案。 阅读全文
posted @ 2017-07-25 21:25 AutSky_JadeK 阅读(159) 评论(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 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 给你A B两个串,让你切B串两刀,问你能否把切开的三个串拼成A。 哈希显然。 阅读全文
posted @ 2017-07-24 20:40 AutSky_JadeK 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 平面上n个点,点之间沿直线走,规划一条路线,每次只能往左半平面的点走,走过最多的点。 显然所有的点都能走过。 n^2的暴力显然是每次找左边与其所形成夹角最小的点,但这样过不了(卡常数?)。 或者每轮不断求凸包。有个非常巧妙的地方是将每一轮输出后剩下的最后一个点加到下一轮的点里面一起求凸包,这样只要按 阅读全文
posted @ 2017-07-24 20:38 AutSky_JadeK 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 只有两维的时候,我们显然要按照Ai-Bi排序,然后贪心选取。 现在,也将人按照Ai-Bi从小到大排序,一定存在一个整数K,左侧的K个人中,一定有Y个人取银币,K-Y个人取铜币; 右侧的X+Y+Z-K个人中,一定有X人取金币,Y+Z-K个人取铜币。 现在,简化一下,我们把每个人的金币数和银币数减去其铜 阅读全文
posted @ 2017-07-23 23:50 AutSky_JadeK 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 假设我们一开始选取所有的运动项目,然后每一轮将当前选择人数最多的运动项目从我们当前的项目集合中删除,尝试更新答案。容易发现只有这样答案才可能变优,如果不动当前选取人数最多的项目,答案就不可能变优。 我这最外面那个二分是卖萌的。 阅读全文
posted @ 2017-07-23 23:41 AutSky_JadeK 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 从大到小排序,相邻两项作差,求gcd,如果K是gcd的倍数并且K<=max{a(i)},必然有解,否则无解。 可以自己手画画证明。 阅读全文
posted @ 2017-07-23 23:38 AutSky_JadeK 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 给你一个1~n的排列,让你找出4个下标a b c d,满足 (a+b)%n=(c+d)%n (w(a)+w(b))%n=(w(c)+w(d))%n,并且是非平凡解。 发现对于每个数i,找出两个数和为其的数量大概是O(n),于是可以随机找,压到vector里存下,直到找到一个解为止。 阅读全文
posted @ 2017-07-23 22:45 AutSky_JadeK 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 平面上有100000个哥布林和20000个圆,问你不在圆内的哥布林有多少个。 将每个圆从左到右切2r+1次,形成(2r+1)*2个端点,将上端点记作入点,下端点记作出点,再将这些点和那些哥布林一起排序(x第一关键字,y第二关键字,类型(入 哥布林 出)第三关键字),扫一遍就好了。 阅读全文
posted @ 2017-07-21 20:36 AutSky_JadeK 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 根据n-1推n的情况,让n从每一个的最右走到最左,再从下一个最左走到最右,如此往复即可。 阅读全文
posted @ 2017-07-21 20:32 AutSky_JadeK 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 给你一个森林,让你把它连接成一颗树,使得直径最小。 就求出每颗树的重心以后,全都往直径最大的那个的重心上连,一般情况是最大/2+次大/2+1,次大/2+第三大/2+2 中取较大者。 还有些特殊情况要特判处理一下。 阅读全文
posted @ 2017-07-21 20:30 AutSky_JadeK 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 给你一张地图,给你q次询问,每次问你从A点到B点,最大能移动多大的箱子。 把每个点所能容纳的最大箱子求出来(BFS,八连通,一开始将所有边界点和障碍点入队)。然后从大到小排序。然后用并查集将相邻(四联通)的点依次链接起来,如果不路径压缩的话,那么两个节点的LCA的所能容纳的箱子大小就是答案。于是用并 阅读全文
posted @ 2017-07-20 20:33 AutSky_JadeK 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 套娃形成一些链形结构,给你套娃的初始状态和目标状态,问你需要几步(将最外层套娃打开,以及将一整套套娃塞进一个空套娃都算一步)才能达到。 容易发现,只有每条链链尾的匹配段可以不拆,其他的都得拆开。 阅读全文
posted @ 2017-07-20 20:28 AutSky_JadeK 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 注意等边三角形的上顶点是卡不到边界上的。 于是整个凸包分成三部分:左边的连续的三角形、中间的、右边的连续的三角形。 套个计算几何板子求个三角形顶点到圆的切线、三角形顶点到正方形左上角距离啥的就行了,分类比较多。 阅读全文
posted @ 2017-07-20 20:26 AutSky_JadeK 阅读(297) 评论(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 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 把每件物品当成平面上一个点,将第一件物品放在原点。那个权重值相当于一条直线,于是相当于直线绕原点转一圈,统计上侧点的数量。 队友的代码: 阅读全文
posted @ 2017-07-20 10:29 AutSky_JadeK 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 对每个位置i处理出以其为结尾,且比a(i)大的数有j个的前缀个数,记成一个数组l;同理,处理出以其为开头,且比a(i)大的数有j个的后缀的个数,记成一个数组r。 整个序列中比a(i)大的数的个数的数组就是对l和r数组卷积起来。 于是枚举所有i,FFT,累加答案即可。 但是,有可能有重复的元素,就将a 阅读全文
posted @ 2017-07-18 23:18 AutSky_JadeK 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 算(7+4*sqrt(3))^n的整数部分(mod 1e9+7)。 容易想到矩乘快速幂,但是怎么算整数部分呢? (7+4*sqrt(3))^n一定可以写成a+b*sqrt(3),同理(7-4*sqrt(3))^n一定可以写成a-b*sqrt(3),于是, (7+4*sqrt(3))^n = (7+4 阅读全文
posted @ 2017-07-18 21:28 AutSky_JadeK 阅读(195) 评论(0) 推荐(0) 编辑
摘要: Splay区间加,询问区间和。 阅读全文
posted @ 2017-07-18 02:02 AutSky_JadeK 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 发现由于角的度数和边的长度有限制,那俩圆如果放得下的话,必然是塞在两个角里。 于是预处理n个圆心的位置(注意要判断那个圆会不会和其他的边界相交),然后n^2枚举俩角即可。 阅读全文
posted @ 2017-07-18 01:03 AutSky_JadeK 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 那个人派出的队伍的行走的路径一定前半程是重合的,后半程分叉开来。 于是预处理每个点离1号点的最短路,到最近的铁的最短路,到最近的煤的最短路。(三次BFS / SPFA)然后枚举分岔点,尝试更新答案即可。 阅读全文
posted @ 2017-07-18 01:00 AutSky_JadeK 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 二分Vx即可。 阅读全文
posted @ 2017-07-18 00:57 AutSky_JadeK 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 有向图,不经过重复点的最长链,强连通分量大小不超过5。 每个强连通分量内部暴力预处理任意两对点之间的最长路,外面DAG上dp。 不是很好写,但是预处理完了之后,可以重构每个强连通分量内部的结构,然后整个就变成一张DAG了,就很方便了。 阅读全文
posted @ 2017-07-18 00:17 AutSky_JadeK 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Splay要支持找最左侧的最小值所在的位置。类似线段树一样处理一下,如果左子树最小值等于全局最小值,就查左子树;否则如果当前节点等于全局最小值,就查当前节点;否则查右子树。 为了统计答案,当然还得维护子树大小的函数。 找到位置以后,直接将左右子树交换即可。不需要打标记。 删除节点时,直接将其前驱(是 阅读全文
posted @ 2017-07-15 16:41 AutSky_JadeK 阅读(163) 评论(0) 推荐(0) 编辑
摘要: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<stack> using namespace std; #define maxn 100010 #define INF 2147483 阅读全文
posted @ 2017-07-15 15:04 AutSky_JadeK 阅读(132) 评论(0) 推荐(0) 编辑
摘要: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; #define maxn 1000000 #define INF 2147483647 int n,fa[ma 阅读全文
posted @ 2017-07-15 14:06 AutSky_JadeK 阅读(211) 评论(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 阅读(165) 评论(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 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 网格里放了一些石块,一个炸弹能炸开其所在的行和列。问炸光石块至少要几个炸弹。 枚举不炸开的行数,则可以得出还要炸开几列。 为了不让复杂度爆炸,需要两个优化。 先是递推预处理出f(i)表示i的二进制位中1的个数,f(i)=f(i-2^k)+1,k是可以推算出来的。 还要DFS枚举不炸开的行数,防止重复 阅读全文
posted @ 2017-07-14 18:56 AutSky_JadeK 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 选择的钥匙一定是连续的,人和钥匙一定从左到右连续对应。 就枚举钥匙区间即可。 阅读全文
posted @ 2017-07-14 11:48 AutSky_JadeK 阅读(114) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/DorMOUSENone/article/details/73699630 阅读全文
posted @ 2017-07-13 22:09 AutSky_JadeK 阅读(180) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 21 下一页
TVアニメ「Charlotte(シャーロット)」公式サイト TVアニメ「Charlotte(シャーロット)」公式サイト