题目大意
给定长度为 的序列 ,求其最长严格上升子序列(LIS)的长度。
AC代码
该题目实际上是要求最长上升子序列严格递增
AC https://www.luogu.com.cn/record/183531657
实际上我这题做法是O(n^2)的,不能通过下面这题。
1 |
|
给定长度为 n 的序列 A,求其最长严格上升子序列(LIS)的长度。
该题目实际上是要求最长上升子序列严格递增
AC https://www.luogu.com.cn/record/183531657
实际上我这题做法是O(n^2)的,不能通过下面这题。
1 | #include <iostream> |
给定一串导弹的高度序列(按到达顺序)。
1)求最多能用多少套“拦截系统”把所有导弹拦截完(每套系统只能拦截一个不升的序列)。
2)求这串序列的最长严格上升子序列长度。
输出两行分别为上述两个答案。
根据题意,我们要求最长单调子序列
个人认为讲的比较好的leetcode题解,贪心
这种做法即维护了接纳信息,又维护了长度信息,一举两得。
然后注意写a.begin(),不要写begin(a),前面的是C++98写法
AC. https://www.luogu.com.cn/record/183637393
1 | // https://www.luogu.com.cn/problem/P1020 |
给定 n 个人,每个人有一个所属组别 teami∈{1,2,3} 和一个权重 si。需要把所有人重新分到 3 组,使得每组权重和都等于总和的 1/3,并且最少改变人数(把一个人从原组分到别组算一次改变)。输出最少改变数;若无法平分则输出 −1。
具体思路见此视频
【AtCoder 初学者竞赛 375比赛讲解】 【精准空降到 1:09:56】 https://www.bilibili.com/video/BV1UR26YnEpX/?share_source=copy_web&vd_source=6ca0bc05e7d6f39b07c1afd464edae37&t=4196
1 | // E - 3 Team Division |
给定多组数据。每组有 n 个物品,每个物品有两个值 Ai、Bi,需要选出恰好 k 个物品,使得 max(A) 与所选 B 的和构成的目标值最小(题目要求输出该最小值)。
总体思路就是A的值只由最大Ar决定,那么其他值怎么填那?自然是使他们的B值总和最小
然后记得sumB要归0。
AC https://atcoder.jp/contests/abc376/submissions/59002823
1 | #include <iostream> |