- 博客(25)
- 资源 (4)
- 收藏
- 关注
原创 cf#373div1-C
题意:长度为n(n1.询问[l,r] 之间f(ai)的和;2.[l,r]之间的ai均增加v 。题解:区间操作用到线段树,线段树维护矩阵。f(ai)的计算用到矩阵乘法,f(ai+v)即为两矩阵相乘#include #include #include #include #include #include #include #include using namespac
2016-09-24 22:12:40 422
原创 2016ACM/ICPC Shengyang Online-1002 List wants to travel
题意:给定一棵n个节点的树,有两种询问:1.(a,b,c)把节点a到节点b上路径的权值改为c;2.(a,b)询问节点a到b路径上连续不同权值的个数(如1,2,3,3,1算4个)题解:树链剖分+线段树统计区间权值的段数(好难想)对于剖分后权值个数的统计,需要考虑区间连接处的权值。操作:对于点u,可以每次记录u的儿子到u那条边的权值(没有儿子则为-1),线段树取区间时同时记录区间两端点的权值大
2016-09-23 11:27:20 445
原创 SPOJ375 Query on a tree
题目链接:点击打开链接题意:有一棵n(n题解:树链剖分入门题。学习树链剖分请点这里#include #include #include #include #include #include #include using namespace std;typedef long long LL;const int N=10000+10;const int E=200
2016-09-21 11:17:00 338
原创 2016ACM/ICPC Shengyang Online-1001 Resident Evil
题意和题解均参考:https://async.icpc-camp.org/d/560-2016-icpc题意:有一个n*n的格子, 有50种怪物. 有m个操作, 每次操作会往一个矩形区域放怪物, 每个格子放相同数目的怪物, 或者查询当前50种怪物的奇偶性.题解:把怪物个数的奇偶性用来表示就变成了一个裸二维树状数组, 考虑分成4个二维树状数组做, 具体参考Iahub and Xors. 需要
2016-09-20 16:28:52 474
原创 2016ACM/ICPC Qingdao Online-1004 Tea
题意:一壶茶的容量在[L,R]之间,依次倒入两个茶杯中,需要保证最后茶壶中的茶题解:为了保证倒较少的次数,每次倒的要尽可能多,又要让[L,R]中的每个数满足。当L较大时,若L为奇数,先给第一个人倒,再给第二个人倒+1,接下来第一个人最多只能倒2,第二个人也只能倒2,……,依次下去直到倒完;若L为偶数,先给第一个人倒+0.5,再给第二个人到+1.5,接下来第一个人最多只能倒2,第二个人也
2016-09-17 19:42:24 473
原创 RQNOJ-19 篝火晚会
题意:n个同学按1,2,3,……n围成圈,已知编号为i的同学希望相邻的两个同学。佳佳可以进行移动(b1, b2,... bm -1, bm),作用:b1换到b2的位置上,b2换到b3的位置上,……,bm换到b1的位置上,但是会消耗代价m。问满足所有同学的意愿的最小代价,不可能输出-1.题解:很显然,如果存在,则进行一次移动是最优的,代价是不满足的同学数。得到目标数组:先取1号同学放在2
2016-09-16 22:02:32 418
原创 RQNOJ-8 2^k进制数
题意:给定k和w,求r的个数,其中r作为2^k进制时至少要2位且每一位严格小于右边,r作为2进制时总位数不超过w。 (k题解:若已知2^k进制下,最高位最大为a,总位数为b,则总数为,其中。这个公式的意思是最高位为i,再从中选取个数插入剩下的b-1个位置中。排列可用递推预处理ps.高精度#include #include #include #include #include
2016-09-16 20:58:19 727
原创 20162017-ct-s03e02-codeforces-trainings-season-3-episode-2-en-A HHPaint
WA题意:平面上有n个点,考虑一个面积最小的凸多边形包含所有点,你的任务是用不重叠的三角形分割这个凸多边形,并给出这些三角形的三个点。题解:凸多边形即求一次凸包。先找到左下的点S,对剩下的点极角排序。1. S和剩下相邻的点成三角形;2. 求凸包时凹进去的点和相邻的点成三角形。
2016-09-16 14:09:25 1173
原创 20162017-ct-s03e02-codeforces-trainings-season-3-episode-2-en-I Painting the natural numbers
题意:用10种颜色染1-n这n个数字,染色需满足:a,b(a可以等于b)同一种颜色,则a+b必须是另一种颜色(n题解:若当前已用k种颜色染好n个数字,则可以扩展成3n+1个数字:{n个数字,k种颜色}{n+1个,第(k+1)种颜色}{n个数字,k中颜色}用这种方法10种颜色可以达到29000#include #include #include #include
2016-09-16 13:04:02 1018
原创 BAPC2010-I Keylogger
链表模拟#include #include #include #include #include #include using namespace std;const int N=1e6+10;int arr[N],arrh;struct Node{ int L,R,v;}a[N];char str[N];int Now,st,ed;int n;void
2016-09-14 18:07:03 450
原创 2016 ACM/ICPC Dalian Online-1009 Sparse Graph
题意:n个点的无向完全图中删除m条边,问点s到其他点的最短路径长度题解一:BFS遍历,最短路径长度为step的同时遍历(用需要删去的边),若未入队的点被遍历到的次数小于最短路径长度为step的点的个数,则该点入队;否则留在未扩展点中。 (复杂度不会分析,感觉好像是min(n,m)^2)#include #include #include #include #include #in
2016-09-14 11:05:12 297
原创 2016 ACM/ICPC Dalian Online-1010 Weak Pair
题意:给定一个有根树和k,每个节点权值为ai,求有序点对(u,v)的数量,有序点对需满足:u是v的祖先,且au*av题解一:dfs序+主席树求出树的dfs序,因为一棵子树的所有子节点在dfs序中是连续的,设起始序号为st,结尾序号为ed。那么对于子树的根节点i来说,只需要求[st,ed]这段区间中ps.处理时要用离散化#include #include #include #i
2016-09-14 10:34:16 292
原创 2016 ACM/ICPC Dalian Online-1008 Function
题意:给定长度为n的数组A和Q个询问。询问[L,R],求A(L)%A(L+1)%A(L+2)%……%A(R) 。其中 1≤N,Q≤100000一个性质:大数对小数取余,结果小于大数的一半。所以每个大数最多对小数取log(ai)次题解一:转自点击打开链接已知mod操作类似gcd操作,结果是单调的,只会小不会大。把所有询问预存,按左边界排序,当前左边界存在于询问时,加入优先队列,对于
2016-09-13 21:31:35 391
原创 2016 ACM/ICPC Dalian Online-1002 Different GCD Subarray Query
题意:给定长度为N的数组,Q个询问,每个询问求区间[L,R]中gcd的种类数 (1≤N,Q≤100000,1≤ai≤1000000)题解:首先对于以a[i]为右边界的gcd种类数不超过log(a[i]),因为每次取gcd时要么不变(种类不增加),要么质因子个数减少(种类+1),由于质因子个数最多log(a[i])个,所以种类数不超过log(a[i])我们记录下每个a[i]的不同gcd值
2016-09-13 19:40:05 314
原创 2016 ACM/ICPC Dalian Online-1007 Friends and Enemies
题意与题解转自:点击打开链接题目大意: m个人 n种颜色石头。 人与人之间关系要么是朋友,要么是敌人,关系不具有传递性。 每个人可以携带任何数量任何种颜色的石头(也可以不带)对于任何两个人,如果是朋友,携带的石头至少有一种相同颜色。 如果是朋友,携带的石头颜色必须完全不同。问n种颜色的石头能不能满足所有关系下m个人佩戴的石头都符合要求。就是找最坏
2016-09-13 18:36:58 403
原创 2016 ACM/ICPC Dalian Online-1006 Football Games
题目:n支队伍两两比赛,赢2分,平1分,输0分给出n支队伍的得分信息,判断是否合法题解:Landau's Theorem当得分信息满足以下条件时,合法{\displaystyle 0\leq s_{1}\leq s_{2}\leq \cdots \leq s_{n}}{\displaystyle s_{1}+s_{2}+\cdots +s_{i}\geq {i \c
2016-09-13 18:09:30 345
原创 bzoj2437 [Noi2011]兔兔与蛋蛋
题解:我们将棋盘分成黑白格子(相邻格子颜色不同),将空格染成黑色,那么我们可以知道X为合法棋子当且仅当X在黑色格子,而O为合法棋子当且仅当O在白色格子。相邻合法棋子(空格也为合法)连边,则我们得到无向图,而它也是二部图,当空格一定是在最大匹配中时,则先手必胜;否则先手必败。若不一定在,则空格可能在偶数条交错路,或者有点可以代替空格(此时空格可不在最大匹配中),那么此时后手总有办法走到先手所在的
2016-09-08 14:55:18 653
原创 bzoj1022 [SHOI2008]小约翰的游戏John
题解:首先考虑只有1的情况,奇数个1先手必败,偶数个1先手必胜;若有大于1的堆,所有堆的xor之和为0,则先手必败;否则先手必胜。xor之和为0,那么后手的策略为 先手取多少,后手取多少;最后就会剩下两种状态(后手先取):1. 很多堆1和一堆大于1的堆2. 两个大于1的堆对于第一种情况,若1的个数为奇数,那么后手取完大于1的堆,剩下奇数个1的堆,后手必胜;若1的个数为偶数,
2016-09-07 11:46:10 493
原创 bzoj3576 [Hnoi2014]江南乐
题解:把一堆石子看成一种局面,如果递推求的话会是O(n^2),超时。有一种性质:n是石子数,i是分成的堆数,如果n/i==n/(i+2),那么他们的异或和相同。所有对于n/i相同的堆数,他们的异或和只有两种情况(i为奇数和i为偶数两种)。而对于n/i的种类只有sqrt(n)种(n的约数个数)。据此递推#include #include #include #include #in
2016-09-06 16:36:38 413
原创 bzoj1228 [SDOI2009]E&D
题解:将一组看成一个局面,打表算出SG,找规律#include #include #include #include #include #include using namespace std;typedef long long LL;const int N=1e4+10;int n;int dfs(int x,int y)//这个规律很神奇{ long l
2016-09-06 13:22:46 745
原创 bzoj2281
参考题解:点击打开链接并不是很懂,尤其是出现了反例不过这个dp求方案还是可以好好学下#include #include #include #include #include #include using namespace std;typedef long long LL;const int N=10000+10;const int M=1000000007;
2016-09-05 16:35:03 328
原创 2016MUTC6-1003 A Simple Nim
官方题解:sg[0]=0当x=8k+7时sg[x]=8k+8,当x=8k+8时sg[x]=8k+7,其余时候sg[x]=x;(k>=0)打表找规律可得,数学归纳法可证。把每堆石子看成一种局面,sg[i]的i表示石子的个数当前局面就是n个局面的异或和根据题意推sg[i]#include #include #inc
2016-09-05 09:04:23 461
原创 bzoj1188 [HNOI2007]分裂游戏
链接:点击打开链接题解:把一颗豆子看成一种局面,sg[i]中的i为豆子所处的位置sg[i]=mex{sg[j]^sg[k]|i当位置i的豆子个数为偶数时,sg[i]相互抵消;所以当前局面的SG是p[i]为奇数位置的sg[i]的异或和对于第一问,即考虑先手取一次后,后手取的局面的SG值,若为0,则先手必胜。后手的SG值为当前的SG^sg[i]^sg[j]^sg[k](其中i,j,k表
2016-09-05 08:42:26 297
原创 2016MUTC9-1009 Intersection is not allowed!
题目:求网格中点集A到点集B中不相交路径数题解:先求出f(i,j)表示A的第i个点到B的第j个点的路径数,再解行列式det(f(i,j))即为解#include #include #include #include #include #include using namespace std;typedef long long LL;const int N=100+10
2016-09-01 14:57:10 298
原创 2016MUTC4-1006 substring
题解:考虑不包含字符X的情况,不同的子串可以用后缀数组解决:考虑含字符X的情况:即对于起点为sa[i],终点必须在X之后:nxt[i]表示位置i及之后的第一个X出现的位置#include #include #include #include #include #include using namespace std;const int N=1e5+10;t
2016-09-01 10:25:14 311
program1-12-1.pcap
2020-04-08
Sarah Adel Bargal_Universal Hashing notes.pdf
2020-03-27
Generalized Inverse广义逆.pdf
2020-03-26
universal hashing.pdf
2020-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人