随笔分类 -  dp-区间dp

摘要:#include<bits/stdc++.h> using namespace std; const int maxn=1e6+5; const int INF=1e9+5; int n,m,k,w,tot,minn=INF,mark; int f[1005][1005],a[1005],b[101 阅读全文
posted @ 2019-05-18 17:22 Achen_sy 阅读(245) 评论(0) 推荐(0)
摘要:有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取。每次玩家只能从左端或者右端取任意数量的数,但不能两边都取。所有数都被取走视为游戏结束,然后统计每个人取走的数之和,作为各自的得分。两个人采取的策略都是让自己得分尽可能高,并且两个人都很机智,求A得分-B得分后的结果。 输入格式 输入包含多组 阅读全文
posted @ 2019-05-10 17:25 Achen_sy 阅读(213) 评论(0) 推荐(0)
摘要:有一根长度为L(L<1000)的棍子,还有n(n<50)个切割点的位置(按照从小到大排 列)。你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小。每次 切割的费用等于被切割的木棍长度。 例如,L=10,切割点为2, 4, 7。如果按照2, 4, 7的顺序, 费用为10+8+6=2 阅读全文
posted @ 2019-05-10 17:10 Achen_sy 阅读(191) 评论(0) 推荐(0)
摘要:输入两个长度分别是n和m(n,m<=5000)的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。 例如,两个颜色序列GBBY和YRRGB,至少有两种合并结果:GBYBRYRGB和YRRGGBBYB。对于每种颜色来说其跨度L(c)等于最大位置和最小位置之差。例如, 阅读全文
posted @ 2019-05-10 14:32 Achen_sy 阅读(254) 评论(0) 推荐(0)
摘要:Bessie喜欢在手机上下游戏玩,然而她蹄子太大,很难在小小的手机屏幕上面操作。 她被她最近玩的一款游戏迷住了,游戏一开始有n个正整数,(2<=n<=262144),范围在1-40。在一步中,贝西可以选相邻的两个相同的数,然后合并成一个比原来的大一的数(例如两个7合并成一个8),目标是使得最大的数最 阅读全文
posted @ 2019-05-03 11:14 Achen_sy 阅读(332) 评论(0) 推荐(0)
摘要:细节被坑惨 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 const int INF=1e9+7; 5 int n,ans,dp[305][305]; 6 template <class t>vo 阅读全文
posted @ 2019-05-03 10:32 Achen_sy 阅读(113) 评论(0) 推荐(0)
摘要:f(i,j)=min(f(i-1,k)+f(k+1,j)+ai-1*ak*aj) k表示被抽取的数 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 阅读全文
posted @ 2019-05-03 08:58 Achen_sy 阅读(154) 评论(0) 推荐(0)
摘要:f(i,j)=f(i+1,j-1)+2 or max(f(i,k)+f(k+1,j)) 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 #incl 阅读全文
posted @ 2019-05-03 08:52 Achen_sy 阅读(109) 评论(0) 推荐(0)
摘要:1.石子归并 非常朴素,顺着推即可 w [ i ] [ j ] 表示把第i堆到第j堆的石子和到一起的最后一步的代价 f [ i ] [ j ] = min{f [ i ] [ k ] + f [ k+1 ] [ j ] + w[ i ] [ j ] | i <= k < j , i <= j} 2. 阅读全文
posted @ 2019-05-02 19:32 Achen_sy 阅读(1195) 评论(0) 推荐(1)
摘要:题面 有可能最大值是负数,要初始化f为极小值 要特别处理第一位与空格匹配的情况 分清i,j(wa了无数次QAQ) 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 const int INF=1e9+ 阅读全文
posted @ 2019-04-27 10:59 Achen_sy 阅读(102) 评论(0) 推荐(0)
摘要:N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为T1,T2,…,TK 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1≤i≤K) 你的任务是,已知所有N位同学 阅读全文
posted @ 2019-04-27 09:50 Achen_sy 阅读(257) 评论(0) 推荐(0)