10 2018 档案
摘要:【传送门:51nod-1462】 简要题意: 给出一棵n个点的树,每个点有两个权值v,t 有Q个操作,有两种操作: 1.将x到根上的路径上的点的v值都加上d 2.将x到根上的路径上的点的t值都加上每个点的v值*d 最后求出所有点的t值 题解: 显然可以直接树链剖分做,不过lazy标记下放真麻烦,因为
阅读全文
摘要:【传送门:51nod-1363】 简要题意: 给出一个数n,求出1到n的数与n的最小公倍数的和 多组数据 题解: 理所当然推柿子 原题相当于求 先枚举d=gcd(i,n),然后化简得到$$n*\sum_{d|n}\sum_{i=
阅读全文
摘要:【传送门:51nod-1232】 简要题意: 完美数定义:一个数能够被它每一位非零的数整除,例如:11,12,15,但13就不是完美数,因为13不能被3整除 给出T组询问,每组询问输入l,r,输出l到r中有多少个完美数 题解: 首先很容易想到只要当前数被每一位所有非零的数的lcm整除就好了 实际上最
阅读全文
摘要:【传送门:51nod-1253】 简要题意: 给出一棵n个点的树,树上的边要么为黑,要么为红 求出所有的三元组(a,b,c)的数量,满足a到b,b到c,c到a三条路径上分别有至少一条红边 题解: 显然黑边是没用的,那么我们将只有黑边相连的点分成若干的连通块 那么答案就很显然了,容斥一手 就是(所有三
阅读全文
摘要:【传送门:51nod-1611】 简要题意: 给出n个点,编号为1到n,一开始每个点都是不可用状态,要花费c[i]的代价才能使第i个点变为可用点 有m个奖励区间,每个区间输入l,r,d,表示如果l到r的点都为可用状态则获得d的价值 求出最大能获得的价值 题解: 先DP一手,设f[i]为到第i个点能得
阅读全文
摘要:【传送门:BZOJ4816】 简要题意: 设f[i]为斐波那契数列的第i项(f[0]=0,f[1]=1) 有一个n*m的表格,第i行第j列的格子上的数为f[gcd(i,j)],求出n*m的所有格子的乘积 题解: 莫比乌斯反演 实际上就是求$\prod_{i=1}^{n}\prod_{j=1}^{m}
阅读全文
摘要:【传送门:BZOJ3529】 简要题意: 给出一张数表,数表上第i行第j列的格子上的数是所有同时整除i和j的自然数的和 给出Q个询问,每个询问输入n,m,a,求出n*m的数表中格子上的数<=a的所有格子的和 题解: 设F(x)为x的约数和,设n<m 实际上就是求$\sum_{i=1}^{n}\sum
阅读全文
摘要:【传送门:BZOJ2154&BZOJ2693】 简要题意: 给出n,m,求 题解: 莫比乌斯反演(因为BZOJ2693是多组数据,数据强一点,所以代码用BZOJ2693的) 设n<m,原式等于$\sum_{i=1}^{n}\
阅读全文
摘要:【传送门:BZOJ2005】 简要题意: 给出n*m个格子,位置从(1,1)到(n,m) 在(0,0)的位置上有一个机器,如果(x,y)这个点与(0,0)的连线上覆盖了k个点(不包括(0,0)和(x,y)),则这个点的代价为2*k+1 求出所有n*m个点的代价和 题解: 莫比乌斯反演 显然代价和等于
阅读全文
摘要:【传送门:BZOJ2820】 简要题意: 给出n,m,求出满足x<=n,y<=m的数对中gcd(x,y)为质数的数对数 题解: 莫比乌斯反演 设F(t)为gcd(x,y)%t==0的数对数,f(t)为gcd(x,y)==t的数对数,F(t)=(n/i)*(m/i) 然后可以得到$F(n)=\sum_
阅读全文
摘要:【传送门:BZOJ2301】 简要题意: 给出a,b,c,d,k,求出满足a<=x<=b,c<=y<=d的数对中gcd(x,y)==k的数对数 题解: 莫比乌斯反演模板题 设F(t)为gcd(x,y)%t==0的数对数,f(t)为gcd(x,y)==t的数对数 然后可以得到$F(n)=\sum_{n
阅读全文
摘要:2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅,差点被鸽,但还算打完了5h 总的来说这场还是不算难的,7题还是少了点 A 题目: 给出a,b,求出
阅读全文
摘要:【传送门:51nod-1213】 简要题意: 给出平面直角坐标系中的n个点,求出这n个点的曼哈顿距离构成的完全图的最小生成树的大小 题解: 曼哈顿距离最小生成树的证明 实际上有影响的边远远小于n2,在处理边的时候用树状数组维护就好了 最后对得到的边做kruscal就行了 参考代码:
阅读全文
摘要:【传送门:51nod-1359】 简要题意: 给出n和k,求出最小的x满足 题解: 真是一道有(du)趣(liu)题目 首先我们设X[k-1]为成立的最小的x 那么我们就可以得到$n^{X[k-1]}≡n(m
阅读全文
摘要:【传送门:51nod-1346】 简要题意: 给出一个式子a[i][j]=a[i-1][j]^a[i][j-1] 给出a[1][i],a[i][1](2<=i<=131172) 有n个询问,每个询问输入x,y 求出a[x+131072][y+131072] 题解: 真是一道有趣的题目。。 显然不能直
阅读全文
摘要:【传送门:51nod-1322】 简要题意: 给出n个点的两棵无根树,编号都是从0到n-1 现在每棵树任意选出一条边割断,设第一棵树选出的边为e1,第二棵树选出的边为e2 很显然割断后两棵树各分成了四棵树,设第一棵树分成了A1树和B1树,第二棵树分成了A2树和B2树 设S(a,b)为a树和b树之间相
阅读全文
摘要:【传送门:51nod-1310】 简要题意: 有一个数组S,保证里面的数是从小到大的,而且每一个数的二进制中都没有连续的1,如:1,2,4,5,8... 给出n,然后给出n个位置,求出S数组中n个位置的异或和 题解: 数位DP好题,卡了老久 设f[i]表示2i-1到2i-1中有多少个数是在数组S中的
阅读全文
摘要:【传送门:51nod-1296】 简要题意: 有一个集合,集合中的数为1到n 给出a限制条件,a[i]表示第a[i]位置的数要比相邻位置的数要小 给出b限制条件,b[i]表示第b[i]位置的数要比相邻位置的数要大 求出符合条件的序列个数 题解: DP 设f[i][j]为i位数,最后一位为j的情况数
阅读全文
摘要:【传送门:51nod-1277】 简要题意: 给出一个长度为n的字符串,求出所有前缀的出现的次数*长度的最大值 题解: 一开始想着直接用KMP做,但是发现解决不了一个问题 改用EXKMP求,对于一个p[i],若p[i]不为0,则说明1到p[i]的位置的前缀出现的次数都多了一次 然后用差分搞一下就行了
阅读全文
摘要:【传送门:51nod-1275】 简要题意: 给出一个有n个数的序列,求出有多少个子段满足子段内最大值与最小值的差小于等于k 题解: 单调队列做 j表示往右最长能覆盖到的那个数,用两个单调队列来维护j的范围,一个递增,一个递减 然后对于每个i,j的取值都可能不同,但是随着i增大,j不可能减小,所以每
阅读全文
摘要:【传送门:51nod-1273】 简要题意: 给出一棵树,点数为n,现在你有一个旅行计划,从k城市出发,每天前往一个没去过的城市,并且旅途中经过的没有去过的城市尽可能的多(如果有2条路线,经过的没有去过的城市同样多,优先考虑编号最小的城市),直到所有城市都去过 求出每天旅行到达的城市的编号 题解:
阅读全文
摘要:【传送门:51nod-1259】 简要题意: 将n分成若干个整数相加,求出方案数 题解: DP 和上一题不同,分成的整数可以相等,那么就不能用上一题的DP直接做,但可以利用它的思想 我们将n分成(1,sqrt(n))和(sqrt(n)+1,n)两部分来处理 首先对于第一部分,我们直接暴力背包求出s1
阅读全文
摘要:【传送门:51nod-1257】 简要题意: 给出n个物品,每个物品有它的体积和价值,要求选出k个物品,使得单位体积价值最大,求出最大单位体积价值 题解: 01分数规划裸题 直接01分数规划,然后对于true的情况就顺便记录一下选出来的物品的体积和,价值和就行了 想着没写过01分数规划的博客,就顺便
阅读全文
摘要:【传送门:51nod-1201】 简要题意: 给出一个整数n,将N分为若干个不同整数的和,求有多少种不同的划分方式 题解: DP 设f[i][j]表示用i个数组成j的方案数,因为n<=50000,而且划分出来的数要不同,所以最多只能分成320(还要小一点)个数的和,所以i最大为320 转移=f[i]
阅读全文
摘要:【传送门:51nod-1189】 简要题意: 给出一个数n,求出有多少个正整数x,y(0<x<=y)满足 题解: 一开始还以为不可做 结果推一下柿子就会了 可以转化为 又可以转化为,得到$
阅读全文
摘要:【传送门:51nod-1140】 简要题意: 给出矩阵A,B,C,判断A*B是否等于C 题解: 对于一般的判定,自然是n3将A*B求出来,然后再逐位判断 但是这自然是超时的 那么我们可以随机出一个高度为1,长度为n的矩阵X 如果A*B=C,那么根据结合律我们可以得到X*A*B=X*C,而求X*A*B
阅读全文
摘要:【传送门:51nod-1131】 简要题意: 给出A,B,表示有一个区间为A到B 给出X,Y,表示有一个区间为X到Y 求出X到Y中能够被A到B中的数(可重复)相加得到的不同的数的个数 题解: 乱搞题,暴力显然不行,但是我们会发现l到r中的数能被表示出来,那么k*l到k*r的数也能被表示出来(k为常数
阅读全文
摘要:Codeforces Round #513(Div.1+Div.2) 闲谈: 重新写博客的第一场比赛,感觉炸裂,成功被Rose和xgcD飞 A 题目: 给出一段长为n个数字字符串,求出能用里面的字符来构成多少个长度为11且开头字符为8的字符串 题解: 直接在n/11和8出现的数量中取min就可以了
阅读全文
摘要:【传送门:BZOJ1791】 简要题意: 给出一张有n个点的图,有n条双向边,长度为Li 每个点只能走一次 一个人可以到另一个连通块当且仅当现在所在的点所有与它相连的点都被走过,那么他就可以到另一个连通块的任意一个点 这个人可以从任意一个点开始行走 求出最大行走的边的长度和 题解: 就是求基环树森林
阅读全文
摘要:【传送门:BZOJ1102】 简要题意: 给出一张n*n的图,每个格子有一个高度,一个格子的八个方向为它的相邻格子,高度相同的相邻的格子形成连通块,一个连通块的相邻格子的高度如果都比连通块的高度大,则这个连通块称为山谷,如果都比连通块高度小,则称为山峰 特殊的,如果整张图的高度都相同,则整张图既为山
阅读全文