被队友催着上(xun)分(lian),div3挑战一场蓝,大号给基佬紫了,结果从D开始他开始疯狂教我做人??表演如何AKdiv3???? 比赛场上:A 2 分钟,B题蜜汁乱计数,结果想得绕进去了20多分钟,至此GG,C秒出,D...还在想怎么做就告诉我二分答案,好那继续秒出.他看F我看E,没思路互换,F题都读了半天,其实就是我YY的题意,然后发现还是没N^3dp的想法,发现并不是区间dp,其实之前我E想到了枚举等差数列的项数,只是发现找不了起点(那不是找终点就好了).基佬紫:枚举项数啊,我???…
题目链接:Pictures with Kittens (hard version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:数据量5000,O(n^3)的DP不适用.需要加个单调队列优化. 注意每次是从$[i-k,i)$区间,选择加上ai.每次清空双向队列. #include <queue> #include <cstdio> #include <cstring> #include <iostream&g…
1304F2 - Animal Observation (hard version) 线段树or单调队列 +DP 题意 用摄像机观察动物,有两个摄像机,一个可以放在奇数天,一个可以放在偶数天.摄像机在同一天可以同时照到k个区域放下去可以持续两天.现在给出每一天每个区域的动物数量,问最多照到动物多少个.如果两个照相机同时照到一个动物只算一次.n<=50 k<=m<=2e4 思路 我们可以考虑只在一天的情况 那么就是一个简单的dp,状态为dp[i][j]第i天放置在区域j可以获得的最大数.那…
Cut the Sequence Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 8764   Accepted: 2576 Description Given an integer sequence { an } of length N, you are to cut the sequence into several parts every one of which is a consecutive subseque…
传送门 就是个单调队列+DP嘛. ——代码 #include <cstdio> ; , t = , ans = ~( << ); int q[MAXN], a[MAXN], f[MAXN]; inline int min(int x, int y) { return x < y ? x : y; } int main() { int i; scanf("%d %d", &n, &m); ; i <= n; i++) scanf(&qu…
题目链接:http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4237 这题可以转化为每次可以走g~d+x步,求最大分数,且最大分数的步数最少. 这题的数据范围比较小,可以用奇怪的姿势过. 首先,lyf队长给的方法是n^3的dp过:用我自己的方法是搜索也可以过,因为数据小. 但是,如果数据范围很大,就得用复杂度是O(n)的单调队列dp来做. 上次做过一道单调队列的dp问题,当时比较懵懂,现在,对这个方法有了更深的理解.而且,只要把id丢进单调…
题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:$dp[i][j]$:以i为结尾选择j个数字的最大和. $dp[i][j]=max(dp[i][j],dp[s][j-1]+a[i])$,$s为区间[i-k,i)$. 以i为结尾的最大和可以由i之前k个位置中的其中一个位置选择j-1个,再加上当前位置的ai得到. #include <cstdio> #includ…
题目链接: http://codeforces.com/contest/6/problem/E E. Exposition time limit per test 1.5 secondsmemory limit per test 64 megabytes 问题描述 There are several days left before the fiftieth birthday of a famous Berland's writer Berlbury. In this connection th…
Description Little Petya likes points a lot. Recently his mom has presented him n points lying on the line OX. Now Petya is wondering in how many ways he can choose three distinct points so that the distance between the two farthest of them doesn't e…
题目大意:给定一个长度为 N 的序列,点有点权,从序列中选出恰好 X 个数,并且保证任意连续的 K 个数中均有一个被选中,求选出的点权最大是多少. 题解:此题可以作为 烽火传递+ 来处理,只不过在烽火传递的基础上加了选出恰好 X 个数,因此只需在状态维度上加上一维选出的个数即可,\(dp[i][j]\) 表示前 i 个数中选出 j 个数,且第 i 个数被选中的最优解,因此有状态转移方程:\(dp[i][j]=max\{dp[k][j-1],k\in[i-m,i-1] \}+val[i]\),直接…