B. Once Again...

Time Limit: 1 Sec

Memory Limit: 256 MB

题目连接

http://codeforces.com/contest/582/problem/B

Description

You are given an array of positive integers a1, a2, ..., an × T of length n × T. We know that for any i > n it is true that ai = ai - n. Find the length of the longest non-decreasing sequence of the given array.

Input

The first line contains two space-separated integers: n, T (1 ≤ n ≤ 100, 1 ≤ T ≤ 107). The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 300).

Output

Print a single number — the length of a sought sequence.

Sample Input

4 33 1 4 2

Sample Output

5

HINT

题意

给你一个n*t这么长的序列,然后求最长不递减序列

其中a[i+n]=a[i]

题解:

暴力,如果t<=300,我们就直接暴力求就好了

如果t>的话,我们就大胆猜测,中间肯定是连续选一个数

那么我们就预处理前面以a[i]开始的最长,和后面的以a[i]最长是啥就好了~

代码:

#include<iostream>
#include<stdio.h>
#include<queue>
#include<map>
#include<algorithm>
#include<string.h>
using namespace std;#define maxn 3225020int a[maxn];
int dp1[maxn];
int dp2[maxn];
int dp3[maxn];
int lis[maxn];int main()
{int n,t;scanf("%d%d",&n,&t);for(int i=1;i<=n;i++)scanf("%d",&a[i]);if(t<=300){int ans = 0;for(int i=1;i<=n;i++)for(int j=1;j<t;j++)a[j*n+i] = a[i];for(int i=1;i<=n*t;i++){lis[i]=1;for(int j=1;j<i;j++)if(a[i]>=a[j])lis[i]=max(lis[i],lis[j]+1);ans = max(lis[i],ans);}printf("%d\n",ans);return 0;}int k = 200;for(int i=1;i<=n;i++)dp2[a[i]]++;for(int i=1;i<=n;i++)for(int j=1;j<=k;j++)a[j*n+i] = a[i];for(int i=1;i<=k*n;i++){lis[i]=1;for(int j=1;j<i;j++)if(a[i]>=a[j])lis[i]=max(lis[i],lis[j]+1);dp1[a[i]] = max(dp1[a[i]],lis[i]);}memset(lis,0,sizeof(lis));reverse(a+1,a+1+k*n);for(int i=1;i<=k*n;i++){lis[i]=1;for(int j=1;j<i;j++)if(a[i]<=a[j])lis[i]=max(lis[i],lis[j]+1);dp3[a[i]] = max(dp3[a[i]],lis[i]);}int ans = 0;for(int i=0;i<=300;i++)for(int j=i;j<=300;j++)for(int m=j;m<=300;m++)ans = max(dp1[i]+dp2[j]*(t-2*k)+dp3[m],ans);printf("%d\n",ans);
}

转载于:https://www.cnblogs.com/qscqesze/p/4854607.html

Codeforces Round #323 (Div. 1) B. Once Again... 暴力相关推荐

  1. Codeforces Round #323 (Div. 2) C. GCD Table

    C. GCD Table 题目链接: http://codeforces.com/contest/583/problem/C 题意是给你n个数,可以构成n*n的GCD矩阵,矩阵里的元素顺序可以是任意的 ...

  2. 重复T次的LIS的dp Codeforces Round #323 (Div. 2) D

    http://codeforces.com/contest/583/problem/D 原题:You are given an array of positive integers a1, a2, . ...

  3. Codeforces Round #323 (Div. 2) A. Asphalting Roads

    A. Asphalting Roads time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. Codeforces Round #323 (Div. 2)

    被进爷坑了,第二天的比赛改到了12点 水 A - Asphalting Roads /************************************************ * Author ...

  5. Codeforces Round #323 (Div. 2) C.GCD Table

    C. GCD Table The GCD table G of size n × n for an array of positive integers a of length n is define ...

  6. Codeforces Round #323 (Div. 2): C. GCD Table(思维题)

    题意: 给你一个长度为n的序列a[1]~a[n], 之后用这个序列生成一个n*n的矩阵,其中矩阵第i行第i列的值为a[i],第i行第j列(j!=i)的值为Gcd(a[i], a[j]),现在给你一个矩 ...

  7. Codeforces Round #102 (Div. 1) A. Help Farmer 暴力分解

    A. Help Farmer 题目连接: http://www.codeforces.com/contest/142/problem/A Description Once upon a time in ...

  8. Codeforces Round #359 (Div. 2) C. Robbers' watch 暴力枚举

    题目链接 题意是真的烦,到最后才知道是n个m其实就是限定表的两个时区的位数,所以所当数不够填满时区的时候前边自动补零 思路:首先来说不能有重复的数字的话,小时和分钟的总位数大于7肯定不行. 7的7次方 ...

  9. Codeforces Round #552 (Div. 3) E. Two Teams 暴力+双向链表

    传送 题意:将n个人分成2个队,每次选取队伍中未被选取的最大值,然后顺便选取左边相邻的k个数(有多少拿多少) 问你最后队伍的分配情况. #include<bits/stdc++.h>usi ...

最新文章

  1. 壕!甲骨文创始人 8000 万美元买豪宅后打算拆掉
  2. 服务端JavaScript之Rhino
  3. 如何去除table的边框_如何擦玻璃,这些擦玻璃知识很实用
  4. jQuery接收后台返回的数据
  5. js中json的创建和解析
  6. POJ - 2186 Popular Cows(强连通缩点)
  7. 小练习——过滤掉出现次数最多的数据
  8. 安卓dts音频解码_DTS音效、解码、编码概念剖析
  9. NS3 MyApp Class Reference
  10. JavaScript将焦点设置为HTML表单元素
  11. Android AlertDialog 实现对话框 警告对话框、列表对话框、自定义对话框
  12. python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function
  13. python输入姓名输出欢迎你某某同学_Python交互环境下打印和输入函数的实例内容...
  14. CF18B/01背包
  15. 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
  16. java练习:图书销售管理系统(三),出版社管理
  17. 数组,异质结构以及指针的详解
  18. OSPF路由协议详解与实战演练
  19. React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
  20. 如何利用线圈的B-H磁滞回线量化磁环的性能及其对网络变压器的影响关系?

热门文章

  1. Linus下安装maven
  2. 服务器的智能监控管理结束,通过服务器监控告警进行异常排障
  3. 通过福禄克测试仪进行数据中心机房各个区域的测试或认证
  4. 87岁老奶奶用微软自带画图软件绘画 惊艳了世人
  5. DotNet 资源大全
  6. php渲染视图,Laravel 视图渲染:Blade 模板引擎
  7. apollo java客户端_携程配置中心Apollo的Java客户端API的使用
  8. linux网络编程之字节序
  9. mrsql查询第二高的成绩_mysql-查找用户的最高分数和相关的详细信息
  10. python 投资组合_重新设计投资组合的好处