题目:https://www.acwing.com/problem/content/316/

题意:求一个最长单调递减子序列,然后并且求方案数,如果序列完全一样就不要了

思路:我们肯定时修改LIS,我们在求得当前结尾得最长长度后,我们遍历前面是否有和当前数相等得数,如果有就把他的长度清零,避免重复方案数,然后我们再用一个数组记录以当前结尾得方案数有多少个

#include<bits/stdc++.h>
#define maxn 100005
#define mod 1000000007
using namespace std;
typedef long long ll;
ll f[maxn],g[maxn],a[maxn],n;
int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>a[i];
}
g[]=;
for(int i=;i<=n;i++){
for(int j=;j<i;j++){
if(j==||a[i]<a[j])
f[i]=max(f[i],f[j]+);
}
for(int j=;j<i;j++){
if(a[j]==a[i]){
f[j]=;
}
}
for(int j=;j<i;j++){
if((!j||a[j]>a[i])&&f[i]==f[j]+){
g[i]+=g[j];
}
}
}
ll mx=;
for(int i=;i<=n;i++){
mx=max(mx,f[i]);
}
ll sum=;
for(int i=;i<=n;i++){
if(f[i]==mx){
sum+=g[i];
}
}
/*for(int i=1;i<=n;i++){
cout<<g[i]<<" ";
}
cout<<"\n";*/
cout<<mx<<" "<<sum;
}

最新文章

  1. sqlite 数据类型
  2. Visual Studio 2012 主题下的代码配色方案
  3. redis的实现过程
  4. js调试技巧 Firefox调试技巧汇总
  5. sql一些命令
  6. Java引用类型变量
  7. [安全]PHP能引起安全的函数
  8. 新概念英语(1-119)who call out to the thieves in the dark?
  9. [ZooKeeper] 1 基本概念
  10. Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
  11. Java正则表达式应用
  12. 修改xshell的默认字间距和行间距
  13. mysql在查询中常见问题汇总
  14. 10个HTML5美化版复选框和单选框
  15. ICS 组件 for lazarus 1.0.12
  16. 想涨工资吗?那就学习Scala,Golang或Python吧
  17. codeblocks编译pthread问题
  18. excel 怎么添加超链接
  19. oracle 3大范式 理解
  20. java基础-迭代器(Iterator)与增强for循环

热门文章

  1. FCKEditor添加字体
  2. poj3253Fence Repair (Huffman)
  3. ScoutSuite:一款针对云集群环境的安全审计工具
  4. React后台管理手动封装图片上传组件
  5. 2019 年「计算机科学与工程学院」新生赛 暨ACM集训队选拔赛 # 1
  6. spring-第十三篇之零配置支持
  7. 重温位运算、原码、反码、补码、以及&gt;&gt;和&lt;&lt;&lt;区别
  8. mintUI修改toast样式的问题解决办法
  9. gulp run 报错 gulp[3192]: src\node_contextify.cc:628: Assertion `args[1]-&gt;IsString()&#39; failed.
  10. php开启xdebug扩展及xdebug通信原理