51nod
so_so_y
start to record bugs <- so hard so brave
展开
-
51nod 求递推序列的第N项(矩阵快速幂、模拟求循环长度)
Description有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值。Input输入3个数:A,B,N。数字之间用空格分割。(-10000 <= A, B <= 10000, 1 <= N <= 10^9)Output输出f(n)的值。Input示例3 -1 5原创 2017-10-14 11:11:56 · 237 阅读 · 0 评论 -
51nod 1572 宝岛地图(预处理+模拟)
Description勇敢的水手们到达了一个小岛,在这个小岛上,曾经有海盗在这里埋下了一些宝藏。然而,我们的船快抛锚了,与此同时,船长发现藏宝图的一角被老鼠咬掉了一块。藏宝图可以用一个n×m大小的矩形表示。矩形中的每一小块表示小岛中的一小块陆地(方块的边长为1米)。有一些方块表示的是海,这些块人是不能通过的。除了海不能走,其它的小方块都是可以行走的。在可行走区域里有一些小方块表示一些已知的...原创 2018-02-16 22:58:28 · 171 阅读 · 0 评论 -
51nod 1414 冰雕(思维+暴力)
Description白兰大学正在准备庆祝成立256周年。特别任命副校长来准备校园的装扮。 校园的中心竖立着n个冰雕。这些雕像被排在一个等分圆上,因此他们形成了一个正n多边形。这些冰雕被顺针地从1到n编号。每一个雕有一个吸引力t[i]. 校长来看了之后表示不满意,他想再去掉几个雕像,但是剩下的雕像必须满足以下条件: · 剩下的雕像必须形成一个正多边形(点数必须在3到n之间,...原创 2018-02-16 22:43:36 · 218 阅读 · 0 评论 -
51nod 1449 砝码称重(进制思想+贪心)
Description现在有好多种砝码,他们的重量是 w0,w1,w2,… 每种各一个。问用这些砝码能不能表示一个重量为m的东西。 样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中。Input单组测试数据。 第一行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。Output如果能,输出YES,否则输出NO。Input示例...原创 2018-02-16 21:53:57 · 417 阅读 · 0 评论 -
51nod 1419 最小公倍数挑战(数论)
Description几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。 我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。Input单组测试数据。 第一行有一个整数n (1≤n≤1,000,000)。Output输出一个整数表示选三个数字的最大的最小公倍数。Input示例97Output示例504210解题...原创 2018-02-16 19:46:16 · 206 阅读 · 0 评论 -
51nod 1049 1050 1051 (循环数组)最大子段(子矩阵)和(dp)
51nod 1049 最大子段和DescriptionN个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列的长度N(2 <= N <= 50...原创 2018-02-16 18:36:19 · 205 阅读 · 0 评论 -
51nod 1021 石子归并(区间dp)
DescriptionN堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的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...原创 2018-02-16 17:10:03 · 199 阅读 · 0 评论 -
51nod 1183 编辑距离(dp)
Description编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sitting: sitten (k->s) sittin (e->i) sitting (->g) 所以k...原创 2018-02-16 16:55:48 · 151 阅读 · 0 评论 -
FZU 2219 StarCraft(贪心+优先队列)
Problem DescriptionZB loves playing StarCraft and he likes Zerg most!One day, when ZB was playing SC2, he came up with an idea:He wants to change the queen’s ability, the queen’s new ability is ...原创 2018-02-15 20:22:21 · 368 阅读 · 0 评论 -
51nod 1420 数袋鼠好有趣 (贪心)
Description有n只袋鼠。每只袋鼠的大小用一个整数表示。一只小袋鼠能装进一只大袋鼠的条件是,大袋鼠的大小至少是小袋鼠的两倍。 每只大袋鼠最多可以装一只袋鼠。小袋鼠被装进大袋鼠之后就不能再装其它的袋鼠了。 小袋鼠被装进大袋鼠之后就不能被我们看见了。请找出一个装袋鼠的方案,使得被看见的袋鼠最少。Input单组测试数据。 第一行包含一个整数n(1≤n≤5*10^5)。 接下来...原创 2018-02-16 23:17:32 · 256 阅读 · 0 评论 -
51nod 1483 化学变换(思维)
Description有n种不同的化学试剂。第i种有ai升。每次实验都要把所有的化学试剂混在一起,但是这些试剂的量一定要相等。所以现在的首要任务是把这些化学试剂的量弄成相等。 有两种操作: · 把第i种的量翻倍,即第i种的量变成2ai。 · 把第i种的量减半,除的时候向下取整,即把第i种的量变成 ⌊ ai2 ⌋ 。 现在所有的化学试剂的量已知,问最少要变换多...原创 2018-02-16 23:09:09 · 353 阅读 · 0 评论 -
51nod 1521 一维战舰(二分)
题目描述爱丽丝和鲍博喜欢玩一维战舰的游戏。他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格)。在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博。每一只战舰的形状是 1×a 的长方形(也就是说,战舰会占据a个连续的方格)。这些战舰不能相互重叠,也不能相接触。然后鲍博会做一系列的点名。当他点到某个格子的时候,爱丽丝会告诉他那个格子是否被某只战舰占据。如果是,就...原创 2018-04-06 18:34:33 · 188 阅读 · 0 评论 -
51nod 1042 数字0-9的数量(数位dp)
题目描述给出一段区间a-b,统计这个区间内0-9出现的次数。 比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次。Input两个数a,b(1 <= a <= b <= 10^18)Output输出共10行,分别是0-9出现的次数Input示例10 19...原创 2018-04-12 14:53:03 · 298 阅读 · 0 评论 -
51nod 1185 威佐夫游戏 V2
题目描述有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。 例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <...原创 2018-04-05 14:04:08 · 111 阅读 · 0 评论 -
51nod 1459 迷宫游戏(spfa)
Description你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快...原创 2018-04-11 21:31:58 · 199 阅读 · 0 评论 -
51nod 1067 Bash游戏 V2(找规律)
题目大意有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N = 2。A只能拿1颗,所以B可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000) 第2 - T + 1行:每行...原创 2018-04-03 17:18:23 · 169 阅读 · 0 评论 -
51nod 1365 Fib(N) mod Fib(K) & 蓝桥杯 斐波那契(数论)
51nod 1365 Fib(N) mod Fib(K) DescriptionFib(N)表示斐波那契数列的第N项(F(0) = 0, F(1) = 1),给出N和K,求Fib(N) mod Fib(K)。由于结果太大,输出Mod 1000000007的结果。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 50000) 第2...原创 2018-03-08 19:26:12 · 593 阅读 · 0 评论 -
51nod 1421 最大MOD值(思维)
Description有一个a数组,里面有n个整数。现在要从中找到两个数字(可以是同一个) ai,aj ,使得 ai mod aj 最大并且 ai ≥ aj。Input单组测试数据。 第一行包含一个整数n,表示数组a的大小。(1 ≤ n ≤ 2*10^5) 第二行有n个用空格分开的整数ai (1 ≤ ai ≤ 10^6)。Output输出一个整数代表最大的mod值。In...原创 2018-02-16 23:29:06 · 521 阅读 · 0 评论 -
51nod 1489 蜥蜴和地下室(dfs)
Description哈利喜欢玩角色扮演的电脑游戏《蜥蜴和地下室》。此时,他正在扮演一个魔术师。在最后一关,他必须和一排的弓箭手战斗。他唯一能消灭他们的办法是一个火球咒语。如果哈利用他的火球咒语攻击第i个弓箭手(他们从左到右标记),这个弓箭手会失去a点生命值。同时,这个咒语使与第i个弓箭手左右相邻的弓箭手(如果存在)分别失去b(1 ≤ b < a ≤ 10)点生命值。 因为两个端点的弓...原创 2018-02-16 21:24:06 · 318 阅读 · 0 评论 -
51nod 1117 聪明的木匠 (贪心+优先队列)
Description一位老木匠需要将一根长的木棒切成N段。每段的长度分别为L1,L2,……,LN(1 <= L1,L2,…,LN <= 1000,且均为整数)个长度单位。我们认为切割时仅在整数点处切且没有木材损失。 木匠发现,每一次切割花费的体力与该木棒的长度成正比,不妨设切割长度为1的木棒花费1单位体力。例如:若N=3,L1 = 3,L2 = 4,L3 = 5,则木棒原长为1...原创 2018-02-15 19:17:34 · 378 阅读 · 0 评论 -
51nod 1086 背包问题 V2 (多重背包二进制优化)
Description有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。Input第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <=...原创 2018-02-15 16:35:58 · 165 阅读 · 0 评论 -
51nod 1836 战忽局的手段(期望+矩阵快速幂)
众所周知,有一个神秘的组织——战忽局,在暗中保护着我们。在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人。如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事,于是决定再次用忽悠来保证战忽局的安全。局座将发表m次演讲,每一天他都会从n事件中等概率地挑选一件混淆众人,由于局座每天很忙,不能把之前将的事件都记录下来,因此他可能会重复选择某一件事。现在局座想知道,m原创 2017-11-03 18:38:52 · 271 阅读 · 0 评论 -
51nod 1246 罐子和硬币(贪心)
Description有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,你可以把这k个硬币任意分配到罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。每次你可以询问某个罐子,如果该罐子里有硬币,则你可以得到1个(但你不知道该罐子中还有多少硬币),如果该罐子是空的,你得不到任何硬币,但会消耗1次询问的机会。你最终要得到至少c枚硬币(c <= k),问题是给原创 2017-11-03 15:45:18 · 304 阅读 · 0 评论 -
51nod 1829 函数(组合数+容斥)
Description想知道f:A->B这个函数(其中|A|=n, |B|=m)的所有映射关系要使B的每个元素都要被A的一个元素覆盖到。 数字可能很大你只要输出方案数模1,000,000,007即可。Input一共一行两个数,n和m。(1<=n,m<=1,000,000)Output一共一行包含一个方案数。Input示例2 2Output示例2解题思路映射是在A中的每个元素在B中都有唯一一个与原创 2017-11-03 15:27:10 · 229 阅读 · 0 评论 -
51nod 1445 变色DNA(最短路)
Description有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2…N-1。研究发现这只狼的基因中存在一个变色矩阵,记为colormap,如果colormap[i][j]=’Y’则这只狼可以在某一个夜晚从颜色i变成颜色j(一晚不可以变色多次),如果colormap[i][j]=‘N’则不能在一个晚上从i变成j色。进一步研究发现,这只狼每次变色并不原创 2017-10-26 10:34:28 · 338 阅读 · 0 评论 -
51nod 1693 水群(spfa最短路)
Description总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西。 比如现在,bx2k就在研究怎样水表情的问题。 首先,bx2k在对话框中输入了一个表情,接下来,他可以进行三种操作。 第一种,是全选复制,把所有表情全选然后复制到剪贴板中。 第二种,是粘贴,把剪贴板中的表情粘贴到对话框中。 第三种,是退格,把对话框中的最后一个表情删去。 假设当前原创 2017-10-25 22:25:09 · 344 阅读 · 0 评论 -
51nod 1444 破坏道路 最短路
Description在某一个国家,那儿有n个城市,他们通过m条双向道路相连。城市从1到n编号。如果城市a和b通过一条道路直接相连,那么他们之间的距离就是一个小时。这个国家的道路网络可以允许你从任意一个城市到达另外的城市。 现在你要破坏尽可能多的道路,但是要保证从城市s1到t1不超过l1小时,并且从城市s2到t2不超过l2小时。 输出最多可以破坏的道路数目,如果没有解,请输出-1Input单组测原创 2017-10-23 22:14:49 · 273 阅读 · 0 评论 -
51nod 1109 01组成的N的倍数(宽搜+剪枝)
Description给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1。求最小的M。 例如:N = 4,M = 100。Input输入1个数N。(1 <= N <= 10^6)Output输出符合条件的最小的M。Input示例4Output示例100解题思路主要是一个很重要的剪枝——余数的标记,当一个余数已经出现过一次后,在放到队列里进行搜索时多余的运算原创 2017-10-14 20:27:50 · 325 阅读 · 0 评论 -
51nod 1705 七星剑(期望DP)
Description夹克村附近来了一个大魔王,为了保护村民们的安全,夹老爷选出勇士准备去消灭这个大魔王。为了提高勇士的战斗力,夹克老爷决定出资为这个勇士打造一把神兵——七星剑。要打造一把七星剑,得在剑上镶嵌7颗魔法石,在夹克村中一共找到N种不同的魔法石,标号为1,2,3..,N,每种魔法石都有很多个,其中,第i种魔法石售价为C(i)夹克币。打造七星剑需要将魔法石一颗一颗的炼化上去,每成功炼化一次称原创 2017-10-31 17:38:54 · 413 阅读 · 0 评论 -
51nod 1287 加农炮
Description一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果H <= A[0],则这个炮弹无效,如果H > 所有的A[i],这个炮弹也无效。现在给定N个整数的数组B代表炮弹高度,计算出最后地形的样子。原创 2017-11-19 18:43:14 · 194 阅读 · 0 评论 -
51nod 1486 大大走格子(组合数学+容斥)
Description有一个h行w列的棋盘,里面有一些格子是不能走的,现在要求从左上角走到右下角的方案数。Input单组测试数据。 第一行有三个整数h, w, n(1 ≤ h, w ≤ 10^5, 1 ≤ n ≤ 2000),表示棋盘的行和列,还有不能走的格子的数目。 接下来n行描述格子,第i行有两个整数ri, ci (1 ≤ ri ≤ h, 1 ≤ ci ≤ w),表示格子所在的行和列。 输原创 2017-11-29 17:18:21 · 968 阅读 · 0 评论 -
51nod 1298 圆与三角形(几何知识)
Description给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交。相交输出”Yes”,否则输出”No”。(三角形的面积大于0)。 Input第1行:一个数T,表示输入的测试数量(1 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R。(-3000 4-2:2个数,三角形第1个点的坐标。 4-3:2个数,三角形第2个点的坐标。 4原创 2018-01-24 15:12:36 · 213 阅读 · 0 评论 -
51nod 1138 连续整数的和(简单数学、等差数列)
Description给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。如果不能写为若干个连续整数的和,则输出No Solution。Input输入1个数N(3 <= N <= 10^9)。Output输出连续整数中的第1个数,如果有多个按照递增序排列,如果不能分解为若干个连续原创 2017-11-27 21:09:08 · 324 阅读 · 0 评论 -
51nod 1120 机器人走方格V3(组合数学+卡特兰数+Lucas)
DescriptionN * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。Input输入一个数N(2 <= N <= 10^9)。Output输出走法的数量 Mod 10007。Input示例4Output示例10解题思路 参照博客学原创 2017-11-26 22:15:26 · 293 阅读 · 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+4Input输入一个数N(1 <= N <= 10^6)Ou原创 2017-12-02 21:22:32 · 218 阅读 · 0 评论 -
51nod 1639 绑鞋带(递推)
Description有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?Input仅一行,包含一个整数n (2<=n<=1000)。Output输出一行,为刚好成环的概率。Input示例2Output示例0.666667解题思路假设ans[i-1]为i-1根原创 2017-12-02 20:49:52 · 254 阅读 · 0 评论 -
51nod 1094 和为k的连续区间(map优化)
Description一整数数列a1, a2, … , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + … + a[j] = k。 Input 第1行:2个数N,K。N为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9) 第2 - N + 1行:A[i](-10^9 <= A[原创 2017-11-15 21:18:55 · 262 阅读 · 0 评论 -
51nod 1350 斐波那契表示(打表+找规律)
Description每一个正整数都可以表示为若干个斐波那契数的和,一个整数可能存在多种不同的表示方法,例如:14 = 13 + 1 = 8 + 5 + 1,其中13 + 1是最短的表示(只用了2个斐波那契数)。定义F(n) = n的最短表示中的数字个数,F(14) = 2,F(100) = 3(100 = 3 + 8 + 89),F(16) = 2(16 = 8 + 8 = 13 + 3)。定义G原创 2017-11-15 21:00:28 · 262 阅读 · 0 评论 -
51nod 1277 字符串中的最大值(kmp)
Description一个字符串的前缀是指包含该字符第一个字母的连续子串,例如:abcd的所有前缀为a, ab, abc, abcd。 给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值。 例如:S = “abababa” 所有的前缀如下:“a”, 长度与出现次数的乘积 1 * 4 = 4, “ab”,长度与出现次数的乘积 2 * 3 = 6, “aba”, 长度与出现次数的原创 2017-11-15 20:36:54 · 263 阅读 · 0 评论 -
51nod 1435 位数阶乘(贪心)
题目描述X是一个n位数的正整数 (x=a0a1…an−1) 现在定义 F(x)=∏i=0n−1(ai!) , 比如F(135)=1!*3!*5!=720. 我们给定一个n位数的整数X(至少有一位数大于1,X中可能有前导0), 然后我们去找一个正整数(s)符合以下条件: 1.这个数尽可能大, 2.这个数中不能含有数字0或1。 3.F(s)=F(x)Input每个测试数...原创 2018-04-13 21:42:06 · 198 阅读 · 0 评论