2020.12.16 模拟赛x+1】的更多相关文章

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<…
[ 2020.8.23 N O I P 模 拟 赛 ] 失 落 [2020.8.23NOIP模拟赛]失落 [2020.8.23NOIP模拟赛]失落 题目描述 出题人心情很失落,于是他直接告诉你让你求出一个集合中所有数所不能凑出来的最小的数是多少. 输入 第一行一个整数 n n n. 第二行 nn 个整数 a i a_i ai​. 输出 一个整数表示答案. 样例输入 3 5 1 2 样例输出 4 题目解析 这道题是一道数学题,以 a n s ans ans来表示在这个集合里最小的不能凑出来的整数.…
这次的模拟赛,实在是水. 数据水,\(\texttt{std}\) 水,出题人水,做题人也水.??? 游记就说一句: 水. T1 metro 弱智题. 人均 \(100pts\). #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; inline int read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=…
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++…
可以区间dp,但是复杂度太高. 所以应该是贪心,怎么贪心呢? 这种题目,最好还是手玩找一些规律. 可以发现,由于保证可以m次填完,所以颜色之间没有相互包含关系. 比较像分治的模型. 所以考虑拿到一个区间怎么处理. 假设a[l]==a[r],那么为了合法,一定先刷这种颜色.然后分部分递归下去. 否则,对于区间:AEEGEABBBCDDC 里面的夹心肯定不能先处理了,可以大概看做:A..AB..BC..C 先刷哪一个? 刷两边长度较小的一个 证明: 如果刷中间,那么中间的位置之后就不能再动了.如果刷…
二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得到你之前猜大的庄家相应的ai元钱.如果开彩结果是小,你就可以得到你之前猜小的庄家相应的bi元钱.你可以在同一个庄家那里既猜大又猜小,(这样是两块钱),也可以什么都不猜(这样不用钱).问怎么样下注,才能赢得最多的有保障的钱.有保障的钱指不管开彩结果是大是小,你都能够赢得相应的钱.你能帮助他计算这个值吗…
可以发现,答案O(根号)(因为链上答案最大,n/2,n/3...根号种) 每次求答案要二分 优秀的做法是: 对于小于根号n的暴力nlogn找,可能二分到同一个mid,记忆化一下最小的tot值 对于大于根号n的枚举答案(从min(n/sqrt(n),ans[]之前ans最小值),,开始枚举)计算最少需要的tot关键点数量,一个区间答案就确定出来了. 卡卡常可过.…
https://www.luogu.org/blog/a23333/post-xing-xuan-mu-ni-sai-path-ji-wang-zui-duan-lu 如果设f[i]表示从i到n的期望 那么转移方程比较好列. 但是取min的环形转移? 反过来想, 如果我们知道了f[x]的大小关系, 其实,可以化简成 其实就是,我们把一些min变成f[x]然后再消一消. 其实转移貌似没有环了? 但是我们不知道大小关系. 一些边没有用,度数减少一些. 只有比f[x]小的f[y]会转移到x,感觉和最短…
题目描述 儿时的玩具总是使我们留恋,当小皮还是个孩子的时候,对玩具更是情有独钟.小皮是一个兴趣爱好相当广泛且不专一的人,这这让老皮非常地烦恼.也就是说,小皮在不同时刻所想玩的玩具总是会不同,而有心的老皮也会尽量满足他的要求,帮他买一些新玩具. 一开始小皮有一个长度为\(N\)的玩具序列 , 小皮的玩具可以用\(a,b,c,...,z26\)个英文字母表示,小皮可能会有\(q\)种需求,每种需求可以用一个二元组\((x,y)\)表示代表在此时最喜欢\(x\)这种玩具,他希望老皮帮他买回\(y\)个…
暴力\(DP\) 这题做法很多,有\(O(n^2)\)的,有\(O(n^2logn)\)的,还有徐教练的\(O(nlogn)\)的,甚至还有\(bzt\)的二分+线段树优化建图的费用流. 我懒了点,反正数据范围这么小,就写了个\(O(n^2)\)的暴力\(DP\). 先将两个数组都排序,一个显然的性质,就是人选择钥匙时不可能相交. 所以我们设\(f_{i,j}\)表示前\(i\)个人选择了前\(j\)把钥匙时所用最大时间的最小值. 转移也很简单. 代码 #include<bits/stdc++.…