算法
遊僊
这个作者很懒,什么都没留下…
展开
-
按顺序给出n个数,将n个数分为m段,使每段的和最大值最小,求该值最小为多少。
按顺序给出 n 个数,将 n 个数分为 m 段,使每段的和最大值最小,求该值最小为多少。思考当前问题的对立问题:对于一个值 max_value,判断是否可以将序列切分成连续的 m 段,并且使得每个子段和不大于 max_value 。定义变量 s,作为当前扩展子段的起始点,初始 s = 0。从 s 出发不断向右扫描,直到 t 位置,满足 sum( a[s…t] ) > max_val...原创 2019-10-31 18:51:04 · 2476 阅读 · 2 评论 -
贪心算法《活动时间安排问题》
活动安排问题问题表述:设有n个活动的集合E = {1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si < fi 。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源。若区间[si, fi)与区间[sj, fj)不相交,则称活动i与活动j是相容的。也就...原创 2019-10-26 22:00:14 · 3755 阅读 · 0 评论 -
递归算法《M个苹果放入N个盘子》
题目:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。样例输入7 3样例输出8【代码】放苹果分为两种情况,一种是有盘子为空,一种是每个盘子上都有苹果。令(m,n)表示将m个苹果放入n个盘子中的摆放方法总...原创 2019-10-26 17:08:49 · 6055 阅读 · 3 评论 -
斐波那契数列的递归递推求法
#include <bits/stdc++.h>using namespace std;// 递归计算斐波那契数列 int f1(int n){ if (n == 1 || n == 2) return 1; return f1(n-1) + f1(n-2);}// 递推计算斐波那契数列int f2(int n) { if (n == 1 || n ...原创 2019-10-26 15:56:20 · 902 阅读 · 0 评论 -
递推例题《农夫约翰与他的牛》
Problem DescriptionFarmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible s...原创 2019-10-26 15:25:56 · 901 阅读 · 0 评论 -
判断一个数是否为奇数
判断一个数是否为奇数,只需判断其二进制表达式中末尾是否为一:bool Odd(int x){ if (x & 1){ return true; }else{ return false; }}原创 2019-10-26 09:49:42 · 961 阅读 · 0 评论 -
幂取模
方法一:利用模等式(a×b)mod p = (a mod p × b mod p)mod p2k mod p = (2k-1 mod p) × 2 mod p2k-1 mod p = (2k-2 mod p) × 2 mod p2k-2 mod p = (2k-3 mod p) × 2 mod p2k-3 mod p = (2k-4 mod p) × 2 mod p…22 mod ...原创 2019-10-25 13:06:56 · 137 阅读 · 0 评论