其他重要思想
inklutcuah
这个作者很懒,什么都没留下…
展开
-
【jzoj4897】【人生的意义】【拓扑排序】【找环】
题目大意这个新世界由N个城市组成(编号为1..N),其中第i个城市的意义大小为W[i]。每个城市都有一个唯一的后继城市a[i]。设NiroBC最初降落在城市x,那么她将按照x -> a[x] -> a[a[x]] -> a[a[a[x]]] -> …的路径行走,同一个城市的人生意义只能得到一次,NiroBC最终得到的人生意义是所有经过的城市(不重复)的人生意义的和。 NiroBC是等概率地随机地降落原创 2016-11-17 08:17:57 · 555 阅读 · 0 评论 -
【jzoj3893】【画矩形】【时间分治】【数据结构】
题目大意解题思路考虑前面全是插入,后面全是询问的做法。考虑扫描线把插入拆成两个操作,按横坐标排序,用数据结构维护。考虑原问题,考虑分治,把前一半插入对后一半的贡献先求出来消除了影响,再递归求解。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL原创 2017-01-24 17:01:04 · 334 阅读 · 0 评论 -
【jzoj4965】【Equation】【容斥】
题目大意听着自己美妙的曲子,小Z进入了梦乡。在梦中,小Z仿佛又回到了自己纵横考场的年代。在梦中,小Z参加了一场考试,这场考试一共有n道题,每道题的最终得分都是一个大于等于0的整数。然而醒来后,小Z忘记了自己每道题的得分。他只记得自己计算过m次一些题目的分数和,每道题都被计算过,并且只被计算过一次。除此之外他还记得其中t道题的满分分别是多少(一道题的得分不会超过满分)。现在小Z想知道他这场考试有多少种原创 2017-01-29 15:52:38 · 380 阅读 · 0 评论 -
【51nod 1203】【JZPLCM】【莫队算法】
题目大意给出一列数,求一段区间的lcm。解题思路离线询问,对小于sqrt(n)的质因子暴力求出,rmq解决询问。这样之后就只最多剩下一个质因子,可以使用莫队用桶维护。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#def原创 2017-02-23 17:21:51 · 368 阅读 · 0 评论 -
【codechef FNCS】【Chef and Churu】【分块】
题目大意给出一个序列a,和一些区间求和询问,称作一些函数。有很多个操作,修改a[i]的值,询问一个区间内函数和,就是询问一些区间询问的和。解题思路考虑一个只询问函数的情况,我们可以用分块维护块内的前缀和,块之间的前缀和,修改时o(sqrt(n))即可解决,询问时o(1)即可解决.考虑将函数也分块,维护每个块内所有函数和对a[i]的权,即要统计几次。这样我们可以o(1)解决修改对一个块的影响,询问时可原创 2017-02-25 16:40:53 · 750 阅读 · 1 评论 -
【jzoj5049】【腐女的生日】【扫描线】【数据结构】
题目大意腐女要过生日了,pty 想给腐女送礼物,但是腐女所在的教室离pty 的教室太远了,于是pty就拜托会动归和A星的djy帮忙送礼物。djy在学校建立了一个平面直角坐标系,他站在了(0,0)点,腐女在(x0,y0)点,djy每次只能往上下左右四个方向移动一步,中间有n栋矩形教学楼,每个教学楼给出两个对角的坐标,并且保证每栋教学楼的周围区域(如图所示)不会有别的教学楼,即djy可以绕一个教学楼走不原创 2017-04-11 14:40:29 · 688 阅读 · 0 评论 -
【jzoj5050】【颜色树】【容斥原理】【树形动态规划】
题目大意传说中,这棵不见边际的树有N个节点,每个节点都有1片叶子,每片叶子都拥有K种颜色中的一种,独孤玉溪喜欢爬到这棵树上,沿着一条路线摘叶子,并拥有所有颜色的叶子。独孤玉溪会选择一个起点,并沿着树边走,然后最终停在一个终点上(起点和终点可能相同),当然了每一个结点只能经过一次(每一片叶子只能摘一遍)。独孤玉溪突生奇想,有多少种不同的方案能满足自己呢?(两种方案不同当且仅当起点不同或终点不同)。解题原创 2017-04-11 20:47:11 · 486 阅读 · 0 评论 -
【jzoj5105】【GDSOI2017】【魔兽争霸 x】【结论】
题目大意有n种技能,每秒使用h点生命,m点法力,造成d点伤害,技能使用时间可以是实数。你有hp点生命,m点法力,求最大造成的伤害及这时每种技能使用的时间。解题思路考虑造成单位伤害所需要的生命和法力,把这两个值投射到二维平面上,形成很多向量,可以发现选取一些向量,它们的和向量越靠近对角线,答案越大,可以证明组成答案的向量数不会超过两个,直接暴力枚举即可。code#include<cstdio>#in原创 2017-05-10 20:55:18 · 394 阅读 · 0 评论 -
【jzoj5085】【GDOI2017第四轮模拟day1】【游戏】 【sg函数】【线性基】
题目大意YJC最近写了一篇关于游戏的论文。CJY看他那么喜欢游戏,决定出一道题考考他。CJY给出了一种两个人玩的游戏。定义游戏规则如下:给一张n个点,m条边的有向无环图,每条边有颜色ci。在图上放了q颗石子,每颗石子在一个点上。每次操作时,选择一个有出边且点上有石子的点x,从点上取走一颗石子,然后选择一个颜色集合S,如果x的某条出边i的颜色 ,则在边i的终点上放上一颗石子。双方轮流操作,不能操作者负原创 2017-05-24 20:45:00 · 589 阅读 · 0 评论 -
【jzoj5101】【GDOI2017 day2】【凡喵识图】【随机算法】【分组】
题目大意给出一些64位整数,对每个数球前面和它二进制不同位刚好为三位的数有多少个。解题思路首先我们发现位和位之间是独立的,先随机化打乱顺序。因为要求三位不同,把原数分成四份,至少有一位相同,我们用一个桶来维护。因为随机化过,所以数期望是平均分配的,用平方级别扫描可以通过。最后需要判一下之前是否有计算过相同数对。code#include<cstdio>#include<cmath>#include原创 2017-05-07 10:37:16 · 577 阅读 · 0 评论 -
【jzoj5239】【GDOI2018模拟8.7】【图的异或】【线性基】
题目大意解题思路dfs一遍,求出dfs树上s到t的异或和,把每个环的异或和加进线性基里面,枚举每个二进制位i,如果基里有x个数的第i位是1,对答案贡献2^(i+x-1),因为留出一个1调整答案,其他随便选即可。如果基里没有1,当s到t异或和第i位是1,对答案贡献2^(i+x-1),x是基里数的个数,否则没有贡献。code#include<cstdio>#include<cmath>#includ原创 2017-08-07 22:44:00 · 299 阅读 · 0 评论 -
【jzoj5246】【NOIP2017模拟8.8A组】【Trip】【笛卡尔树】【tarjan-lca】
题目大意多年之后,worldwideD厌倦竞争,隐居山林。他的家乡开始发展起了旅游业,在一条很长的主干道上,有N个旅游景点,按顺序编号为1到N。根据游客们网上的评分,第i个景点有一个评估值a[i],为了区分开不同的景点,评估值是两两不同的。今天有M组游客前来旅游,第i组游客选择遍历景点Li到景点Ri这一段路。他们搜到Li到Ri的所有评估值,如果对于景点j(Li≤j≤Ri),不存在景点x(Li≤x<j原创 2017-08-09 09:57:03 · 533 阅读 · 0 评论 -
【jzoj5286】【NOIP2017提高A组模拟8.16】【花花的森林 】【时间倒流】
题目大意解题思路离线时间倒流,逐渐加边,用并查集维护连通块直径,可以发现两个连通块合并新直径,一定是原来直径四个点组合之一,倍增算一下即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for原创 2017-08-16 12:32:32 · 289 阅读 · 0 评论 -
【spoj】【COT2 - Count on a tree II】【莫队算法】
题目大意给出一棵树,每个点有点权,询问两点之间的路径有多少种不同的权值。解题思路观察可知,一般的算法无法解决这个问题,我们考虑传说中的暴力算法莫队算法。求出dfs序,将左端点按sqrt(n)一块分块为第一关键字,将右端点为第二关键字排序。可以发现这样做之后左端点每次不会移动超过sqrt(n)位,而右端点会被分成sqrt(n)个单调序列,每个序列移动不会超过n,这样我们就可以在n sqrt(n)解决这原创 2017-02-18 16:12:38 · 551 阅读 · 0 评论 -
【jzoj4935】【构造】
题目大意解题思路我们进行二进制拆分,从低位开始,给当前位置建一个子节点,如果是1则当前点变为新建节点,否则不变,再建一个新节点,当前点不变。可以发现变节点的情况我们把方案数+1,不变的情况我们把方案数*2,这样2^30>1e9,我们可以解决所有问题。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#原创 2017-01-12 17:13:40 · 299 阅读 · 0 评论 -
【51nod1086】【背包问题 V2】【动态规划】【二进制分组】
题目大意有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。解题思路首先我们可以动态规划,直接做显然会t,我们可以考虑把多重背包转换成01背包,这样就可以很快得解。我们可以考虑二进制分组,首先低位的必须要有,这样保证我们可以组成前面的数,剩余原创 2016-12-02 22:01:32 · 527 阅读 · 0 评论 -
【51nod1103】【N的倍数】【构造】
题目大意一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数解题思路发现对a左前缀和,会产生n+1个数,模n最多有n个取值,所以一定有两个相同,就对应一段可行区间。code#include<cmath>#include<cstdio>#include<algorit原创 2016-11-30 22:34:28 · 337 阅读 · 0 评论 -
【jzoj4898】【人生的价值】【扫描线】【线段树】
题目大意YYHS的校园可以抽象成一个无限二维平面,校园里分布着N个教室(编号为1..N),第i个教室的坐标为(x[i], y[i]),里面有w[i]个学生。新食堂的饭菜十分美味,然而同学们都比较懒。当且仅当新食堂的位置和第i个教室的位置的曼哈顿距离小于等于L,第i个教室里的学生会去新食堂吃饭。有博爱之心的NiroBC希望有尽量多的学生去新食堂吃饭,那么这个问题就交给你了!解题思路通过观察可以发现,有原创 2016-11-17 08:12:20 · 500 阅读 · 0 评论 -
【jzoj4763】【旷野大计算】【莫队】
题目大意给出长度为n的序列a,有一些询问a[l,r]中出现过的数字乘以出现的次数的最大值。解题思路可以考虑使用莫队,但是我们发现加一个数简单,删一个数就有点难了,可以使用线段树维护,然而这会tle。我们可以尽量使用加,按l所在区间降序为第一关键字,r升序为第二关键字。维护一个桶,先不考虑l所在区间的部分,考虑完整的块和右边,可以轻松维护。再考虑l所在区间的部分,先存下当前的答案,暴力加上l所在区间的原创 2016-09-22 22:15:26 · 1010 阅读 · 0 评论 -
【jzoj4744】【同余】【分段处理】
题目大意解题思路可以发现当p较小时可以预处理出%p后的前缀和,把询问挂在每个点分别处理。当p较大时可以开一个桶,枚举合法的原数统计答案不会很多。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#原创 2016-09-05 20:59:56 · 303 阅读 · 0 评论 -
【jzoj4909】【李电下棋】【数论】【结论】
题目大意有1到n个格子,一开始在a,b处有棋子,k能放棋子当且仅当i,j有棋子,k=i+j或k=|i-j|,不能放的人输,问先手必胜还是必输。解题思路发现k是gcd(a,b)的倍数时一定可达,算出有多少个格子,判断奇偶性即可。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define mi原创 2016-12-03 16:36:38 · 328 阅读 · 0 评论 -
【51nod1060】【最复杂的数】【数论】【反素数】【搜索】【结论】
题目大意把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。解题思路额……这个是求小于n的最大反素数(一脸懵逼)。对于任何正整数x,其约数的个数记做g(x)。如果某个正整数x满足:对于任意i(0<i<x)i(0<i<x),都有g(i)<g(x)g(i)<原创 2016-11-29 16:57:41 · 426 阅读 · 0 评论 -
【jzoj4870】【涂色游戏】【动态规划】【矩阵快速幂】
题目大意解题思路设f[i][j]表示一列有i个数,j种颜色的方案数,f[i][j]=f[i-1][j-1]*(p-j+1)+f[i-1][j]*j。g[i][j]表示第i列,j种颜色的方案数,g[i][j]=g[i-1][k]*mat[j][k]。设x表示i,j并集,mat[i][j]=f[n][j]/c[p][j]*c[i][i+j-x]*c[p-i][x-i]。推出矩阵后就可以快速幂。code#原创 2016-11-07 21:33:01 · 514 阅读 · 0 评论 -
【jzoj4854】【小澳的坐标系】【动态规划】【矩阵快速幂】
题目大意小澳在坐标系的原点,他可以向上、向左或者向右走。他可以走n步,但不能经过相同的点。小澳想知道他有多少种走法。解题思路f[i]表示可以走i步的答案,当i>4是f[i]=f[i-2]*3-f[i-2]*2+f[i-3]+f[i-4]。接着就是矩阵快速幂。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#in原创 2016-11-03 15:31:56 · 922 阅读 · 0 评论 -
【jzoj4787】【数格子】【 状态压缩动态规划】【矩阵快速幂】
题目大意解题思路显然状压dp,然而会tle,就想到矩阵快速幂。f[i][s]表示第i行摆放情况为s的方案数,显然可以把转移矩阵处理出来,然后就快速幂。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long lon原创 2016-09-23 21:34:18 · 334 阅读 · 0 评论 -
【bzoj1103】【POI2007】【大都市】【meg】【人工栈】
题目大意一棵有根树,每次修改一条边或询问跟到一个点的路径上有多少条边没被修改。解题思路可以用括号序表示树上的一条路径,访问时间戳+1,离开时间戳-1,修改一条边就是将深度大的点的时间戳都改为0,表示对后面没影响。最恶心的是要打人工栈。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algori原创 2016-08-17 22:46:29 · 492 阅读 · 0 评论 -
【jzoj3839】【bzoj4423】【AMPPZ 2013 baj】【Bytehattan】【Babystep】【平面图转对偶图】
题目大意给出一个网格图,求删除一条相邻的边后是否连通,强制在线。解题思路黑圈表示原图的方格,绿边表示原边,紫边表示删除这些边,红边表示当前要删除的边,我们发现如果我们想要添加的紫边会和原来的紫边构成环,这样割掉红边以后一定产生新的连通块。我们把紫边的交点当作新点,这样就转换成并查集问题,平面图转对偶图。code#include<cmath>#include<cstdio>#include<cst原创 2017-01-13 21:31:36 · 384 阅读 · 0 评论 -
【jzoj5328】【NOIP2017提高A组模拟8.22】【世界线】【bitset】
descriptionsolution这题显然要求一个点能通过边到达多少个点,这样我们可以用bitset来做,然而直接做会爆空间,可以考虑做两次,分别考虑和一半点的连通性。code#include<bitset>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#d原创 2017-08-22 15:22:00 · 371 阅读 · 0 评论