AcWing 314. 低买 (线性DP)打卡
题目: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;
}
AcWing 314. 低买 (线性DP)打卡的更多相关文章
- AcWing 313. 花店橱窗 (线性DP)打卡
题目:https://www.acwing.com/problem/content/315/ 题意:有一个矩阵,你需要在每一行选择一个数,必须保证前一行的数的下标选择在下一行的左边,即下标有单调性,然 ...
- 动态规划——线性dp
我们在解决一些线性区间上的最优化问题的时候,往往也能够利用到动态规划的思想,这种问题可以叫做线性dp.在这篇文章中,我们将讨论有关线性dp的一些问题. 在有关线性dp问题中,有着几个比较经典而基础的模 ...
- 2018.08.16 洛谷P2029 跳舞(线性dp)
传送门 简单的线性dp" role="presentation" style="position: relative;">dpdp. 直接推一推 ...
- 线性dp
线性dp应该是dp中比较简单的一类,不过也有难的.(矩乘优化递推请出门右转) 线性dp一般是用前面的状态去推后面的,也有用后面往前面推的,这时候把循环顺序倒一倒就行了.如果有的题又要从前往后推又要从后 ...
- 非常完整的线性DP及记忆化搜索讲义
基础概念 我们之前的课程当中接触了最基础的动态规划. 动态规划最重要的就是找到一个状态和状态转移方程. 除此之外,动态规划问题分析中还有一些重要性质,如:重叠子问题.最优子结构.无后效性等. 最优子结 ...
- Hills——一道转移方程很“有趣”的线性DP
题目描述 Welcome to Innopolis city. Throughout the whole year, Innopolis citizens suffer from everlastin ...
- 最长子序列(线性DP)学习笔记
子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ...
- LightOJ1044 Palindrome Partitioning(区间DP+线性DP)
问题问的是最少可以把一个字符串分成几段,使每段都是回文串. 一开始想直接区间DP,dp[i][j]表示子串[i,j]的答案,不过字符串长度1000,100W个状态,一个状态从多个状态转移来的,转移的时 ...
- Codeforces 176B (线性DP+字符串)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28214 题目大意:源串有如下变形:每次将串切为两半,位置颠倒形成 ...
随机推荐
- Amber
训练做的题里有板子单独拉出来. 欧拉筛 ],prim[N+]; int cnt; void Eular() { vis[]=vis[]=; ;i<N;i++) if(!vis[i]) { pri ...
- java web中各种context的关系
我举得这篇文章解决了我的很多疑惑,理清了我以前不太清楚的Context关系,读懂这篇文章很有助于理解源码, 原文链接在这里:https://www.jianshu.com/p/2537e2fec546 ...
- 用php实现一个简单的爬虫,抓取电影网站的视频下载地址
昨天没什么事,先看一下电影,就用php写了一个爬虫在视频网站上进行视频下载地址的抓取,这里总结一下抓取过程中遇到的问题 1:通过访问浏览器来执行php脚本这种访问方式其实并不适合用来爬网页,因为要受到 ...
- jquery实现按键增加删除css属性(hide)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 表单验证之在a标签跳转之前执行其他操作(DOM与$两种实现方式)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【学习总结】Python-3-字符串函数-strip()方法
参考: 菜鸟教程-Python3-Python字符串-strip()方法 语法: str.strip([chars]); 参数: chars -- 移除字符串头尾指定的字符序列. 返回值: 返回移除字 ...
- elasticsearch 深入 —— 全文检索
全文搜索 我们已经介绍了搜索结构化数据的简单应用示例,现在来探寻 全文搜索(full-text search) :怎样在全文字段中搜索到最相关的文档. 全文搜索两个最重要的方面是: 相关性(Relev ...
- XMPP即时通讯协议使用(四)——Openfire服务器源码编译与添加消息记录保存
下载Openfire源码 下载地址:https://www.igniterealtime.org/downloads/index.jsp,当前最新版本为:4.2.3 Eclipse上部署Openfir ...
- php中xml元素取值问题
<?php $_xml = <<<_xml <?xml version="1.0" encoding="utf-8"?> & ...
- 全文检索引擎sphinx 与 Elasticsearch 索引速度对比
sphinx的特色之一是建立索引速度快,最近转投Elasticsearch后,一直想做个对比,网上资料常见说法是10倍的差距. 测试环境 硬件:单核,2G内存的E5-2630 虚拟机 操作系统:Cen ...