[8.16模拟赛] 玩具 (dp/字符串)】的更多相关文章

题目描述 儿时的玩具总是使我们留恋,当小皮还是个孩子的时候,对玩具更是情有独钟.小皮是一个兴趣爱好相当广泛且不专一的人,这这让老皮非常地烦恼.也就是说,小皮在不同时刻所想玩的玩具总是会不同,而有心的老皮也会尽量满足他的要求,帮他买一些新玩具. 一开始小皮有一个长度为\(N\)的玩具序列 , 小皮的玩具可以用\(a,b,c,...,z26\)个英文字母表示,小皮可能会有\(q\)种需求,每种需求可以用一个二元组\((x,y)\)表示代表在此时最喜欢\(x\)这种玩具,他希望老皮帮他买回\(y\)个…
[10.18模拟赛] 序列 题目描述 山山有一个整数序列s1,s2,-,sn,其中1≤si≤k. 求出有多少个准确移除m个元素后不同的序列.答案模(1e9+7) 输入 输入包括几个测试用例,并且由文件结束终止. 每一个测试用例的第一行包含整数n,m和k. 第二行包含n个整数,即s1,s2,-,sn. 输出 对于每一个测试用例,输出一个表示结果的整数. 样例输入 3 2 2 1 2 1 4 2 2 1 2 1 2 样例输出 2 4 提示 \(1 ≤ n ≤ 10^5:1 ≤ m ≤ min{n -…
1 考试时又犯了一个致命的错误,没有去思考T2的正解而是去简单的推了一下式子开始了漫漫找规律之路,不应该这样做的 为了得到规律虽然也打了暴力 但是还是打了一些不必要的程序 例如求组合数什么的比较浪费时间了. 考试后在我看来这都是浪费时间了 浪费了我足足1h30min 其实是可以避免的 得不到正解先去看下一道题 都做完了再回来重新审视这道题. 2 T3的正解推得的时间虽然不长但是没有仔细思考自己的做法是否优秀尽管应该是正确的 但是不充足的思考让我的代码变得非常的冗长. 例如 一些区间求和的操作我完…
给出1-n的序列插入一个bst: 给出T组询问,包含n,h分别代表点数为n,高度为h的树,求所有插入顺序的合法方案数,模1e9+7 样例输入 1 2  1 样例输出 2 #include<bits/stdc++.h> #define LL long long #define rep(i,x,y) for(register int i=x;i<=y;i++) using namespace std; inline int read(){ ,f=;char ch=getchar(); ;ch…
Link: 传送门 A: 套路题结果想了好久…… 排序二叉树的性质就是中序遍历单调递增 于是只考虑当前树的中序遍历的序列即可,与树的形态无关 将序列改成严格单调增想到最大化不变的数,但直接LIS求的是改为非严格单调增的数 一个将严格单调增问题改为非严格的套路是将数$a_i$替换成$a_i-i$,对转换后序列求LIS即可 (其实也可以理解为在严格单增问题中能拓展的条件为$a[i]-a[k]\ge i-k$,那么也就是$a[i]-i\ge a[k]-k$) #include <bits/stdc++…
没有原题... 囧.. [问题描述] 游戏规则是这样,有n(1<=n<=100)行格子,第一行由n个格子,第二行有n-1个格子,第三行由n-2个格子,……以此类推,第n行有1个格子.要求再这些格子上摆放棋子.摆放的时候要注意,每一个格子只能放一个棋子.同一行的格子摆放必须遵守从左至右的顺序,在一行内从左至右摆放时不能跳过某个格子来摆放.每一行放的棋子数不能超过上一行的棋子数. 输入文件(diagrams.in):仅1行,一个正整数n. 输出文件(diagrams.out):仅1行,方案总数.…
$code$ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ], l = , r = , ans = ; ][], P[], Q[]; bool check(int L) { memset(dp, , sizeof(dp)); memset(P, , sizeof(P)); memset(Q, , sizeof(Q)); ; i <= n; i++) f…
A. 接力比赛 跑两遍背包,再进行一些玄学的剪枝 代码 #include<cstdio> #include<algorithm> #define rg register inline int read(){ rg int x=0,fh=1; rg char ch=getchar(); while(ch<'0' || ch>'9'){ if(ch=='-') fh=-1; ch=getchar(); } while(ch>='0' && ch<…
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> using namespace std; ; int n,k,a[maxn]; char cmd; int main(){ freopen("str.in","r",stdin); freopen("str.out&q…
题目来源:by lzz \(Description\) 给定一张有向图,求对于哪些点,删除它和它的所有连边后,图没有环. \(n\leq 5\times10^5,m\leq 10^6\). \(Solution\) 题目等价于求所有环的交集. 首先两个特判:如果原图没有环,输出所有点:如果删掉原图的某个环后,仍存在环,输出\(0\).这也是不少分了. 先求出图中的某个环,环交当然在这个环上.我们只需要处理这个环. 把环拆成链,发现所有除它外的环只有两种情况: 对于第一种情况, 如果做过这个链的S…