51Nod
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
【JZOJ5330】【NOIP提高组模拟】密码(库默尔定理、数位DP)
DescriptionSolution这题和[51Nod 1569二项式系数的个数]是用一道题。 就是要求Cmn|pkC_{n}^m|p^k 根据库默尔定理,CmnC_{n}^m中p的次幂数就是n+m(加法)在p进制下的进位次数。 那么题意就变成了选小于等于n的两个数,在p进制下的进位次数为k。 知道这个之后我们就可以数位DP。 我们设f[i][j][k][l]表示做到第i为,进位次数为j原创 2017-08-23 22:24:42 · 1548 阅读 · 0 评论 -
【51Nod 1463】找朋友
Description给定: 两个长度为n的数列A 、B 一个有m个元素的集合K 询问Q次 每次询问[l,r],输出区间内满足|Bi-Bj|∈K 的最大Ai+Aj数据约定: n,Q<=100000 m <= 10 0<=A[i]<=1000000000 1<=B[i]<=n 1<=K[i]<=n 保证B[i]互不相等Solution这是一道需要认真看题的题目。 因为要询问[l,原创 2016-12-22 15:56:14 · 937 阅读 · 0 评论 -
【51 Nod1378】夹克老爷的愤怒
Description夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织起来暴力抗租。 夹克老爷很愤怒,他决定派家丁常驻村中进行镇压。 诺德县 有N个村庄,编号0 至 N-1,这些村庄之间用N - 1条道路连接起来。 家丁都是经过系统训练的暴力机器,每名家丁可以被派驻在一个村庄,并镇压当前村庄以及距离该村庄不超过K段道路的村庄。 夹克老爷一贯奉行最小成本最大利润的原则,请原创 2016-12-16 22:46:54 · 662 阅读 · 0 评论 -
【51Nod 1294】修改数组
Description给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数。问最少需要修改几个数?Solution首先需要严格递增,而且要改成正整数。 那么就是第i位至少要是i,那么如果a[i]Code#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#i原创 2016-12-07 22:24:11 · 843 阅读 · 0 评论 -
【51Nod 1556】计算
Description有一个1*n的矩阵 固定第一个数为1 其他填正整数 且相邻数的差不能超过1 求方案数%1e9+7的结果Solution我们观察一下从i推到i+1的数里面,除了是1的数要乘2,其他的都要乘3。 那么现在的问题就是在一个二维平面里面,从(0,0)走到(i,0)可以向上,向下向右走一格,但是只能在第一象限,有多少种走法? 到网上看看了,这个就是默慈金数: m[i]=m[i−1原创 2016-12-05 22:14:28 · 1070 阅读 · 0 评论 -
【51Nod 1383】整数分解为2的幂
Description任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。 比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution看到这题就是一个递推题,在数学课上不听讲找原创 2016-12-05 21:17:41 · 1131 阅读 · 0 评论 -
【51Nod 1515】明辨是非
Description给n组操作,每组操作形式为x y p。当p为1时,如果第x变量和第y个变量可以相等,则输出YES,并限制他们相等;否则输出NO,并忽略此次操作。当p为0时,如果第x变量和第y个变量可以不相等,则输出YES,并限制他们不相等 ;否则输出NO,并忽略此次操作。Solution这是一道很经典的题目。 如果只有强制相同集合的话,那么这题是很简单的。 但是,强制不相等的情况怎么办?原创 2016-12-04 10:29:20 · 914 阅读 · 0 评论 -
【51Nod1120】机器人走方格 V3
DescriptionN * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。Solution这个东西一看就想到了卡特兰数。 那么答案就等于2∗Cn−12∗n−2n{2*C_{2*n-2}^{n-1}}\over n 然后用Lucas定理做一原创 2016-12-03 20:06:21 · 827 阅读 · 0 评论 -
【51 Nod 1743】 雪之国度
Description雪之国度有N座城市,依次编号为1到N,又有M条道路连接了其中的城市,每一条道路都连接了不同的2个城市,任何两座不同的城市之间可能不止一条道路。雪之女王赋予了每一座城市不同的能量,其中第i座城市被赋予的能量为Wi。 如果城市u和v之间有一条道路,那么只要此刻雪之女王的能量不小于|Wu-Wv|,这条道路就是安全的。如果城市u和v之间存在两条没有重复道路的安全路径(其中原创 2016-11-16 22:48:31 · 704 阅读 · 0 评论 -
【51Nod 1319】跳跃游戏
Description有一个可以在二维平面上做跳跃的机器人,该机器人有独特的跳跃程序。该程序的跳跃距离是由一个循环序列S决定的。序列S有无穷多项,但其有一个最小周期序列,令其为A,A中有N个元素(N<=50),S[i]=A[i mod N],i从0取到正无穷。例如,A={2,5,1,1}那么S={2,5,1,1,2,5,1,1,2,5,1,1…..}。机器人的跳跃规则如下:第k次跳跃时,机器人可以跳原创 2016-11-12 22:39:49 · 1019 阅读 · 0 评论 -
【51Nod 1610】路径计数
Description路径上所有边权的最大公约数定义为一条路径的值。 给定一个有向无环图。 T次修改操作,每次修改一条边的边权,每次修改后输出有向无环图上路径的值为1的路径数量(对1,000,000,007取模)。Solution我们看到gcd=1的这个东西,一定要想想容斥可不可以(1的倍数的个数-2的倍数的个数-3的倍数的个数-5的倍数的个数……这个可以直接用莫比乌斯函数来搞)。 设f[i]原创 2016-12-23 22:09:40 · 1148 阅读 · 0 评论 -
【51Nod 1189】阶乘分数
Description1/N! = 1/X + 1/Y(0 < x<=y),给出N,求满足条件的整数解的数量。例如:N = 2,1/2 = 1/3 + 1/6,1/2 = 1/4 + 1/4。由于数量可能很大,输出Mod 10^9 + 7。Solution看到式子,直接考虑把式子简化,一般规律就是把等式两边全部变成乘号。 1n!=1x+1y{1\over n!}={1\over x}+{1\ove原创 2016-12-18 07:20:32 · 1060 阅读 · 0 评论 -
【51Nod1462】树据结构
Description给一颗以1为根的树。 每个点有两个权值:vi, ti,一开始全部是零。 Q次操作: 读入o, u, d o = 1 对u到根上所有点的vi += d o = 2 对u到根上所有点的ti += vi * d 最后,输出每个点的ti值(n, Q <= 100000) 有50%的数据N,Q <= 10000 注:所有数64位整数不会爆。Solution这道题目离线很原创 2017-03-14 22:42:48 · 793 阅读 · 0 评论 -
【51Nod 1184】第N个质数
Description第1个质数是2,第3个质数是5,给出一个数N,求第N个质数。Solution很明显这个要二分答案。 现在的主要问题就是求f[i]表示i里面有多少个质数。 这里可以用个非正式的洲阁筛。 设 f[i]表示i以内有多少个质数f[i]表示i以内有多少个质数 p[i]表示第i个质数p[i]表示第i个质数 g[i][j]表示前i个数不被p[1...j]整除的数有多少个g[i][原创 2017-01-26 22:14:31 · 1963 阅读 · 4 评论 -
【51Nod 1362】搬箱子
Description有一个n*m的棋盘,左上角为(0,0),右下角为(n,m).在左上角有一个箱子(箱子是放在交叉点上的)。现在要把箱子搬到最后一排。搬的时候只有向右,向下,或者向右下方走一步。也就是说,假如箱子在(x,y),那么下一步只能把他搬到(x+1,y)或(x,y+1)或(x+1,y+1).问有多少种的走法可以把箱子从左上角搬到最后一排。由于数目巨大,对X取余输出即可。Solution设f原创 2017-02-14 16:01:25 · 1228 阅读 · 0 评论 -
【51Nod 1333】 无聊的数学家们
Description问题来自于一个精彩的故事: 有三个数学家,A,B与C。A选了两个正整数x与y满足x<=y。然后,A将x+y的值告诉了B,A又将x*y的值告诉了C。B与C都不知道x与y分别是什么,也不知道对方得到的值是什么。但B和C知道A告诉B的值是某两个正整数的“和”而告诉C的值是这两个数的“积”。而且这三个数学家的数学功底足够好。下面是B与C进行的对话: B:“我确定你一定没有百分百的把原创 2017-01-23 15:30:38 · 955 阅读 · 0 评论 -
【51Nod 1187】寻找分数
Description给出 a,b,c,d, 找一个分数p/q,使得a/b < p/q < c/d,并且q最小。例如:1/3同1/2之间,符合条件且分母最小的分数是2/5。(如果q相同,输出p最小的)Solution一开始简单的二分,结果用了好久的时间来搞,发现有问题。 其实当时隐隐约约想到用类欧几里得算法来做,但是并没有打过不敢打。 咨询了一下大佬之后,发现就是类欧几里得算法。 设当前的答案原创 2017-01-21 22:43:28 · 1134 阅读 · 0 评论 -
【51Nod 1269 】Devu and Flowers
DescriptionN个盒子,每个盒子里面有一种颜色的花,数量为si,N个盒子里花的颜色各不相同,但同一个盒子里面的花认为是相同的,现在需要选出K朵花,有多少种不同的方案?由于结果很大,输出Mod 1000000007的结果即可。 例如:3个盒子,花的数量分别为1 3 2,需要选出5朵花,那么可以有如下3种方案:{1, 2, 2}, {0, 3, 2}, {1, 3, 1}。Solution一开原创 2017-01-19 18:07:41 · 640 阅读 · 0 评论 -
【51Nod 1149】Pi的递推式
DescriptionF(x) = 1 (0 <= x < 4) F(n) = F(n - 1) + F(n - pi) (4 <= x) Pi = 3.1415926535….. 现在给出一个N,求F(n)。由于结果巨大,只输出Mod 10^9 + 7的结果即可。Solution之前在做斐波那契额数列的第n项的时候,可以考虑为从0开始,可以选择+1或+2,一直加到n的方案数。 那么这道题也原创 2017-02-18 08:52:31 · 776 阅读 · 0 评论 -
【51 Nod 1326】遥远的旅途
Description一个国家有N个城市,这些城市被标为0,1,2,…N-1。这些城市间连有M条道路,每条道路连接两个不同的城市,且道路都是双向的。一个小鹿喜欢在城市间沿着道路自由的穿梭,初始时小鹿在城市0处,它最终的目的地是城市N-1处。小鹿每在一个城市,它会选择一条道路,并沿着这条路一直走到另一个城市,然后再重复上述过程。每条道路会花费小鹿不同的时间走完,在城市中小鹿不花时间逗留。路程中,小鹿可原创 2017-02-09 16:21:09 · 1063 阅读 · 0 评论 -
【51 Nod 1203】JZPLCM
Description长度为N的正整数序列S,有Q次询问,每次询问一段区间内所有数的lcm(即最小公倍数)。由于答案可能很大,输出答案Mod 10^9 + 7。 例如:2 3 4 5,询问[1,3]区间的最小公倍数为2 3 4的最小公倍数 = 12。Solution一段数的最小公倍数中每个质数的指数就是这段数的这个质数出现的最大次数。 那么现在的问题就是怎么去维护一个质数的最大出现次数。 有很原创 2017-02-07 17:20:36 · 526 阅读 · 0 评论 -
【51Nod 1103】N的倍数
Description一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。Solution好机智的一道题目。想了好久才想出来。 首先想到的是每个数都要去mod N。然后这些数只会出现在[0,N-1]之间。 之后就不知道要怎么做了。 然后观察了一下,那么数的范原创 2016-10-20 20:09:57 · 1388 阅读 · 0 评论 -
【51Nod 1052】 最大M子段和
DescriptionN个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的。如果M >= N个数中正数的个数,那么输出所有正数的和。 例如:-2 11 -4 13 -5 6 -2,分为2段,11 -4 13一段,6一段,和为26。Solution刷刷水有益身心健康。 不过我还是没有一眼看出来。 考虑DP的以为必须选和可选可原创 2016-10-20 19:58:31 · 1072 阅读 · 0 评论 -
【51Nod 1180】方格射击游戏
DescriptionM*N的方格矩阵,一个人在左下角格子的中心,除他所站位置外,其他格子的中心都有一个敌人,他一次可发射一枚子弹干掉一条直线上的所有敌人,问至少要发射多少子弹才能干掉所有敌人。Solution在一条直线上如果经过了两个点及以上,那么第一个经过的点一定是互质的,因为经过的第一个点的斜率就可以确定,如果不是互质,那么肯定是在前面确定的。 所以答案等于2+∑n−1i=1∑m−1j=1(原创 2016-10-20 19:55:55 · 1121 阅读 · 0 评论 -
【51Nod 1806】wangyurzee
Descriptionwangyurzee有n个各不相同的节点,编号从1到n。wangyurzee想在它们之间连n-1条边,从而使它们成为一棵树。 可是wangyurzee发现方案数太多了,于是他又给出了m个限制条件,其中第i个限制条件限制了编号为u[i]的节点的度数不能为d[i]。 一个节点的度数,就是指和该节点相关联的边的条数。 这样一来,方案数就减少了,问题也就变得容易了,现在请你告诉w原创 2016-09-06 17:28:35 · 701 阅读 · 3 评论 -
【51Nod1133】不重叠的线段
DescriptionX轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。 例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。Solution经典的序列上的区间问题。明显的贪心把右端点从小到大排一个序(第一关键字),左端点从小到大排一个序(第二关键字)。 然后模拟一遍就可以了。为什么这样是对的很明原创 2016-08-31 18:41:47 · 1456 阅读 · 0 评论 -
【51Nod 1379】索函数
DescriptionFib[0]=0,Fib[1]=1,Fib[n]=Fib[n-1]+Fib[n-2] if n>1. 定义索函数Sor(n)=Fib[0]| Fib[1] |Fib[2]|…|Fib[n]. 给定整数n,要求计算Sor(n)%1,000,000,007(1e9+7).Solution因为是斐波拉切数列,所以每一个二进制位至少都会有一个1,所以最后的索函数的二进制位上的所有1原创 2016-07-08 22:25:04 · 766 阅读 · 0 评论 -
【51Nod 1239】欧拉函数之和
Description对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler’s totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。 S(n) = Phi(1) + Phi(2) + …… Phi(n),给出n,求S(n),例如:n = 5,S(n) = 1 +原创 2016-07-08 22:11:22 · 1362 阅读 · 0 评论 -
【51Nod1244】莫比乌斯函数之和
Description莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0。例如:miu(4), miu(12), miu(18) = 0。 如果一个数不包含平方因子,并且有k个不同的质因子,那么miu(n) = (-1)^k。例如:miu(2), miu原创 2016-07-06 21:58:41 · 2494 阅读 · 0 评论 -
【51Nod 1188】最大公约数之和2
Description给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和。 G=∑i<Ni=1∑j≤Nj=i+1gcd(i,j)G=\sum_{i=1}^{i<N}\sum_{j=i+1}^{j≤N}gcd(i,j) 相当于计算这段程序(程序中的gcd(i,j)表示i与j的最大公约数): G=0; for(i=1;iSolution跟最大公约数和很像啦。这只是加强版而已。 范围原创 2016-07-06 19:46:09 · 1029 阅读 · 0 评论 -
【51Nod 1040】最大公约数之和
Description给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15Solution很简单的一道题啊! 首先找出n的所有因数。 然后求这些因数的贡献,就是所有的gcd(n,i)=x,那么就是gcd(n/x,i/x)=1,符合的数的个数有ϕ(n/x)\phi(n/x)个,然后就直接搞过原创 2016-07-06 16:44:24 · 975 阅读 · 0 评论 -
【51Nod 1691】比大小
Description有两个数列A和B有两个数列A和B 已知A0,a,b,N已知A_0,a,b,N An=A(n−1)∗a+b(n>=1)A_n=A_(n-1)*a+b (n>=1) B数列满足B数列满足 Bn=2∗B(n/2)+1(n为偶数)B_n=2*B_(n/2) + 1 (n为偶数) Bn=2∗B((n−1)/2)+(n+1)/2(n为奇数)B_n=2*B_((n-1)/2) +原创 2016-07-06 10:34:45 · 741 阅读 · 0 评论 -
【51Nod 1479】小Y的数论题
Description小Y喜欢研究数论,并且喜欢提一些奇怪的问题。 这天他找了三个两两互质的数a, b, c,以及另一个数m, 现在他希望找到三个(0, m)范围内的整数x, y, z,使得 (xa+yb)modm=(zc)modm(x^a+y^b) \mod m=(z^c) \mod m Solution这道构造题,好机智啊!往扩展欧几里得想因为存在很多解,我们看看存不存在以2为底的解。原创 2016-07-05 20:26:32 · 855 阅读 · 0 评论 -
【51Nod 1472&&CF 549F】取余最大值
Description有一个长度为n的数组a,现在要找一个长度至少为2的子段,求出这一子段的和,然后减去最大值,然后对k取余结果为0。 问这样的子段有多少个。 样例解释:下标从1开始,对应的三个区间为[1:3],[1:4],[3:4]Solution很有意思的一道题目。 首先,我们做最大值,很容易想到,找到所有的最大值,然后去扩展区间,可以用O(n)预处理。出l,r数组。 如果最大值为a,那原创 2016-09-22 17:12:20 · 1139 阅读 · 0 评论 -
【51Nod1277】字符串中的最大值
Description一个字符串的前缀是指包含该字符第一个字母的连续子串,例如:abcd的所有前缀为a, ab, abc, abcd。 给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值。 例如:S = “abababa” 所有的前缀如下:“a”, 长度与出现次数的乘积 1 * 4 = 4, “ab”,长度与出现次数的乘积 2 * 3 = 6, “aba”, 长度与出现次数的原创 2016-09-19 22:13:07 · 1079 阅读 · 0 评论 -
【51Nod 1241】特殊的排序
Solution一个数组的元素为1至N的整数,现在要对这个数组进行排序,在排序时只能将元素放在数组的头部或尾部,问至少需要移动多少个数字,才能完成整个排序过程? 例如: 2 5 3 4 1 将1移到头部 => 1 2 5 3 4 将5移到尾部 => 1 2 3 4 5 这样就排好了,移动了2个元素。给出一个1-N的排列,输出完成排序所需的最少移动次数。Description看到这题就一脸懵原创 2016-10-20 19:00:47 · 557 阅读 · 0 评论 -
【51Nod 1110 】距离之和最小 V3
DescriptionX轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。该点到其他点的带权距离 = 实际距离 * 权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。Solution看到这个n个点到一个点的“距离和最小”,就要想到中位数。 但是它带权,那么怎么办? 其实一个坐标为x,带了个权w,就相当于有w个x,因为如果最优位置在y处,前者的原创 2016-10-30 16:55:09 · 765 阅读 · 0 评论 -
【51Nod 1363】最小公倍数之和
Description给出一个n,求1-n这n个数,同n的最小公倍数的和。 例如:n = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66。 由于结果很大,输出Mod 1000000007的结果。Solution做这道题,这是历经波澜! ans=∑ni=1gcd(i,n)ans=\sum_{i=1}^n gcd(i,n) 设f原创 2016-10-04 22:21:07 · 1814 阅读 · 0 评论 -
【51Nod 1086】背包问题 V2
Description有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。Solution这是一个经典的有限背包问题,但是它需要优化复杂度。 他用到了一个很奇妙也很机智的思想:每个数可以用二进制来表示。二进制优化因为每个数的个数如果逐个枚举原创 2016-10-24 20:29:20 · 910 阅读 · 0 评论 -
【51Nod算法马拉松18 C】数值计算
Description令 F(x)=∑wk=1(Ak+sin(k)∗sin(x+k)+Bk+cos(k)∗cos(x+k))F(x)=∑_{k=1}^w({{A}\over{k+sin(k)}}*sin(x+k)+{{B}\over {k+cos(k)}}*cos(x+k)) 求F(x)=0的前n小的正根的和。 n<=3e6,A<=1e3,B<=1e3 其中w是定值,为1e4 保留到小数点原创 2016-09-25 09:59:19 · 713 阅读 · 0 评论