51nod
inklutcuah
这个作者很懒,什么都没留下…
展开
-
【51nod1076】【2条不相交的路径】【图论】【边双连通分量】
题目大意给出一个无向图G的顶点V和边E。进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径。(两条路径不经过相同的边)解题思路求边双连通分量,在同一个分量中的点输出yes,否则输出no。code#include<cmath> #include<cstdio> #include<algorithm> #define LL long long #define min(原创 2016-11-30 17:23:36 · 1189 阅读 · 0 评论 -
【51nod1223】【分数等式的数量】【莫比乌斯反演】
题目大意有这样一个分数等式:1/X + 1/Y = 1/N,(X,Y,N > 0)。给出L,求有多少满足X < Y <= L的等式。例如:L = 12,满足条件的等式有3个,分别是:1/3 + 1/6 = 1/2, 1/4 + 1/12 = 1/3, 1/6 + 1/12 = 1/4。解题思路Ans=∑Nx=1∑Ny=x+1[(x+y)|(xy)]Ans=\sum_{x=1}^N\sum_{y=x+原创 2017-03-14 17:34:16 · 425 阅读 · 0 评论 -
【51nod1297】【管理二叉树】【点分治】
题目大意一个初始为空的二叉搜索树T,以及1到N的一个排列P: {a1, a2, …, aN}。我们向这个二叉搜索树T添加这些数,从a1开始, 接下来是 a2, …, 以aN结束。在每一个添加操作后,输出T上每对节点之间的距离之和。解题思路建树暴力会超时,观察可知一个点只会挂在比它小的点中最大的点的右边或比它大的点中最小的点的左边,并且有且只有一个位置是空的,我们可以用set来求这个。接下来就是建重心原创 2017-03-23 16:31:04 · 502 阅读 · 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 · 364 阅读 · 0 评论 -
【51nod1028】【大数乘法 V2】【fft】
题目大意给出2个大整数A,B,计算A*B的结果。解题思路fft,然而会卡精度,使用模运算的fft即可解决问题。code#include<cmath> #include<cstdio> #include<algorithm> #define LD double #define LL long long #define min(a,b) ((a<b)?a:b) #define max(a,b) ((a>原创 2016-12-08 15:55:05 · 350 阅读 · 0 评论 -
【51nod1051】【最大子矩阵和】【动态规划】
题目大意一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -1 2 -1 3 -3 1 2和最大的子矩阵是:3 -1 -1 3 1 2解题思路枚举左右边界,可以把中间的数压成一维,在从前往后扫,如果之前的最大和大于0,那肯定连上之前的数,否则则以当前数为起点肯定更优,复杂度就是n^3.code#include<cstd原创 2016-11-28 14:39:59 · 385 阅读 · 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 · 333 阅读 · 0 评论 -
【51nod1086】【背包问题 V2】【动态规划】【二进制分组】
题目大意有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。解题思路首先我们可以动态规划,直接做显然会t,我们可以考虑把多重背包转换成01背包,这样就可以很快得解。我们可以考虑二进制分组,首先低位的必须要有,这样保证我们可以组成前面的数,剩余原创 2016-12-02 22:01:32 · 525 阅读 · 0 评论 -
【51nod1040】【最大公约数之和】【欧拉函数】
题目大意给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 61,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15解题思路ans=∑x|nx∗∑ni=1gcd(i,n)==xans=\sum_{x|n}x*\sum_{i=1}^n gcd(i,n)==x=>ans=∑x|nx∗∑ni=1gcd(i/x,n/x)==xans=\sum_{x|n}x*\原创 2016-12-03 21:51:16 · 302 阅读 · 0 评论 -
【51nod1093】【骆驼和香蕉】【贪心】
题目大意一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距离 > K的地方。现在给出N和K,问骆驼走到目的地最少需要消耗多少香蕉。解题思路原来可以停在实数点!!!考虑从终点开原创 2016-12-02 20:21:09 · 634 阅读 · 0 评论 -
【51nod1105】【第K大的数】【二分答案】
题目大意数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ……A[1] * B[0],A[1] * B[1]……A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。例如:A:1 2 3,B:2 3 4。A与B组合成的C包括2 3 4 4 6 8 6 9 12共9个数。解题思路排序后二分答案,由于数的单调性原创 2016-12-01 18:48:49 · 620 阅读 · 0 评论 -
【51nod1222】【最小公倍数计数】【莫比乌斯反演】
题目大意定义F(n)表示最小公倍数为n的二元组的数量。即:如果存在两个数(二元组)X,Y(X <= Y),它们的最小公倍数为N,则F(n)的计数加1。例如:F(6) = 5,因为[2,3] [1,6] [2,6] [3,6] [6,6]的最小公倍数等于6。给出一个区间[a,b],求最小公倍数在这个区间的不同二元组的数量。例如:a = 4,b = 6。符合条件的二元组包括:[1,4] [2,4] [4原创 2017-03-16 12:20:47 · 465 阅读 · 0 评论