XMU 1605 nc与数列 【动态规划】
1605: nc与数列
Time Limit: 2000 MS Memory Limit: 64 MB
Submit: 84 Solved: 13
[Submit][Status][Web Board]Description
nc最近很无聊~所以他总是想各种有趣的问题来打发时间。
nc在地上写了一些数字,他发现有一些有趣的数列:这些数列是非递减的,且从第三个数开始,数字的大小总是前两个数的和。如著名的Fibonacci数列:1 2 3 5 8 13 ...,或者其他满足条件的数列:2 2 4 6 10 16。他现在给你n个数字,想让你从中取出尽量多的数字,对其重新排列后使其满足上述条件,并输出其长度Input
第一行为N,表示有N个数字,1<=N<=1000
以下有N个数字a1...an,其中0<=ai<=10^9。Output
一个整数,表示最长有趣数列的长度。
Sample Input
6
6 5 4 3 2 1Sample Output
4HINT
我们可以找到许多满足条件的序列:
如:
1
5 6
2 4 5
1 2 3 5
由于最长的序列为1 2 3 5,故我们只需输出其长度4。
Source
题目链接:
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1605
题目大意:
题目给出一些数a[i],求从中取出最多的数,且能够构成下述数列:
一个非递减数列,且从第三个数开始,数字的大小总是前两个数的和。
问最多能取出多少数。
题目思路:
【动态规划】
先把所有数从小到大排序,f[i][j]表示前i个数,构成数列最后一项为a[j]的最长数列长度。
转移的时候因为有a[i]和a[j]可以推出再之前的数。
找上一个数可以用二分但我用了for(因为懒)
/****************************************************
Author : Coolxxx
Copyright 2017 by Coolxxx. All rights reserved.
BLOG : http://blog.csdn.net/u010568270
****************************************************/
#include<bits/stdc++.h>
#pragma comment(linker,"/STACK:1024000000,1024000000")
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define mem(a,b) memset(a,b,sizeof(a))
const double EPS=1e-;
const int J=;
const int MOD=;
const int MAX=0x7f7f7f7f;
const double PI=3.14159265358979323;
const int N=;
const int M=;
using namespace std;
typedef long long LL;
double anss;
LL aans;
int cas,cass;
int n,m,lll,ans;
int a[N];
int f[N][N];
int main()
{
#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
int x,y,z;
// for(scanf("%d",&cass);cass;cass--)
// for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
// while(~scanf("%s",s))
while(~scanf("%d",&n))
{
for(i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a++n);
if(n<)
{
printf("%d\n",n);
continue;
}
ans=;
f[][]=f[][]=;
f[][]=;
for(i=;i<=n;i++)
{
for(j=i-;j>=;j--)
{
f[i][]=;
f[i][j]=;
for(k=j-;k>=;k--)
{
if(a[j]+a[k]<a[i])break;
if(a[j]+a[k]==a[i])
f[i][j]=max(f[i][j],f[j][k]+);
}
ans=max(f[i][j],ans);
}
}
printf("%d\n",ans);
}
return ;
}
/*
//
//
*/
XMU 1605 nc与数列 【动态规划】的更多相关文章
- XMU 1608 nc与加法进位 【二分】
1608: nc与加法进位 Time Limit: 2000 MS Memory Limit: 128 MBSubmit: 29 Solved: 27[Submit][Status][Web Bo ...
- XMU 1607 nc与点对距离 【线段树】
1607: nc与点对距离 Time Limit: 5000 MS Memory Limit: 512 MBSubmit: 60 Solved: 8[Submit][Status][Web Boa ...
- XMU 1606 nc与滴水问题 【模拟】
1606: nc与滴水问题 Time Limit: 1000 MS Memory Limit: 64 MBSubmit: 85 Solved: 27[Submit][Status][Web Boa ...
- loj 6037 「雅礼集训 2017 Day4」猜数列 - 动态规划
题目传送门 传送门 题目大意 有一个位置数列,给定$n$条线索,每条线索从某一个位置开始,一直向左或者向右走,每遇到一个还没有在线索中出现的数就将它加入线索,问最小的可能的数列长度. 依次从左到右考虑 ...
- luogu P2401 不等数列 |动态规划
题目描述 将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入">"和"<".问在所有排列中,有多少个排列恰好有k个"< ...
- Luogu 1415-拆分数列-动态规划
Solution 首先要找到使得最后一个数最小, 只需定义一个数组$pre[i]$ 从区间$[pre[i], i]$表示的数, 是最小的能使前面的数递增的方案. $[ pre[n], n]$即为最小的 ...
- 动态规划——DP算法(Dynamic Programing)
一.斐波那契数列(递归VS动态规划) 1.斐波那契数列——递归实现(python语言)——自顶向下 递归调用是非常耗费内存的,程序虽然简洁可是算法复杂度为O(2^n),当n很大时,程序运行很慢,甚至内 ...
- 【动态规划】POJ 1161 & ZOJ1463 & XMU 1033 Brackets sequence
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1033 http://poj.org/problem?id=1141 ZOJ目前挂了. ...
- 【最长下降子序列】【动态规划】【二分】XMU 1041 Sequence
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1041 题目大意: 一个二维平面,上面n(n<=1 000 000)个点.问至少选 ...
随机推荐
- solr 分析器
源https://www.w3cschool.cn/solr_doc Solr 分析器被指定为 schema.xml 配置文件中的<fieldType>元素的子元素(在与 solrconf ...
- LeetCode(15) 3Sum
题目 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...
- LeetCode01--两数之和
''' 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给 ...
- H5在ios弹窗状态下调起输入法后关闭输入法页面元素错位解决办法
最近开发移动端,有个需求:点击退款弹出文本框和发送短信按钮,输入手机号码和验证码确定退款. 发现安卓手机没毛病,但是在ios手机上点击文本框调起输入法,此时点击完成或者关闭输入法就无法正常操作了,肉眼 ...
- Java 关于循环的练习--和为n的正数序列
要求:输入一个正数n,输出所有和为n的连续正数序列. 分析可以从1开始连续加,若到i的和等于n则输出1到i之间的连续正数,若到i的和大于n,则改为从2开始连续加,再判断到i的和是否等于n,等于则输出2 ...
- Go切片基础
package main import "fmt" //切片(Slice)本身没有数据,是对底层Array的一个view //不使用指针就可以改数组内容 //slice可以向后扩展 ...
- html5的新通讯技术socket.io,实现一个聊天室
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- GOF 23种设计模式目录
经典的gof 23种设计模式,目录大纲查看. 1. Singleton(单例模式) 保证一个类只有一个实例,并提供访问它的全局访问点. 2. Abstract Factory(抽象工厂模式) 提供一个 ...
- [Bzoj4517]排列技术(错排 + 预处理)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 1508 Solved: 915[Submit][Statu ...
- [Poj3744]Scout YYF I (概率dp + 矩阵乘法)
Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9552 Accepted: 2793 Descr ...