NCD 2019 C. Hasan and his lazy students
2024-08-31 22:49:36
题意:给你一组数,求最长的严格上升子序列及个数(mod 1e9+7)
题解:用动态规划来求LIS,记\(dp[i]\)是数组中第i个位置上的数的LIS最优解,我们遍历一遍原数组,然后找i位置前的LIS,如果\(a[j]<a[i]\)并且\(dp[j]+1>dp[i]\)那么当前i位置的最优解就应该更新成\(dp[j]+1\).然后我们再记一个\(res[i][length]\),表示i位置上长度为length的LIS的个数.最后统计一下长度最长的子序列有多少个就行了.
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <unordered_set>
#include <unordered_map>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define me memset
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
using namespace std;
typedef pair<int,int> PII;
typedef pair<long,long> PLL; int t;
int n,a[N];
ll res[2000][2000];
int dp[N]; int main() {
ios::sync_with_stdio(false);
cin>>t;
while(t--){
cin>>n;
me(res,0,sizeof(res));
for(int i=1;i<=n;++i){
cin>>a[i];
dp[i]=1;
res[i][1]=1;
}
for(int i=1;i<=n;++i){
for(int j=1;j<i;++j){
if(a[j]<a[i]){
dp[i]=max(dp[i],dp[j]+1);
res[i][dp[j]+1]=(res[i][dp[j]+1]+res[j][dp[j]])%mod;
}
}
}
sort(dp+1,dp+1+n);
ll cnt=0;
for(int i=1;i<=n;++i){
cnt=(cnt+res[i][dp[n]])%mod;
}
printf("%d %lld\n",dp[n],cnt);
}
return 0;
}
最新文章
- sublime Text 3 字体
- 安装Oracle问题总结
- Mac下用brew安装nginx
- Longest Valid Parentheses
- Thymeleaf学习内容
- Hadoop集群(第2期)_机器信息分布表
- webservice接口的发布
- java_jdbc_3层 解耦
- 【python自动化第四篇:python入门进阶】
- 【转】Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- Convert Sorted List to Binary Search Tree ------C++ 递归创建平衡二叉查找树
- jQuery圆形统计图实战开发
- php基础的第一天 任务点滴,event对象方法概括 ing....
- Day03——类、值和对象
- zookeoper在root下设置开机启动
- 双击打开Jar文件
- 通读cheerio API ——NodeJs中的jquery
- MTK Android software Tools工具的说明
- 方向导数,梯度和梯度下降之BGD,SGD
- CS229 6.5 Neurons Networks Implements of Sparse Autoencoder
热门文章
- .NET 调整图片尺寸(Resize)各种方法
- 【MySQL】汇总数据 - avg()、count()、max()、min()、sum()函数的使用
- Oracle 10g 如何调整 sga_max_size 与 sga_target
- CTS相关的几个表
- 环境配置-Java-02-卸载
- es_python_操作
- 前端面试之HTTP
- # Set the asyncio reactor&#39;s event loop as global # TODO: Should we instead pass the global one into the reactor?
- Python学习【第2篇】:基本数据类型
- poj2631