![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
背包序列棋盘划分区间DP
dominating大树置林
l love acm!
展开
-
hdu 2159 FATE
状态转移方程:dp[j][l]=max(dp[j][l],dp[j-v[i]][l-1]+w[原创 2014-08-19 19:44:48 · 383 阅读 · 0 评论 -
能量环
题目描述 Description在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一原创 2014-08-16 18:16:01 · 797 阅读 · 0 评论 -
环形石子归并
在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。编程任务:对于给定n堆石子,编程计算合并成一堆的最小得分和最大得分。DP:因为石子绕成一个环,不是一条直线,所以dp[i][j]的含义应为从第i堆开始,合并j堆石子原创 2014-08-16 11:07:20 · 707 阅读 · 0 评论 -
动态规划算法的优化技巧
动态规划算法的优化技巧福州第三中学 毛子青 [关键词] 动态规划、 时间复杂度、优化、状态 [摘要]动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化。全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因素,然后分别阐述了对各个决定因素的优化方法,最后总结全文。 [正转载 2014-08-16 10:26:17 · 723 阅读 · 0 评论 -
wikioi 1166 矩阵取数游戏
题目描述 Description【问题描述】帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m 的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下:1. 每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素;2. 每次取走的各个元素只能是该元素所在行的行首或行尾;3. 每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分= 被取走的原创 2014-08-23 18:32:57 · 496 阅读 · 0 评论 -
URAL 1013 K-based Numbers. Version 3
题意:求k进制的N位数有多少个。高精度。原创 2014-08-23 11:22:13 · 513 阅读 · 0 评论 -
LightOj 1110 An Easy LCS
题意:最长公共子序列,a原创 2014-08-22 20:20:31 · 472 阅读 · 0 评论 -
poj 1631 Bridging signals
题意:(1,2,3,4,5,6,)分别对应(4,2,6,3,1,5,)原创 2014-08-22 20:03:25 · 413 阅读 · 0 评论 -
poj 1159 Palindrome
#include#include#includeusing namespace std;short dp[5001][5001];char a[500010];int main(){ int n,m,i,j,k; while(scanf("%d",&n)!=EOF) { getchar(); gets(a); memset(dp,0,sizeof(dp)); f原创 2014-08-22 20:14:56 · 416 阅读 · 0 评论 -
poj 2250 Compromise
#include#include#includeusing namespace std;#define MAXN 500010int num1,num2,dp[505][505];char s[505][505],s1[505][505],s2[505][505];void lcs(int a,int b){ if(a==0||b==0) return; else if(s[原创 2014-08-22 20:00:21 · 334 阅读 · 0 评论 -
SGU 199 Beautiful People
#include#include#includeusing namespace std;#define N 500010int pre[N],id[N];struct peo{ int s,b,id; void read() { scanf("%d%d",&s,&b); } bool operator <(const peo &t)const { if(s==t.原创 2014-08-22 20:16:44 · 429 阅读 · 0 评论 -
codeforces 414B Mashmokh and ACM
题意:相当于k行n列的矩阵中能原创 2014-08-22 20:25:47 · 527 阅读 · 0 评论 -
poj 2533 Longest Ordered Subsequence
水水的DP,然后被特判坑了~n==1时原创 2014-08-22 20:08:39 · 341 阅读 · 0 评论 -
Codeforcrs 264B Good Sequences
题意:最长非降子序列+不互质。转化为原创 2014-08-22 20:29:36 · 524 阅读 · 0 评论 -
poj 1080 Human Gene Functions
#include#include#includeusing namespace std;int dp[150][105],match[150][105];char s1[500010],s2[500010];void Init(){ match['A']['A']=match['C']['C']=match['G']['G']=match['T']['T']=5; m原创 2014-08-22 20:11:05 · 446 阅读 · 0 评论 -
CodeForces 13C
题意:对于给定数列,每次可做加一减一操作,求使数列非递减所需最少操作。思路:dp.状态转移方程 f[i][j]=min(f[i][j-1],f[i-1][j]+abs(a[i]-b[j])),f[i][j]表示把前i个数变成递增序列,第i个数变成b[j]的最少步数。把序列中的数变成原序列中的数能得到最优解,用反证法可以证明。#include#include#include#incl原创 2015-02-03 11:32:24 · 610 阅读 · 0 评论