51Nod
文章平均质量分 52
Tony L.Du
风吹浪打,不忘初心
展开
-
51Nod 1242 斐波那契数列的第N项
题目链接:51Nod 1242 斐波那契数列的第N项斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(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) % 1000000原创 2016-03-16 21:15:39 · 1920 阅读 · 0 评论 -
大数阶乘(10000级别) 51Nod 1057
题目链接: 51Nod 1057 问题描述 输入N求N的阶乘的准确值。 Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120 思路: 一百万亿进制(14个0),大数相乘,求阶乘 代码:#include<iostream> #include<stdio.h> #include<algorithm> #原创 2016-04-01 21:35:05 · 856 阅读 · 0 评论 -
1010 只包含因子2 3 5的数(打表+二分)
题目链接: 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。 Input 第1行:一个数T,表示后面用作输入测试的原创 2016-04-25 15:42:32 · 2188 阅读 · 1 评论 -
51Nod 1298 圆与三角形
题目链接: 51Nod 1298 圆与三角形 题目描述: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交。相交输出”Yes”,否则输出”No”。(三角形的面积大于0)。 Input 第1行:一个数T,表示输入的测试数量(1 <= T <= 10000),之后每4行用来描述一组测试数据。 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R。(-30原创 2016-03-25 14:06:11 · 1407 阅读 · 0 评论 -
动态规划初步总结(1)(51Nod,CODE[VS]为例题)
相关题目链接: CODE-VS 1220 数字三角形 51Nod 1002 数塔取数问题51Nod 1083 矩阵取数问题1.数字三角形第一题和第二题一样,数字三角形问题,此处写三种不同的代码,但是总的动态规划思想是一致的。 如果熟悉回溯法,可能会发现这是一个动态的决策问题:每次有两种选择:向下(左下)走或向右下走,如果用回溯法求出所有路线,就可以从中选出最优路线。但是效率太低,n层的数组三角形原创 2016-03-10 15:24:18 · 2474 阅读 · 0 评论 -
51Nod 1007 正整数分组
1007 正整数分组 将一堆正整数分为2组,要求2组的和相差最小。 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。 Input 第1行:一个数N,N为正整数的数量。 第2 - N+1行,N个正整数。 (N <= 100, 所有正整数的和 <= 10000) Output 输出这个最小差 Input示例原创 2016-04-02 18:28:39 · 1914 阅读 · 0 评论 -
CODE[VS] 1154 能量项链
题目链接: CODD[VS] 1154 能量项链 题目描述 Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同原创 2016-03-08 17:39:27 · 531 阅读 · 0 评论 -
HDU 1061 (51Nod 1004 )n^n的末位数字
题目链接: 1004 n^n的末位数字 问题描述: 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。 Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 思路: 先计算出结尾数字循环数组,再取余,定位最后一个数字 /******************************原创 2016-03-31 21:05:57 · 916 阅读 · 0 评论 -
51Nod 1003 阶乘后面0的数量
方法一: 我们知道,10 = 2 * 5。每一个 2 与一个 5 相乘,结果就增加一个零。所以求 n! 后面的连续零的个数,其实就是求其中相乘的数含因子对 2 与 5 的个数。又因为从1到某个数,所含 2 的个数比 5 多,所以问题就可以进一步简化到求含有因子5的个数。 伪代码://o(nlogn)超时 int n, ans = 0; cin>>n; for(int i = 5; i <原创 2016-03-31 20:19:36 · 730 阅读 · 0 评论 -
51NOD 1384 全排列
题目链接: 给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”, 输出为: 1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 Input 输入一个字符串S(S的长度 <=原创 2016-03-19 13:06:49 · 770 阅读 · 0 评论 -
51Nod 1021 石子归并v1
题目连接: 51Node 1021 石子归并v1 题目描述: 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) =原创 2016-03-07 19:48:48 · 1752 阅读 · 0 评论 -
51Nod 1086 背包问题 V2(二进制多重背包)
题目链接:51Nod 1086 背包问题 V2问题描述: 有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。 Input 第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <=原创 2016-03-18 14:27:12 · 1290 阅读 · 0 评论 -
51Nod 1085 背包问题(01背包 )
题目连接 51Nod 1085 背包问题 题目描述 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。 Input第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000) 第2 - N + 1行,原创 2016-03-07 21:12:29 · 1561 阅读 · 0 评论 -
51Nod 1009 数字1的数量(数位dp)
题目连接: 51Nod 1009 数字1的数量(数位dp) 题目描述: 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input 输入N(1 <= N <= 10^9) Output 输出包含1的个数 Input示例 12 Output示例原创 2016-05-03 19:05:49 · 1307 阅读 · 0 评论