USACO16OPEN_248&&USACO16OPEN_262144_KEY
这道题比较水,设f[i][j]表示i~j区间合并的最大值。
#include <cstdio>
#define max(a,b) a>b?a:b
using namespace std;
int N,x,f[][],ans;
int main(){
scanf("%d",&N);for(int i=;i<=N;i++)scanf("%d",&x),f[i][i]=x,ans=max(ans,x);
for(int i=N-;i>;i--)
for(int j=i+;j<=N;j++)
for(int k=i;k<j;k++)
if(f[i][k]==f[k+][j]){
f[i][j]=max(f[i][k]+,f[i][j]);
ans=max(ans,f[i][j]);
}
printf("%d",ans);
return ;
}
水
但这道题目还有扩大数据范围后的做法:
仔细观察方程:
f[i][j]=max(f[i][k]+,f[i][j]);
我们设的是i~j区间的最大值,这里有个巧妙的转化,设f[i][j]为j开始最大值达到i的右边界。
#include <cstdio>
using namespace std;
int N,x,f[][],ans;
int main(){
scanf("%d",&N);for(int i=;i<=N;i++)scanf("%d",&x),f[x][i]=i;
for(int i=;i<=;i++)
for(int j=;j<=N;j++){
if(!f[i][j]&&f[i-][j])f[i][j]=f[i-][f[i-][j]+];
if(f[i][j])ans=i;
}
printf("%d",ans);
return ;
}
数据扩大
USACO16OPEN_248&&USACO16OPEN_262144_KEY的更多相关文章
随机推荐
- LINQPad 编译调试C#代码的工具推荐
LinqPad介绍 学习C#代码的好帮手,很容易调试C#代码片段. LINQPad 4 支持.NET Framework 4.0 / 4.5 ,专业调试LINQ,lambda等特性,完全取代Snipp ...
- Windows+linux命令大集合
net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...
- C#图解教程读书笔记(第4章 类:基础)
类成员包括数据成员和函数成员. 和C/C++不同,C#在类型的外部不能声明全局变量,所有的字段都属于类型,而且必须在类型声明内部声明. 和C/C++不同,方法没有返回默认类型,所有方法必须包含返回类型 ...
- json查看器
jsonview: http://www.bejson.com/jsonviewernew/
- Python常用库之一:Numpy
Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度 ...
- JDBC(3)ResultSet
ResultSet 在执行查询(select)时候使用 这是一个结果对象,该对象包含结果的方法但指针定位到一行时 调用Statement 对象的 executeQuery(sql)可以得到结果集 可以 ...
- 使用ByPropertyName进行管道传输
管道参数绑定的两种方式: 可通过 help command -full查看 不同:简单讲ByPropertyName可以使B的多个参数被同时使用 使用ByPropertyName进行管道传输: 建立一 ...
- 谈谈Ajax(一)
解决办法是:比如我是使用SSM框架(Spring+SpringMVC+MyBatis/MyBatis Plus)开发web应用,通常Controller的参数列表与ajax的data保持一致即可,少一 ...
- 【转】理解Callable 和 Spring DeferredResult
http://www.cnblogs.com/aheizi/p/5659030.html 1-介绍 Servlet 3中的异步支持为在另一个线程中处理HTTP请求提供了可能性.当有一个长时间运行的任务 ...
- [转]HTTP报文接口及客户端和服务器端交互原理
1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务.该模型的目的 ...