bzoj 4831 [Lydsy1704月赛]序列操作 dp
[Lydsy1704月赛]序列操作
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 203 Solved: 69
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
4
1 2 1 3
5
1 2 1 1 3
Sample Output
2 3
HINT
#include<queue>
#include<vector>
#include<cstdio>
#include<string>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int f[][],F[][];
int g[][],G[][];
int a[];
int main()
{
int T;
scanf("%d",&T);
while(T>)
{
T--;
int n;
scanf("%d",&n);
int i,j;
int lim=;
for(i=;i<=n;i++)
{
scanf("%d",&a[i]);
lim=max(lim,a[i]);
}
if(n==)
{
printf("0 0\n");
continue;
}
for(j=;j<=lim;j++)
{
f[][j]=-;
F[][j]=-;
g[][j]=;
G[][j]=;
f[][j]=-;
F[][j]=-;
g[][j]=;
G[][j]=;
}
int p=,q=;
int tmp=min(a[],a[]);
for(i=;i<tmp;i++)
F[p][a[]-i]=G[p][a[]-i]=i;
f[p][a[]-tmp]=tmp;
g[p][a[]-tmp]=tmp; for(i=;i<=n;i++)
{
for(j=;j<=a[i];j++)
{
f[q][j]=max(f[p][a[i]-j],F[p][a[i]-j])+a[i]-j;
g[q][j]=min(g[p][a[i]-j],G[p][a[i]-j])+a[i]-j;
}
for(j=a[i];j<=a[i-];j++)
{
f[q][]=max(f[q][],f[p][j]+a[i]);
g[q][]=min(g[q][],g[p][j]+a[i]);
}
f[q][]=max(f[q][],F[p][a[i]]+a[i]);
g[q][]=min(g[q][],G[p][a[i]]+a[i]);
for(j=a[i-]-;j>=;j--)
{
f[p][j]=max(f[p][j],f[p][j+]);
g[p][j]=min(g[p][j],g[p][j+]);
}
for(j=;j<=a[i];j++)
{
F[q][j]=max(f[p][a[i]-j],F[p][a[i]-j])+a[i]-j;
G[q][j]=min(g[p][a[i]-j],G[p][a[i]-j])+a[i]-j;
}
for(j=;j<=a[i-];j++)
{
f[p][j]=-;
F[p][j]=-;
g[p][j]=;
G[p][j]=;
}
p=-p;
q=-q;
}
int ansmax=-,ansmin=;
for(i=;i<=a[n];i++)
{
ansmax=max(ansmax,f[p][i]);
ansmin=min(ansmin,g[p][i]);
}
printf("%d %d\n",ansmin,ansmax);
}
}
bzoj 4831 [Lydsy1704月赛]序列操作 dp的更多相关文章
- BZOJ4831: [Lydsy1704月赛]序列操作(非常nice的DP& 贪心)
4831: [Lydsy1704月赛]序列操作 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 250 Solved: 93[Submit][Statu ...
- [BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT)
[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于质数M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数 ...
- bzoj 4836 [Lydsy1704月赛]二元运算 分治FFT+生成函数
[Lydsy1704月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MBSubmit: 577 Solved: 201[Submit][Status][Di ...
- BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)
题目链接 \(f[s][i][j][k]\)表示还剩\(s\)次攻击,分别有\(i,j,k\)个血量为\(1,2,3\)的奴隶主时,期望受到伤害. 因为期望是倒推,所以这么表示从后往前求,注意\(a, ...
- BZOJ 1046: [HAOI2007]上升序列 LIS -dp
1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3438 Solved: 1171[Submit][Stat ...
- [BZOJ 1046] [HAOI2007] 上升序列 【DP】
题目链接:BZOJ - 1046 题目分析 先倒着做最长下降子序列,求出 f[i],即以 i 为起点向后的最长上升子序列长度. 注意题目要求的是 xi 的字典序最小,不是数值! 如果输入的 l 大于最 ...
- bzoj 1046: [HAOI2007]上升序列【dp+二分】
先从后到前做一个最长下降子序列的dp,记录f[i],我这里用的是二分(其实树状数组比较显然) 然后对于询问,超出最长上升子序列的直接输出:否则从前到后扫,f[i]>=x&&a[i ...
- BZOJ 4833: [Lydsy1704月赛]最小公倍佩尔数(数论 + 最值反演)
题面 令 \({(1+\sqrt 2)}^n=e(n)+f(n)*\sqrt2\) ,其中 \(e(n),f(n)\) 都是整数,显然有 \({(1-\sqrt 2)}^n=e(n)-f(n)*\sq ...
- bzoj 1049: [HAOI2006]数字序列【dp+二分+瞎搞】
第一问明显就是用b[i]=a[i]-i来做最长不下降子序列 然后第二问,对于一对f[i]=f[j]+1的(i,j),中间的数一定要改的,并且是等于b[i]或者b[j],我不会证,然后因为是随机数据,所 ...
随机推荐
- 【springmvc+mybatis项目实战】杰信商贸-3.需求分析与数据库建模
开发步骤需求:生产厂家信息维护基础表FACTORY_C 1.业务需求:a)<需求说明书> 1)描述业务功能 生产厂家模块 功能:为在购销合同模块中的货物信息和附件信 ...
- JAVA基础学习之路(七)对象数组的定义及使用
两种定义方式: 1.动态初始化: 定义并开辟数组:类名称 对象数组名[] = new 类名称[长度] 分布按成:类名称 对象数组名[] = null: 对象数组名 = new 类名称[长度]: 2 ...
- 关于java使用double还是float
眼睛一亮在论坛上发现一枚很有价值的评论赶紧抄下来... 记住java一定要用double,更鼓不变,就算数值不大也要用double.了解java虚拟机的底层会知道,float放在内存中其实是当作dou ...
- C语言链接数据库
一.解释一下函数功能和用法 1.mysql_real_connect 函数原型:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, co ...
- codeforces 269C Flawed Flow(网络流)
Emuskald considers himself a master of flow algorithms. Now he has completed his most ingenious prog ...
- css贝塞尔曲线模仿饿了么购物车小球动画
在线观看贝塞尔曲线值:传送门 在线观看动画效果:传送门 代码: <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- 学霸系统UI项目功能说明书 v1.0版本
发布人员:软件工程实践小队. 发布内容:学霸系统UI项目说明书. 版本:学霸v1.0版本. 学霸系统UI项目说明书 v1.0版本分为以下部分: Part 1:用户须知: Part 2:功能实现: Pa ...
- vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- Uva 1600 Patrol Robot (BFS 最短路)
这道题运用的知识点是求最短路的算法.一种方法是利用BFS来求最短路. 需要注意的是,我们要用一个三维数组来表示此状态是否访问过,而不是三维数组.因为相同的坐标可以通过不同的穿墙方式到达. #inclu ...
- TCP系列04—连接管理—3、TCP连接的半打开和半关闭
在前面部分我们我们分别介绍了三次握手.四次挥手.同时打开和同时关闭,TCP连接还有两种场景分别是半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Du ...