这是转别人的,待会我会自己总结动态规划和贪心算法的区别动态规划和贪心算法都是一种递推算法 均有局部最优解来推导全局最优解 不同点: 贪心算法: 1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。 2.由(1)中的介绍,可以...
分类:
其他好文 时间:
2014-08-21 02:42:53
阅读次数:
208
想法:以前做比赛的时候遇到很多需要计算组合数的情况,都是当时手敲的,写递归不是暴就是超时啥的,或者是因为要取模,然后还要求逆元,所以敲得不是慢就是老是出问题,所以现在搞出模板来以后用就快了。
一:线性求C(n,m)
解释:由HDU 4927这道题求的组合数,可以了解到组合数的一些递推快速求法,因为这道题就是卡组合数的时间的。如果我们要算C(10,4),我们可以先算C(10,1),再算C(10,...
分类:
其他好文 时间:
2014-08-21 00:19:03
阅读次数:
226
前言:高精度运算,是指参与运算的数(加数,减数,因子……)范围大大超出了标准数据类型(整型,实型)能表示的范围的运算。
模板:包括大数加减乘除,大数与int数的乘法,模板可以不断扩充。
代码:/*
全部亲测可用
*/
const int ten[4]= {1,10,100,1000};
const int maxl = 300;
struct BigNumber
{
int d[max...
分类:
其他好文 时间:
2014-08-20 12:36:03
阅读次数:
290
POJ 3517
题目: n k m
数字1到n成环,先叉数字m,往下数k个,直到最后只有一个数字,输出它。
链表模拟:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXN ...
分类:
其他好文 时间:
2014-08-20 10:29:36
阅读次数:
212
经典的约瑟夫环问题嘛。有点小小的变形而已。给你N个人围成一个环(编号1~N),从第M个人开始,每隔K个人报一次数,报数的人离开该环。
求最后剩下的人的编号。
约瑟夫问题的数学递推解法:
(1)第一个被删除的数为 (m - 1) % n。
(2)假设第二轮的开始数字为k,那么这n - 1个数构成的约瑟夫环为k, k + 1, k + 2, k +3, .....,...
分类:
其他好文 时间:
2014-08-20 00:05:35
阅读次数:
258
【题意】:给出n,m,代表n个点、及m条有向边。然后m行给出每条有向边的u,v,w(权值)。题目要求你求出最长路径的长度,是该路径满足权值严格递增。数据范围1?≤?wi?≤?10^5【知识点】:DP【题解】:一道看似图论的题目,其实可以利用递推的方法巧妙地解决。因为权值的最大值为10^5,所以可以用...
分类:
其他好文 时间:
2014-08-19 23:46:55
阅读次数:
719
题目链接
题意:每个成绩范围对应一个绩点,给出平均分avg,课程数n,求能得到的平均绩点的最大值和最小值。
思路:先预处理出每个成绩所对应的绩点,然后递推出所有情况,d[i][k]表示i个人有k分的绩点总数,所以可以得到动态转移方程。
当求最大值时d[i][k] = max(d[i][k], d[i - 1][k - j] + gpa[j])(j表示课程分数)
当求...
分类:
其他好文 时间:
2014-08-19 22:32:55
阅读次数:
223
HDU 4968 Improving the GPA
思路:贪心的搞吧!比赛的时候想了好久,然后才发现了点规律,然后乱搞1A。
因为贪心嘛!大的情况就是刚开始每个人的分数都是最大的最小值,即绩点4.0的最低分数85,然后最后一个数设为剩余的分数,然后如果小于60就从第一个分数补到这个分数来,然后最后一个分数还小于60,那就用第二个补……依次往下搞,那时我也不知道这样就搞出答案了,我还没证明这个...
分类:
其他好文 时间:
2014-08-19 22:27:15
阅读次数:
431
(有关矩阵乘法的基本规则请自行搜索) 引例:求斐波那契数列的第 n 项 mod 1000000007 的值,n <= 1018。 分析:斐波那契数列的递推式为 f(n) = f(n-1)+f(n-2),直接循环求出 f(n) 的时间复杂度是 O(n),对于题目中的数据范围显然无法承受。很明显我们需要...
分类:
其他好文 时间:
2014-08-19 22:14:15
阅读次数:
328