CSP2019 D2T2 划分 (单调队列DP)
题目
题解
就是这道题搞我退役考场上写了n^2 64分,结果爆成8-12分。直接GG。
考场上想到正解的写法被自己否决了
题解传送门(看到这道送我退役的题目⑧太想写题解)
六行O(n2)O(n^2)O(n2)DP 888888分代码
for(int i = 1; i <= n; ++i) a[i] += a[i-1];
f[0] = d[0] = 0;
for(int i = 1; i <= n; ++i)
for(int j = i; j >= 1; --j) {
if(a[i]-a[j-1]<d[j-1]) continue;
d[i] = a[i]-a[j-1], f[i] = f[j-1] + d[i]*d[i];
break;
}
printf("%lld\n", f[n]);
同样六行O(n)O(n)O(n)DP 100100100分代码
#include <bits/stdc++.h>
using namespace std;
template<class T>inline void read(T &x) {
char ch; while(!isdigit(ch=getchar()));
for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0');
}
typedef long long LL;
const int MAXN = 40000005;
const int MOD = 1073741824;
int n, ty, stk[50], indx;
LL a[MAXN];
int q[MAXN], pre[MAXN], s, t;
int main () {
read(n), read(ty);
if(!ty) for(int i = 1; i <= n; ++i) read(a[i]);
else {
int x, y, z, m;
read(x), read(y), read(z), read(a[1]), read(a[2]), read(m);
for(int i = 3; i <= n; ++i) a[i] = (x*a[i-1] + y*a[i-2] + z) % MOD;
for(int i = 1, p, l, r, j = 1; i <= m; ++i) {
read(p), read(l), read(r);
while(j <= p) a[j] = a[j] % (r-l+1) + l, ++j;
}
}
for(int i = 1; i <= n; ++i) a[i] += a[i-1];
q[s=t=0] = 0;
for(int i = 1; i <= n; ++i) {
while(s < t && a[q[s+1]]-a[pre[q[s+1]]]+a[q[s+1]] <= a[i]) ++s;
pre[i] = q[s];
while(s < t && a[q[t]]-a[pre[q[t]]]+a[q[t]] >= a[i]-a[pre[i]]+a[i]) --t;
q[++t] = i;
}
__int128 ans = 0, tmp; int now = n;
while(now) { tmp = a[now]-a[pre[now]]; ans += tmp*tmp; now = pre[now]; }
while(ans) { stk[++indx] = ans%10; ans/=10; }
while(indx) putchar('0'+stk[indx--]); puts("");
}
水题送我退役。
粗鄙之语
CSP2019 D2T2 划分 (单调队列DP)的更多相关文章
- POJ 3017 单调队列dp
Cut the Sequence Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 8764 Accepted: 2576 ...
- [TyvjP1313] [NOIP2010初赛]烽火传递(单调队列 + DP)
传送门 就是个单调队列+DP嘛. ——代码 #include <cstdio> ; , t = , ans = ~( << ); int q[MAXN], a[MAXN], f ...
- zstu 4237 马里奥的求救——(单调队列DP)
题目链接:http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4237 这题可以转化为每次可以走g~d+x步,求最大分数,且最大分数的步数最少. ...
- 1304F2 - Animal Observation (hard version) 线段树or单调队列 +DP
1304F2 - Animal Observation (hard version) 线段树or单调队列 +DP 题意 用摄像机观察动物,有两个摄像机,一个可以放在奇数天,一个可以放在偶数天.摄像机在 ...
- 【CSP-S 2019】【洛谷P5665】划分【单调队列dp】
前言 \(csp\)时发现自己做过类似这道题的题目 : P4954 [USACO09Open] Tower of Hay 干草塔 然后回忆了差不多\(15min\)才想出来... 然后就敲了\(88p ...
- vijos P1243 生产产品(单调队列+DP)
P1243生产产品 描述 在经过一段时间的经营后,dd_engi的OI商店不满足于从别的供货商那里购买产 品放上货架,而要开始自己生产产品了!产品的生产需要M个步骤,每一个步骤都可以在N台机器 ...
- POJ 1821 单调队列+dp
题目大意:有K个工人,有n个墙,现在要给墙涂色.然后每个工人坐在Si上,他能刷的最大范围是Li,且必须是一个连续子区间,而且必须过Si,他刷完后能获得Pi钱 思路:定义dp[i][j]表示前i个人,涂 ...
- codeforces 1077F2. Pictures with Kittens (hard version)单调队列+dp
被队友催着上(xun)分(lian),div3挑战一场蓝,大号给基佬紫了,结果从D开始他开始疯狂教我做人??表演如何AKdiv3???? 比赛场上:A 2 分钟,B题蜜汁乱计数,结果想得绕进去了20多 ...
- 【LOJ#10180】烽火传递 单调队列+dp
题目大意:给定一个 N 个非负整数数组成的序列,每个点有一个贡献值,现选出其中若干数,使得每连续的 K 个数中至少有一个数被选,要求选出的数贡献值最小. 题解:设 \(dp[i]\) 表示考虑了序列前 ...
- BZOJ 5281--[Usaco2018 Open]Talent Show(分数规划&单调队列&DP)
5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 79 Solved: 58[Sub ...
随机推荐
- 使用Xshell采用证书登录Linux
1,工具--- 用户key生成向导,选择秘钥类型,注意DSA只能选择1024位级以下,超过1024位的服务器不认. 2 给公钥取一个名字,并设置密码,保存为文件 3 在linux 用户目录,用cd ...
- 【转帖】处理器的三国时代:DR公司盛气凌人,IBM转身成就微软
处理器的三国时代:DR公司盛气凌人,IBM转身成就微软 https://www.eefocus.com/mcu-dsp/360555 <处理器史话>之五 2016-04-06 15:24 ...
- 如何使用websocket实现前后端通信
websocket通信是很好玩的,也很有用的的通信方式,使用方式如下: 第一步由于springboot很好地集成了websocket,所以先在在pom.xml文件中引入依赖 <dependenc ...
- 线性DP详解
顾名思义,线性DP就是在一条线上进行DP,这里举一些典型的例子. LIS问题(最长上升子序列问题) 题目 给定一个长度为N的序列A,求最长的数值单调递增的子序列的长度. 上升子序列B可表示为B={Ak ...
- html2canvas以及domtoimage的使用踩坑总结 动态获取的二维码失效如何生成海报
//判断手机为安卓还是ios 安卓html2canvas方法 ios系统dom-to-image方法 $(".code").click(function() { var u = n ...
- (父向子传值)组件内的properties类似与vue中的prop接收外界传递进来的参数
=================================================== 外界引用组件的时候 传递方法 父传子
- Python 获取本月的最后一天
一.需求 现在有一个场景,需要每月的最后一天,发送一封邮件. 二.获取本月最后一天 有没有办法使用Python的标准库轻松确定(即一个函数调用)给定月份的最后一天? 答案是有的,使用 datetime ...
- [洛谷P2056][ZJOI2007]捉迷藏(2019-7-20考试)
题目大意:有一棵$n(n\leqslant10^6)$个点的树,上面所有点是黑点,有$m$次操作: $C\;u$:把点$u$颜色翻转 $G$:问树上最远的两个黑点的距离,若没有黑点输出$0$ 题解:有 ...
- NEST search查询
/// <summary> /// GET /megacorp/employee/_search /// </summary> /// <returns></ ...
- 10 查询字符串,X字段必须包含(不包含)XX;_all原理
指定某个字段,必须要包含XX字符 GET /beauties/my/_search?q=Name:Chang Wei 搜出 某个字段不包含XX字符 的所有内容 GET /beauties/my/_ ...