题解 \(by\;zj\varphi\) 用两个集合分别表示 \(1\) 边联通块,\(1,2\) 边联通块 . \(\rm son_x\) 表示当前节点通过 \(3\) 类边能到的 \(2\) 联通块的数量,\(tw\) 表示当前节点 \(2\) 联通块的大小. 这些都可以预处理出来,最后在计算答案时不要忘了加上父亲的贡献. 最后因为并查集只有合并而没有拆开,所以复杂度为 \(\mathcal O\rm (nlogn)\). Code #include<bits/stdc++.h> #def…
6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前言 考试的时候用一个自己感觉非常妙的思路骗了20pts,因为是双向边,所以分成两个边存,边的tot从2开始,这样可以保证没一组边的序号通过取\(xor\)可以相互转化. 然后对于每一个边记录经过次数,并且记一下经过次数为1和2的边的总数,然后对于dfs时转移的就是状压的每组边的状态,当然也可以拿Hash存…
5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[尴尬\(.jpg\)] \(T1\)P3322 [SDOI2015]排序 背景 说实话,看见这题正解是dfs的那一刻,我人都傻了[流泪.jpg] 在讲这题的时候赵队@yspm 类比了线段树的思想%%%%%,在食用本篇题解时可以想一下 解题思路 最基本的一个思想:结果与操作的顺序无关,因为在更换的时候…
5.22考试总结(NOIP模拟1) 改题记录 T1 序列 题解 暴力思路很好想,分数也很好想\(QAQ\) (反正我只拿了5pts) 正解的话: 先用欧拉筛把1-n的素数筛出来 void get_Prime() { for(int i=2;i<=M;i++) { if(!b[i]) pri[++tot]=i; for(int j=1;j<=tot&&i*pri[j]<=M;j++) { b[i*pri[j]]=true; if(!(i%pri[j])) break; }…
有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a_i-\frac{(j-i)\times (j-i-1)}{2}]$ 设$j<k$,对$i$来说,$k$优于$j$,当且仅当$2\times i>\frac{2\times(f_j-f_k)+k^2+k-j^2-j}{k-j}$ 斜率优化,$CDQ$分治,先按$a$排序,分治中按$id$排序满足限…
因为考试过多,所以学校的博客就暂时咕掉了,放到家里来写 不过话说,vscode的markdown编辑器还是真的很好用 先把 \(noip\) 模拟 \(23\) 的总结写了吧.. 俗话说:"连胜之后必是连败,连败之后必是连胜". 经过之前连续五场比赛的挂分,终于回来了一点点... 菜我还是... 咱也不知道当时的零分是怎么考出来的.... \(\color{green}{\huge{\text{菜}}}\) ........ 好吧...... 每次考爆炸的时候在赛后总会发现自己的题目还…
T1 毛衣衬 将合法子集分为两个和相等的集合. 暴力枚举每个元素是否被选,放在哪种集合,复杂度$O(3^n)$.考虑$\textit{meet in the middle}$. 将全集等分分为两部分分别考虑,先$O(3^{\frac{n}{2}})$枚举前一部分的所有情况,记录两个集合的差所对应的状态,然后同样$O(3^{\frac{n}{2}})$枚举后一部分,与前一部分进行匹配即可. $\textit{meet in the middle}$真还挺神的,以后做题要多考虑. $code:$ 1…
罕见的又改完了. T1 神炎皇 吸取昨天三个出规律的教训,开场打完T2 20pts直接大力打表1h. 但怎么说呢,我不懂欧拉函数.(其实exgcd都忘了 于是只看出最大平方因子,不得不线性筛,爆拿60 正解又是看不懂的东西,取a和b的gcd d,把a,b同除d得到A,B,很容易想到(但好像不太容易证)A+B与AB互质. 那么要保证(A+B)d|ABd2,就要使(A+B)|d.又因为(A+B)d<n,所以(A+B)<根号n. 直接枚举A与B的和k,可以知道符合互质的AB数对有φ(k)对,d有n/…
题解 \(by\;zj\varphi\) 直接贪心模拟即可,对于每个点,如果它未被覆盖,直接在这覆盖一次. 每个黑点只会被扫一次,所以总复杂度为 \(\mathcal O\rm (nm)\) Code %: pragma GCC optimize("O9") %: pragma GCC optimize("inline") #include<bits/stdc++.h> #define ri register signed #define p(i) ++…
T1 三元组 发现确定\(b,c\)的情况下,\(a\)的值域是连续的.确定\(b\)后\(a+b\)的取值是\([1+b,b+b]\).树状数组维护对每个\(b\)可行的\(c\). 注意取模后取值可能跨越多次值域. \(code:\) T1 #include<bits/stdc++.h> #define int long long using namespace std; namespace IO{ int read(){ char ch=getchar(); int x=0,f=1; w…