题意:给你n个数(n<=100,ai<=300)  一个T,求n重复T次的最长非递减子序列。

题解:我直接考虑4 3 2 1 的例子,当其重复4次时会出现1 2 3 4 的子序列 ,此时再怎么重复,这也是最长的递增序列,无非是多出(T-n)个1.

  所以直接不完全(不会证明地)归纳处一个答案:ans=T>n?(T-n)*M+lis(a,n*n):lis(a,n*T) .M是n个数中重复次数最多的数,lis函数输出a数列的最长非递减子序列.(考虑如果重复最多的数并非最长子序列的起始数的情况:比如1244,观察最后四个循环1244124412441244,lis不再是1244,而会自动变成44444444,所以大概是不用考虑的,反正是猜想,交一发试试呗)

坑:第一次没考虑序列重复的情况(看到ai<=300还以为是桶排);

然后ans的公式手抽写错了 写成(T-1);

最后发现

c++17.0会wa2

clang 17 dignosed 会报list的错改好后MLE 1

c++14.0缺AC了  OTZ

ac:

#define  _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<string.h>
using namespace std;
typedef long long ll;
const int maxn = + ;
int lis[maxn*maxn], a[maxn*maxn];
int c[], M;
int list(int arr[], int n)
{
int i, j, max;
max = ;
for (i = ; i <= n; i++)
lis[i] = ; for (i = ; i <= n; i++)
{
for (j = ; j<i; j++)
{
if (arr[i] >= arr[j] && lis[i]<lis[j] + )
lis[i] = lis[j] + ;
}
} for (i = ; i <= n; i++)
if (max < lis[i])
max = lis[i]; return max;
} int main() {
int n, t; int M;
cin >> n >> t;
for (int i = ; i <= n; i++)
cin >> a[i], c[a[i]]++, M = max(M, c[a[i]]);
for (int i = ; i <= n; i++) {
for (int j = ; j <= n; j++) {
a[i*n + j] = a[j];
}
}
if (t > n)cout << (t - n)*M + list(a, n*n) << endl;
else { cout << list(a, n*t) << endl;
//for (int i = 1; i <= t*n; i++)cout << a[i]; }
cin >> n;
}

最新文章

  1. ARM汇编指令调试方法
  2. Dynamics AX 2012 R2 从代码中调用SSRS Report
  3. 洛谷P2925 [USACO08DEC]干草出售Hay For Sale
  4. input 文本框和 img 验证码对齐问题
  5. Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务
  6. sass 常用函数的整理
  7. oracle客户端安装及Plsql devloper连接
  8. 修改EditText的光标位置
  9. 小梦windows phone 8.1开发:语音朗读
  10. Swift中if与switch语句使用一例
  11. PHP算法学习(3) 冒泡排序
  12. linux设置自启动redis
  13. vs2010黑色主题Dark完美设置
  14. 前端笔记 (3.JavaScript 2)
  15. C#窗体模拟键盘按键(组合键)产生事件 ---- 通过keybd_event()函数
  16. Spring定时服务QuartZ
  17. Swift - transform.m34动画示例
  18. vs2010+Aspx进行sharepoint2010工作流开发(3) 资料整理
  19. C# - 反射与编译
  20. GDOI2018滚粗记

热门文章

  1. Git Step by Step – (4) 探索.git目录
  2. 本地Chrome测试JS代码报错:XMLHttpRequest cannot load
  3. Spark-scala-API
  4. Waf-Bypass-Learning
  5. 第四篇:MapReduce计算模型
  6. Kafka配置SSL(云环境)
  7. javascript的实现事件的一些实例
  8. STL——迭代器与traits编程技法
  9. Eclipse新建动态web工程项目出现红叉解决方案
  10. Mac 下如何下载、启动和关闭Tomcat 和管理Mac自带的Apache