关注
//采用暴力的方法做的,可惜时间不够了,给的例子通过了,不知道还有没有什么问题。仅供参考
#define _CRT_SECURE_NO_WARNINGS
// #define STDIN_OUT
#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
#include<stack>
#include<string>
#include<string.h>
#include<map>
#include<cmath>
#include<deque>
#include<unordered_map>
using namespace std;
class Solution {
public:
int lcs(vector<int> str1,vector<int> str2)
{
int len1 = str1.size();
int len2 = str2.size();
vector<vector<int>> a(len1+1,vector<int>(len2+1,0));
int n_max = 0;
for(int i = 0; i < len1; i++) a[i][0] = 0;
for(int j = 0; j < len2; j++) a[0][j] = 0;
for(int i = 1; i <= len1; i++){
for(int j = 1; j <= len2; j++){
if(str1[i-1] == str2[j-1])
a[i][j] = a[i-1][j-1] + 1;
else{
a[i][j] = max(a[i-1][j],a[i][j-1]);
}
n_max = max(n_max,a[i][j]);
}
}
return n_max;
}
void dfs(int n, int k, int start, int cur,vector<int> path, vector<vector<int>> &res){
if(cur == k){
res.push_back(path);
return;
}
if(cur < k)
for(int i = start; i <= n; i++){
path.push_back(i);
dfs(n,k,start,cur+1,path,res);
path.pop_back();
}
}
vector<vector<int>> combine(int start,int end, int k) {//所有的排列组合
vector<vector<int>> res;
vector<int> path;
dfs(end,k,start,0,path,res);
return res;
}
};
int main()
{
#ifdef STDIN_OUT
freopen("D:\\input.txt", "r", stdin);
freopen("D:\\output.txt", "w", stdout);
#endif
int m,n,L,R,k;
vector<int> str1;
Solution s;
cin>>n>>m;
cin>>k;
cin>>L>>R;
for(int i = 0; i < n;i++)
{
int val;
cin>>val;
str1.push_back(val);
}
vector<vector<int>> res = s.combine(L,R,m);
int count = 0;
for(auto re : res){
int LCIS = s.lcs(str1,re);
if(LCIS >= k)
count = (count + 1) % 10007;
}
cout<<count<<endl;
#ifdef STDIN_OUT
fclose(stdin);
fclose(stdout);
#endif
return 0;
}
查看原帖
点赞 评论
牛客热帖
正在热议
# 25届秋招总结 #
445615次浏览 4556人参与
# 春招别灰心,我们一人来一句鼓励 #
42785次浏览 544人参与
# 地方国企笔面经互助 #
8068次浏览 18人参与
# 同bg的你秋招战况如何? #
78277次浏览 573人参与
# 实习必须要去大厂吗? #
55940次浏览 962人参与
# 虾皮求职进展汇总 #
118061次浏览 896人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11933次浏览 302人参与
# 实习,投递多份简历没人回复怎么办 #
2456134次浏览 34871人参与
# 提前批简历挂麻了怎么办 #
150124次浏览 1980人参与
# 在找工作求抱抱 #
906583次浏览 9424人参与
# 如果公司给你放一天假,你会怎么度过? #
4798次浏览 57人参与
# 你投递的公司有几家约面了? #
33241次浏览 188人参与
# 投递实习岗位前的准备 #
1196502次浏览 18553人参与
# 机械人春招想让哪家公司来捞你? #
157710次浏览 2267人参与
# 双非本科求职如何逆袭 #
662848次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12972次浏览 62人参与
# 工作中,努力重要还是选择重要? #
36262次浏览 387人参与
# 简历中的项目经历要怎么写? #
87068次浏览 1517人参与
# 参加完秋招的机械人,还参加春招吗? #
20207次浏览 240人参与
# 我的上岸简历长这样 #
452233次浏览 8091人参与