线段树优化线性dp 拿到一道题目直接大力dp,设dp[i][j]表示考虑到第i个点并将其选中,且已经选了j个点的最优解,cost[i][j]表示选了i,j,之间的代价,显然可以压维: $$dp[i] = max (dp[k] + cost[k][i] ) +c[i] (j 1 include inc ...
分类:
其他好文 时间:
2018-11-05 19:12:16
阅读次数:
182
/*旅行售货员问题回溯法*/ #include #define N 4 int cc,//当前路径费用 bestc;//当前最优解费用 int a[N+1][N+1];//邻接矩阵,存放图的信息 int bestx[N+1];//当前最优解 int x[N+1];//当前解 void inputAj... ...
分类:
其他好文 时间:
2018-11-05 00:13:49
阅读次数:
285
/*最小重量机器问题*/ #include int w[100][100]; //w[i][j]为第i个零件在第j个供应商的重量 int c[100][100]; //c[i][j]为第i个零件在第j个供应商的价格 int bestx[100]; //bestx[i]表示一次搜索到底后的最优解,用来... ...
分类:
其他好文 时间:
2018-11-05 00:01:54
阅读次数:
110
一、对动态规划的理解 动态规划算法的思想为:当前问题的最优解必定是在子问题的最优解的基础上求得的,进而去求子问题的最优解,通过不断递归之后,由初始状态的最优解以自底向上的方式不断动态地得到当前问题的最优解。 二、编程题1、2的递归方程 (1)编程题1的递归方程: 定义两个辅助一维数组note,Max ...
分类:
其他好文 时间:
2018-11-04 21:51:13
阅读次数:
262
贪心 + 堆 因为可以不选满,所以可以把小于 $0$ 的值赋值为 $0$, 先考虑按 $a_i$ 从大到小排序, 然后考虑选择 $[A + 1 \dots n]$ 中最大的 $b_i$.但是这样不一定会成为最优解,我们从 $A + 1$ 开始向 $A + B$ 扫描,每一次尝试放弃前面的一个 $a_ ...
分类:
其他好文 时间:
2018-11-01 16:59:28
阅读次数:
152
题目描述这个游戏是这样的,你有一个初始序列S ,你每次可以选择一段任意长度的连续区间,把他们+1 再膜k,给定目标序列,你需要尝试用尽量少的操作次数将初始序列变为目标序列。作为一名优秀的OIer,您认为这个游戏十分naive,所以您打算撸一个游戏脚本来取到最优解。输入第一行一个T 表示数据组数。对于 ...
分类:
其他好文 时间:
2018-10-30 14:54:28
阅读次数:
386
前言 $DP$这东西真的是博大精深啊...... 简介 树形$DP$ ,顾名思义,就是在树上操作的$DP$,一般可以用$f_i$表示以编号为$i$的节点为根的子树中的最优解。 转移的时候一般都将信息由子节点转移到父亲节点,也就是将信息从下往上转移。 因此,一般树形$DP$都会采用 递归 的形式。 典 ...
分类:
其他好文 时间:
2018-10-28 19:28:43
阅读次数:
92
粒子群算法 粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地, ...
分类:
编程语言 时间:
2018-10-26 22:17:26
阅读次数:
467
模拟退火 爬山算法(Hill Climbing) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前的解空中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如下图所示:假设C点为当前解, ...
分类:
其他好文 时间:
2018-10-26 22:16:36
阅读次数:
185
思路:题意转化为求 (ax+by=dis) || (ax+cy=dis) || (bx+cy=dis) 三个式子有解时的最小|x| + |y|。显然求解特解x,y直接用扩展欧几里得,那么怎么求|x| + |y|?xy关系为一条直线,那么|x| + |y|应该是在x取0或者y取0的时候,但是要整数,所 ...
分类:
其他好文 时间:
2018-10-25 00:16:06
阅读次数:
160