51Nod
萧瑟1
这个作者很懒,什么都没留下…
展开
-
51Nod 1256 乘法逆元 扩展欧几里得
1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)...原创 2018-10-15 20:43:44 · 174 阅读 · 0 评论 -
51Nod 1596 搬货物
现在有n个货物,第i个货物的重量是 2wi2wi 。每次搬的时候要求货物重量的总和是一个2的幂。问最少要搬几次能把所有的货物搬完。样例解释:1,1,2作为一组。3,3作为一组。收起输入单组测试数据。第一行有一个整数n (1≤n≤10^6),表示有几个货物。第二行有n个整数 w1,w2,...,wn,(0≤wi≤10^6)。输出输出最少的运货次数。输入样...原创 2018-11-09 14:38:52 · 140 阅读 · 0 评论 -
51Nod 1096 距离之和最小
X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。收起输入第1行:点的数量N。(2 <= N <= 10000)第2 - N + 1行:点的位置。(-10^9 <= P[i] <= 10^9)输出输出最小距离之和输入样例5-1-3079输出样例20 画图就能看出规律来了。先将给出...原创 2018-11-09 14:43:30 · 331 阅读 · 0 评论 -
51Nod 1428 活动安排问题 贪心
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? 收起输入第一行一个正整数n (n <= 10000)代表活动的个数。第二行到第(n + 1)行包含n个开始时间和结束时间。开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000输出一行包含一个整数表示最少教室的个数。...原创 2018-11-02 13:54:05 · 158 阅读 · 0 评论 -
51Nod 1092 回文字符串(区间dp)
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。收起输入输入一个字符串Str,Str的长度 <= 1000。输出输出最少添加多少个字符...原创 2018-11-02 15:02:47 · 183 阅读 · 0 评论 -
51Nod 1007 正整数分组 01背包
将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。收起输入第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N <= 100, 所有正整数的和 <= 10000)输出输出这个最小差输入样例512345输出样例1...原创 2018-11-02 19:28:23 · 182 阅读 · 0 评论 -
51Nod 1094 和为k的连续区间 前缀和+map应用
一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k。收起输入第1行:2个数N,K。N为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9)第2 - N + 1行:...原创 2018-11-04 21:29:32 · 336 阅读 · 0 评论 -
51Nod 1138 连续整数的和(等差数列)
给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。如果不能写为若干个连续整数的和,则输出No Solution。收起输入输入1个数N(3 <= N <= 10^9)。输出输出连续整数中的第1个数,如果有多个按照递增序排列,如果不能分解...原创 2018-11-07 19:23:51 · 171 阅读 · 0 评论 -
51Nod 1095 Anigram单词 (两次map)
一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的Anigram,例如单词army和mary互为Anigram。另:相同的2个单词不算Anigram。现在给定一个字典,输入Q个单词,从给出的字典中找出这些单词的Anigram。收起输入第1行:1个数N,表示字典中单词的数量。(1 <= N <= 10000)第2 - N + 1行,字典中的单词,...原创 2018-11-05 16:00:24 · 379 阅读 · 0 评论 -
51Nod 1133 不重叠的线段 (贪心)
X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。收起输入第1行:1个数N,线段的数量(2 <= N <= 10000)第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <=...原创 2018-11-08 08:24:40 · 140 阅读 · 0 评论 -
51Nod 1279 扔盘子
有一口井,井的高度为N,每隔1个单位它的宽度有变化。现在从井口往下面扔圆盘,如果圆盘的宽度大于井在某个高度的宽度,则圆盘被卡住(恰好等于的话会下去)。盘子有几种命运:1、掉到井底。2、被卡住。3、落到别的盘子上方。盘子的高度也是单位高度。给定井的宽度和每个盘子的宽度,求最终落到井内的盘子数量。 如图井和盘子信息如下:井:5 6 4 3 6 2 3盘子:2 3 5 ...原创 2018-11-09 00:14:53 · 100 阅读 · 0 评论 -
51Nod 1119 机器人走方格 (扩展欧几里得+逆元+求组合数)
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。收起输入第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 1000000)输出输出走法的数量 Mod 10^9 + 7。输入样例2 3输出样例3第一次本着试试的想法写了个递归。...原创 2018-11-06 09:40:43 · 161 阅读 · 0 评论 -
51Nod 1067 Bash游戏 V2 找规律
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N = 2。A只能拿1颗,所以B可以拿到最后1颗石子。收起输入第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行1个数N。(1...原创 2018-11-01 20:07:20 · 1240 阅读 · 0 评论 -
51Nod 1242 斐波那契数列的第N项 矩阵快速幂
斐波那契数列的定义如下: F(0) = 0F(1) = 1F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...)给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可。Input输入1个数n(1...原创 2018-10-15 21:06:32 · 154 阅读 · 0 评论 -
51nod 1079 中国剩余定理 模板
一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。例如,K % 2 = 1, K % 3 = 2, K % 5 = 3。符合条件的最小的K = 23。Input第1行:1个数N表示后面输入的质数及模的数量。(2 <= N <= 10)第2 - N + 1行,每行2个数P和M,中间用空格分隔,P是质数,M是K % P的结果。(2 <= P <= ...原创 2018-10-16 15:03:57 · 121 阅读 · 0 评论 -
51nod 1649 齐头并进
在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过m条双向火车铁轨相连。当然某些小镇之间也有公路相连。为了保证每两个小镇之间的人可以方便的相互访问,市长就在那些没有铁轨直接相连的小镇之间建造了公路。在两个直接通过公路或者铁路相连的小镇之间移动,要花费一个小时的时间。现在有一辆火车和一辆汽车同时从小镇1出发。他们都要前往小镇n,但是他们中途不能同时停在同一个小镇(但是可以同时停在小镇...原创 2018-10-31 08:49:21 · 166 阅读 · 0 评论 -
51nod 2133 排队接水 排序
n个人一起排队接水,第i个人需要b[i]的时间来接水。1 <= n <= 10000 <= b[i] <= 1000同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。完成接水的人会立刻消失,不会继续等待。你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。收起输入第一行一个整数n接下来n行,每行一个整数表示b[i]...原创 2018-10-31 12:29:24 · 260 阅读 · 0 评论 -
51Nod 1010 只包含2 3 5的数
K的因子中只包含2 3 5。满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15。所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数。例如:n = 13,S中 >= 13的最小的数是15,所以输出15。收起输入第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T ...原创 2018-10-31 16:50:32 · 148 阅读 · 0 评论 -
51Nod 1014 X^2 Mod P 二分查找+余数的性质
X*X mod P = A,其中P为质数。给出P和A,求<=P的所有X。收起输入两个数P A,中间用空格隔开。(1 <= A < P <= 1000000, P为质数)输出输出符合条件的X,且0 <= X <= P,如果有多个,按照升序排列,中间用空格隔开。如果没有符合条件的X,输出:No Solution输入样例13 3...原创 2018-10-31 18:58:57 · 153 阅读 · 0 评论 -
51Nod 1001 数组中和等于K的数对 二分查找
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。收起输入第1行:用空格隔开的2个数,K N,N为A数组的长度。(2 <= N <= 50000,-10^9 <= K <= 10^...原创 2018-10-31 19:59:48 · 199 阅读 · 0 评论 -
51Nod 1062 序列中最大数 打表
有这样一个序列a:a[0] = 0a[1] = 1a[2i] = a[i]a[2i+1] = a[i] + a[i+1] 输入一个数N,求a[0] - a[n]中最大的数。a[0] = 0, a[1] = 1, a[2] = 1, a[3] = 2, a[4] = 1, a[5] = 3, a[6] = 2, a[7] = 3, a[8] = 1, a[9] = 4, ...原创 2018-10-31 20:45:02 · 171 阅读 · 0 评论 -
51Nod 1013 3的幂的和 快速幂+逆元
求:3^0 + 3^1 +...+ 3^(N) mod 1000000007收起输入输入一个数N(0 <= N <= 10^9)输出输出:计算结果输入样例3输出样例40 等比数列求和公式:Sum=a1*(1-q^n)/(1-q),所以可以转化为:Sum=(3^(n+1)-1)/2;因为数太大,需要利用逆元来代替/2运算。因...原创 2018-10-31 21:17:30 · 159 阅读 · 0 评论 -
51Nod 1021 石子合并 区间dp
N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。 例如: 1 2 3 4,有不少合并方法1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19)1 2 3 4 => 1 5 4(5) => 1 9(14) =&g...原创 2018-11-03 09:18:31 · 179 阅读 · 0 评论 -
51Nod 1098 最小方差 化简公式
题目:传送门由方差的性质得出,方差最小值一定在连续有序的m项产出。所以先对给出的数字按照从小到大的顺序排序。然后化简公式。因为方差s^2 = 1/n * [(x1-k)^2+(x2-k)^2+.......+(xn-k)^2];题目要求ans=s^2*n,则ans=[(x1-k)^2+(x2-k)^2+.......+(xn-k)^2];ans=x1^2-2x1*k+k...原创 2018-11-14 19:23:57 · 298 阅读 · 0 评论