NCD 2019题解C. Hasan and his lazy students【dp求lis,顺序维护方案数】
题目链接
题意,给序列,求最长上升子序列长度和方案数。
n<=1000,因为n小于1e3,所以可以使用复杂度为n2的dp做法,然后使用一个结构体来维护方案数就行了:
先定义一个结构体,包含dp求lis基本的len,还有就是方案数cnt。
struct func
{int len;LL cnt;
};
int a[1001];
func dp[1001];
读完数据和基础初始化之后开始进行dp求lis,然后当找到
dp[j].len+1==dp[i].len
的时候就可以让他们的方案数加起来了。最后的答案方案数就能很好取出来。
int MAX=1;for(int i=1;i<=n;++i){for(int j=1;j<i;++j){if(a[i]>a[j]){if(dp[j].len+1==dp[i].len){dp[i].cnt+=dp[j].cnt;dp[i].cnt%=mod1;}if(dp[j].len+1>dp[i].len){dp[i].len=dp[j].len+1;dp[i].cnt=dp[j].cnt;}}}MAX=max(MAX,dp[i].len);}LL ans=0;for(int i=1;i<=n;++i){if(dp[i].len==MAX){ans+=dp[i].cnt;ans%=mod1;}}
NCD 2019题解C. Hasan and his lazy students【dp求lis,顺序维护方案数】相关推荐
- NCD 2019题解M. NCD Salary【数学式子处理】
题目 题意,求ab和cd大小关系.均是大数 做一下数学处理:两边取对数,变成blog(a) 和 dlog©:底数是什么无关紧要,为了方便,用c++自带的log10函数就很棒.这里需要特判一下b和d等于 ...
- 寒假训练2 (NCD 2019)
NCD 2019部分题解 A B C D E F G H J K L M A A - Hasan the lazy judge B B - Let me sleep C C - Hasan and h ...
- CSP-S 2019 题解(部分) 游记(伪)
CSP-S 2019 题解(部分)& 游记(伪) 文章同步发表在 cnblogs,Hexo day 0 - 8:00 a.m.\text{day 0 - 8:00 a.m.}day 0 - 8 ...
- 十二省联考 2019 题解
[十二省联考2019]异或粽子 首先异或转前缀和,类似超级钢琴,将三元组 ( l , r , p ) (l,r,p) (l,r,p) 插入堆,表示 s u m [ p ] sum[p] sum[p] ...
- PA 2019 题解(20/22)
从今天起,关心粮食和蔬菜. A + B 发现这种计算方式不存在进位,计算过程中只有每个相加的位在得数中对应一个长度为 1 或 2 的段,对原字符串进行每个划分的方案数 dp 即可.Θ(logn)\T ...
- java蓝桥杯算法训练 求1000以内的完数(题解)
试题 算法训练 求1000以内的完数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为"完数". ...
- jzoj5990. 【北大2019冬令营模拟2019.1.6】Bear (状压dp)
题面 题解 我永远讨厌dp.jpg 搞了一个下午优化复杂度最后发现只要有一个小trick就可以A了→_→.全场都插头dp就我一个状压跑得贼慢-- 不难发现我们可以状压,对于每一行,用状态\(S\)表示 ...
- 2019 ICPC Asia-East Continent Final (EC-final 2019)题解
2019 ICPC Asia-East Continent Final 题目 A. City C. Dirichlet kkk-th root D. Fire E. Flow H. King M. V ...
- NCD 2019 with @Zlrrr
已经 AK.题解和代码会发布到 @Zlrrr 的博客. 转载于:https://www.cnblogs.com/zufezzt/p/10886940.html
最新文章
- Flask 教程 第十三章:国际化和本地化
- mysql 中default 和NULL
- github果然强大
- XSLT2.0---多文件输出
- C语言---链表的基本应用
- kafka与Spring的集成
- Android自定义控件学习(一)-----属性
- Spring Cloud分布式微服务系统中利用redssion实现分布式锁
- jquery+thinkphp实现跨域抓取数据的方法
- 记录:txt文本分割命令,用于notepad++无法打开情况下分割文件
- 罗马数字转换器|罗马数字生成器
- win10壁纸存储位置_这是Windows 10存储其默认壁纸的位置
- 计算机桌面不同步,电脑有时候出现时间不同步怎么办,解决方法
- 问君硅谷几多渣?先把Snapchat总裁扒一扒
- qBittorrent
- iOS固定图片高度,宽度自适应缩放
- bert获得词向量_手把手教你完成句子分类,最好上手的BERT初级使用指南
- cocos2d中getasynckeystate android,分析Cocos2d-x横版ACT手游源代码 4、场景
- 用手动Ghost重装系统(gho镜像)
- 基于C语言的数据结构课程设计(学生管理系统、停车场管理、家谱管理、校园导航系统)