BZOJ 3357: [Usaco2004]等差数列
3357: [Usaco2004]等差数列
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 338 Solved: 160
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1
4
3
5
7
Sample Output
HINT
Source
OTZ 美帝神题
本来想的是用SORT或HASH离散化所有的可能的公差,然后再分别跑个最长路,复杂度大概是$O(N^{2}log_{N})$或$O(N^{2})$的,然而好麻烦,不想写,(╯▔皿▔)╯
后来看到大家标的tag都是DP,动态规划之类的,想到可以直接在DP数组上做文章,看大多数懒人都是用的STL的map<int,int>勉强卡到9s,也有勤快人手写HASH表什么的。可惜BZOJ不支持C++14,不然有了unordered_map事情会简单很多。
写着写着就WA了,看看PoPoQQQ等大爷的题解才发现特殊处理蛮多的(起码有两处吧,2333~~~)。
#include <bits/stdc++.h> const int mxn = ; int n, ans, s[mxn]; std::map<int, int> f[mxn]; signed main(void)
{
scanf("%d", &n); if (n == )puts("");
else
{
for (int i = ; i <= n; ++i)
scanf("%d", s + i); for (int i = ; i <= n; ++i)
for (int j = ; j < i; ++j)
{
using std::max;
f[i][s[j]] = max(f[i][s[j]], );
f[i][s[j]] = max(f[i][s[j]], f[j][(s[j] << ) - s[i]] + ); ans = max(ans, f[i][s[j]]);
} printf("%d\n", ans);
}
}
@Author: YouSiki
BZOJ 3357: [Usaco2004]等差数列的更多相关文章
- BZOJ 3357: [Usaco2004]等差数列( dp )
dp(x, p) 表示序列中第x个数, 上一个数是p构成的等差数列的最长. 转移时从[1, x)中枚举p = seq[] 就行了.时间复杂度O(n²logn) -------------------- ...
- BZOJ 3357 [Usaco2004]等差数列:map优化dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3357 题意: 给你n个数a[i],让你找出一个最长的是等差数列的子序列. 题解: 表示状态 ...
- BZOJ 3357: [Usaco2004]等差数列 动态规划
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...
- 3357: [Usaco2004]等差数列
3357: [Usaco2004]等差数列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 321 Solved: 153[Submit][Statu ...
- [bzoj3357][Usaco2004]等差数列_动态规划_贪心
[Usaco2004]等差数列 题目大意:约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7”很容易看出“1,3,5,7”是等差数列.给出N(1≤N≤2000)数字A ...
- 等差数列(bzoj 3357)
Description 约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:"1,4,3,5,7" 很容易看出"1,3,5,7"是等差数列. ...
- BZOJ 3389: [Usaco2004 Dec]Cleaning Shifts安排值班
题目 3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec Memory Limit: 128 MB Description ...
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
dp dp( x , k ) = max( dp( x - 1 , k - 1 ) + *** , dp( x - 1 , k ) + *** ) *** = 0 or 1 ,根据情况 (BZOJ 1 ...
- BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...
随机推荐
- Spring学习(4)IOC容器配置bean:定义与实例化
一. IOC容器配置 1. 一些概念 (1)IOC容器: 定义:具有管理对象和管理对象之间的依赖关系的容器. 作用:应用程序无需自己创建对象,对象由IOC容器创建并组装.BeanFactory是IO ...
- Netty源码分析第6章(解码器)---->第1节: ByteToMessageDecoder
Netty源码分析第六章: 解码器 概述: 在我们上一个章节遗留过一个问题, 就是如果Server在读取客户端的数据的时候, 如果一次读取不完整, 就触发channelRead事件, 那么Netty是 ...
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- Spark Streaming流式处理
Spark Streaming介绍 Spark Streaming概述 Spark Streaming makes it easy to build scalable fault-tolerant s ...
- 天马行空云计算(二)-Hardware&Hypervisor介绍
天马行空云计算系列一介绍了总体抽象视图,本篇展开Hardware&Hypervisor 介绍.如下是介绍大纲: 本篇将基于上述架构从如下方面介绍说明 Linux设备驱动 因为上述提到的一些硬件 ...
- Linux-C语言标准输入输出
标准 I/O 库(stdio)及其头文件 stdio.h 为底层 I/O 系统调用提供了一个通用的接口.这个库现在已经成为 ANSI 标准 C 的一部分.标准 I/O 库提供了许多复杂的函数用于格式化 ...
- sublime c/c++ 环境
sublime c/c++ 环境 参考: 别人的教程1 别人的教程2 注意,一定要用cmd先试一下,编译成功后再用sublime试 我遇到了一个很诡异的问题,就是cmd运行正常但sublime显示 在 ...
- 第39次Scrum会议(12/5)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/5 11:35~11:57,总计22min.地点:东北师 ...
- 20162325 金立清 S2 W7 C16
20162325 2017-2018-2 <程序设计与数据结构>第7周学习总结 教材学习内容概要 树是非线性结构,其元素组织为一个层次结构 树的度表示树种任意结点的最大子结点数 有m个元素 ...
- youi软件测试计划
beta版本中,我们将重视软件开发中的测试. 我们的软件是需要测试的,不测试怎么知道好与不好呢?有的程序不测试甚至都不能运行-- 我们的目标呢:就是经过测试之后软件的质量得到有效的保证.不管什么情况都 ...