Pogo-Cow S
这题出在单调队列优化dp里,就离谱好吧......
对不住了上来先喷一波,不过离谱是确实的
dp的含义也很简单,就是说从j到i的分数最大值
直接上代马,里面说的很详细了

1 #include<bits/stdc++.h>
2 using namespace std;
3 inline int read(){
4 int x=0,f=1; char ch=getchar();
5 while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); }
6 while(ch>='0'&&ch<='9'){ x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
7 return x*f;
8 }
9 const int NN=1005;
10 struct SNOW{
11 int pos,val;
12 }; SNOW a[NN];
13 int n,wsn,f[NN][NN];
14 inline bool cmp(SNOW a,SNOW b){return a.pos<b.pos;}
15 namespace WSN{
16 inline int main(){
17 n=read();
18 for(int i=1;i<=n;i++) a[i].pos=read(),a[i].val=read();
19 sort(a+1,a+n+1,cmp);
20 for(int j=1;j<=n;j++){//中间过度点
21 int k=j-1,v=f[j][0]+a[j].val;//k是起点,v是起点的初始值
22 for(int i=j+1;i<=n;i++){//终点
23 while(k&&a[i].pos-a[j].pos>=a[j].pos-a[k].pos)//卡一个终点到起点的最值
24 v=max(v,f[j][k]+a[j].val),k--;//比较加入后的权值
25 f[i][j]=max(f[i][j],v);
26 wsn=max(wsn,v+a[i].val);//加上终点的权值
27 }
28 }//因为牛即可以往正方向跑也可以往逆方向跑,所以要遍历两遍
29 //因为正反遍历的时候初始值会从新的开始,那么他每次更新的点都不会记录正方向遍历的值
30 //因此不必用memset
31 for(int j=n;j;j--){
32 int k=j+1,v=f[j][n+1]+a[j].val;
33 for(int i=j-1;i;i--){
34 while(k<=n&&a[j].pos-a[i].pos>=a[k].pos-a[j].pos)
35 v=max(v,f[j][k]+a[j].val),k++;
36 f[i][j]=max(f[i][j],v);
37 wsn=max(wsn,v+a[i].val);
38 }
39 }//这就跟上面的一模一样了
40 printf("%d\n",wsn);//最后直接输出值
41 return 0;
42 }
43 }
44 signed main(){return WSN::main();}
最后总结一下的话,这个专题并不是在考单调队列优化dp,而是在考一个优化dp的思想——看单调性!!!
还是要体会整理题目者的良苦用心啊
Pogo-Cow S的更多相关文章
- [luogu] P3089 [USACO13NOV]POGO的牛Pogo-Cow
P3089 [USACO13NOV]POGO的牛Pogo-Cow 题目描述 In an ill-conceived attempt to enhance the mobility of his pri ...
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
- 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...
- HDU Cow Sorting (树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 Cow Sorting Problem Description Sherlock's N (1 ...
- [BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
[BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 试题描述 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发 ...
- 细读cow.osg
细读cow.osg 转自:http://www.cnblogs.com/mumuliang/archive/2010/06/03/1873543.html 对,就是那只著名的奶牛. //Group节点 ...
- POJ 3176 Cow Bowling
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13016 Accepted: 8598 Desc ...
- raw,cow,qcow,qcow2镜像的比较
在linux下,虚拟机的选择方式有很多,比如vmware for linux,virtual box,还有qemu,在以前,使用qemu的人不多,主要是使用起来有些麻烦,但现在随着Openstack的 ...
- poj1985 Cow Marathon (求树的直径)
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 3195 Accepted: 1596 Case ...
- (01背包变形) Cow Exhibition (poj 2184)
http://poj.org/problem?id=2184 Description "Fat and docile, big and dumb, they look so stupid ...
随机推荐
- Input 只能输入数字,数字和字母等的正则表达式
JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...
- .Net性能调优-MemoryPool
简单用法 //获取MemoryPool实例,实际返回了一个ArrayMemoryPool<T> MemoryPool<char> Pool = MemoryPool<ch ...
- MySQL(3)-日志
3. InnoDB日志 3.1 InnoDB架构 分为 内存区域架构 buffer pool log buffer 磁盘区域架构 redo log undo log 2.1.1 内存区域架构 1)Bu ...
- .NET5修改配置不重启自动生效
.NET Core,.NET5默认配置都是只加载一次,修改配置时都需要重启才能生效,如何能修改即时生效呢,下面来演示一遍. 一.设置配置文件实时生效 1.1配置 在Program.cs的CreateH ...
- 教你搞懂Jenkins安装部署!
前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用 ...
- Java Web实现登录验证码(Servlet+jsp)
1.生成验证码图片(Servlet) import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import j ...
- 【PHP数据结构】栈的相关逻辑操作
对于逻辑结构来说,我们也是从最简单的开始.堆栈.队列,这两个词对于大部分人都不会陌生,但是,堆和栈其实是两个东西.在面试的时候千万不要被面试官绕晕了.堆是一种树结构,或者说是完全二叉树的结构.而今天, ...
- symfony generate:bundle出现提示: Checking that the bundle is autoloaded
可以参考官方文档给出来的解决办法 http://symfonychina.com/doc/current/bundles/SensioGeneratorBundle/commands/generate ...
- 微信公众号授权获取code带多个参数 丢失参数
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&re ...
- Linux系列(23) - echo
作用:打印 格式:echo [选项] [输出内容] 选项:-e :支持反斜线控制的字符转换 前置条件:必须加选项-e才能使用 控制字符 作用 \a 输出警告音 \b 退格符,也就是向左删除键 \n 换 ...