Noip模拟29(瞎眼忌) 2021.8.3】的更多相关文章

\(noip模拟29\;solutions\) 这次考试给我最大的伤害,让我意识到了差距 这场考试可以说是非常的简单,就是简单到,看两眼,打个表就有结果了 但是呢?我考得非常的完蛋,只有30pts 据说上一届做这题随便切: 考完之后一看,这第一题第三题都有人切了,我就非常的伤心,但是把题都改过来之后 还是很开心,明天一定要好好考,今天的状态非常不好 明天提起精神A掉至少一道题!!!! \(T1\; 最长不下降子序列\) 确实,乍一看这题还是挺简单的,我说着我树状数组打的非常的熟练, 就个这玩意不…
T1第一眼觉得是网络流 看见4e6条边200次增广我犹豫了 O(n)都过不去的赶脚.. 可是除了网络流板子我还会什么呢 于是交了个智障的EK 还是用dijkstra跑的 居然有50分!$(RP--)$ T2题意不是很清楚,打的QJ算法也过不了大样例 于是题审错了,暴力写挂 除了有skyh那种人25其实也挺大众了.. T3,栈? 单向修改? 可以用前缀和? 主席树? 想了想能过 然后就放走了..放走了..$Let it Go..$ 脑子一抽先去打更难的前两题 最后1h才想起来T3的正解貌似不是很好…
T1 最长不下降子序列 在此记录自己的瞎眼... 考场上像一个傻$der$,自己为了防范上升序列和不下降序列的不同特意的造了一组$hack$数据来卡自己:(第一行是序列长度,第二行是序列) 6 1 5 2 3 3 7 结果...眼瞎把$LIS$ 看成了$4$,$TMD$是5鸭!!.... 严重怀疑$IQ$..... 好了好了,就是又翻车了...连个暴力也没打对.... 正解可以考场上打表想到,不过场上大力攻克$T3$线段树发现循环节也没细想,抡了个暴力去码T3了 发现$D$只有$150$,那么最…
T1 最长不下降子序列 数据范围$1e18$很不妙,但模数$d$只有$150$,考虑从这里突破. 计算的式子是个二次函数,结果只与上一个值有关,而模$d$情况下值最多只有$150$个,就证明序列会出现循环. 发现每个循环节的贡献之可能是$1$或$2$(考场没考虑到贡献$2$的情况直接爆$0$),并且贡献为$2$的情况($1$个相等,$1$个大于)最多只有循环节长度$len$个. 那么就可以把贡献为$1$的循环节拎出来不计算,树装数组计算剩余的序列,最后加和即可. $code:$ 1 #inclu…
T1 Hunter 考场上没写$%p$挂了25分.也是很牛皮,以后打完过了样例一定要检查 因为样例太小了......很容易忘记%%%% 正解随便手模就出来了. 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 const int NN=1e5+5,p=998244353; 5 int n,w[NN],ans; 6 inline int qmo(int a){ 7 int ans=1,b=p-2,…
这次考得好纯属是侥幸,我T3打表试数试了两个小时,没有想打T2的正解(其实是打不出来)所以这个T3A掉纯属是侥幸,以后还是要打正解 (以下博客最好按全选观看,鬼知道为啥这个样子!) 在这里也口胡一下我的打表找规律的方法!: 首先使用一个next_permutation暴力出来n<=8的解, 0 500000004 500000005 250000005 250000008 416666681 416666690291666705 我们发现n==2的时候就是2的逆元,那么我们就可以推测出线性递推的…
题解 \(by\;zj\varphi\) 首先考虑,如果将一个点修改成了黑点,那么它能够造成多少贡献. 它先会对自己的子树中的答案造成 \(w_x\) 的贡献. 考虑祖先时,它会对不包括自己的子树造成 \(w_fa\) 的贡献. 那么思路很显然,直接暴力向上更新,若更新到一个祖先,它已经被更新过了,那么更新完它之后直接退出就行,因为再向上,一定已经被更新过了. 实现的过程用在 \(\rm dfs\) 序上建线段树即可. 这样,每个点最多被更新一次,在询问时,最多重复更新一个点,所以总复杂度为 \…
题解 \(by\;zj\varphi\) 一道 \(\rm dp\) 题. 现将所有种类从小到大排序,然后判断,若最小的已经大于了 \(\rm l\),那么直接就是一个裸的完全背包,因为选的总数量有限制. 设 \(\rm f_{i,j,k}\) 为选了前 \(\rm i\) 种物品,总数为 \(\rm j\),容量为 \(\rm k\),是否可行,转移很简单. 对于另一种情况,能构造出的最小差距就是 \(v_1\),那么只要记录一下模 \(\rm v_1\) 的值即可. 设 \(\rm f_{i…
题解 \(by\;zj\varphi\) 观察这个序列,发现模数很小,所以它的循环节很小. 那么可以直接在循环节上做最长上升子序列,但是循环节中的逆序对会对拼接后的答案造成影响. 没有必要找逆序对个数,直接将循环节大小个拼接在一起即可. Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #def…
这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分,\(t2\) 写的 \(exgcd\) 因为变量打错没用上 A. 最长不下降子序列 第一眼看上去没思路-- 看见 \(n\) 的范围太大了,估计得从数列生成上做文章 一开始研究了半天二次函数之类的东西,试图寻找单调性之类的东东 后来索性不会还是打个表找规律吧 咦?居然循环了? (这个样例给的刁钻呀)…