Once Again...
Once Again...
题意
给n个数,然后T次循环后组成一个新的数列,求这个数列的最长不递减子序列。
思路
因为最多就100个元素,所以当m<=100的时候直接暴力求最长不递减子序列,然后当m>=100的时候,因为每个循环节最少可以取1个元素,所以只要100个循环节就可以包括所有的数,然后再往里面插入剩下的一个在当前路径下在每段重复有最多的元素,也就是\((m-100)*cnt[k]\)(k就是那个数);复杂度(\(n^2\));
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL mod = 1e9+7;
int a[100005];
int dp[100005];
int cnt[100005];
int id[100005];
int main(void)
{
int n,m;
scanf("%d %d",&n,&m);
for(int i = 0;i < n;i++)
scanf("%d",&a[i]);
int maxx = 1;
if(m <= 100)
{
for(int i = n;i < n*m;i++)
{
a[i] = a[i-n];
}
dp[0] = 1;
for(int i = 1;i < n*m;i++)
{ dp[i] = 1;
for(int j = 0;j < i;j++)
{
if(a[i] >= a[j])
dp[i] = max(dp[j] + 1,dp[i]);
}
maxx = max(maxx,dp[i]);
}
}
else
{
for(int i = n;i < n*100;i++)
a[i] = a[i-n];
for(int i = 0;i < n;i++)
cnt[a[i]]++;
dp[0] = 1;
for(int i = 1;i < n*100;i++)
{ dp[i] = 1;
for(int j = 0;j < i;j++)
{
if(a[i] >= a[j])
{
if(dp[i] < dp[j] + 1)
{
dp[i] = dp[j] + 1;
id[i] = j;
}
}
}
int c = i;
while(c!=0)
maxx = max(maxx,dp[i] + (m-100)*cnt[a[c]]),c = id[c];
}
}
printf("%d\n",maxx);
return 0;
}
随机推荐
- linux 线程函数小结
由于主线程已经开始跑了,次线程还在使用串口打印需要一点时间,因此打印的都是重复的. #include "pthread.h" #include "stdio.h" ...
- 学习java的第十天
一.今日收获 1.java完全学习手册第二章2.9程序流程控制中的选择结构与顺序结构的例题 2.观看哔哩哔哩上的教学视频 二.今日问题 1.例题的问题不大,需要注意大小写,新的语句记忆不牢 2.哔哩哔 ...
- Celery进阶
Celery进阶 在你的应用中使用Celery 我们的项目 proj/__init__.py /celery.py /tasks.py 1 # celery.py 2 from celery ...
- js中!!的妙用
0.-0.null."".false.undefined 或者 NaN转化为false,其他为true
- deque、queue和stack深度探索(上)
deque是可双端扩展的双端队列,蓝色部分就是它的迭代器类,拥有四个指针,第一个cur用来指向当前元素,first指向当前buffer头部,last指向当前buffer尾部,node指向map自己当前 ...
- Spring的事务传播机制(通俗易懂)
概述 Spring的事务传播机制有7种,在枚举Propagation中有定义. 1.REQUIRED PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就 ...
- Mave 下载与安装
一,Maven 介绍 我们在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还需要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要.Maven是当前最受欢迎 ...
- css clip样式 属性功能及作用
clip clip 在学前端的小伙伴前,估计是很少用到的,代码中也是很少看见的,但是,样式中有这样的代码,下面让我们来讲讲他吧! 这个我也做了很久的开发没碰到过这个属性,知道我在一个项目中,有一个功能 ...
- JS - 字符串转换成数组,数组转换成字符串
1.字符串转换成数组: var arr = "1, 2, 3, 4, 5, 6"; arr.split(","); // ["1",&quo ...
- AOP切入点的配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...