noip模拟30】的更多相关文章

\(noip模拟30\;solutions\) 所以说,这次被初中的大神给爆了????? 其实真的不甘心,这次考场上的遗憾太多,浪费的时间过多,心情非常不好 用这篇题解来结束这场让人伤心的考试吧 \(T1\;毛一探\) 其实这个题我本来是考场上就能AC的 不得不说这个\(meet \;in\;the\;middle\)思想真的没谁了. 我在考场上一分钟想出来如何用一个复杂度不确定的办法来搞定他 (这个复杂度最劣是\(\mathcal{O(2^{n+1})}\),但是数据比较善良,给了我75pts…
T1 毛一琛 考场上打的稳定的$O((2^n)^2)$的暴力.其实再回忆一下上次那道用二进制枚举的题$y$ 就可以知道一样的道理,使用$\textit{Meet In the Middle}$, 按照暴力枚举的思想(就是枚举两个没有交集的子集判断其和是不是相等) 去考虑将整个集合分为两部分,在每一部分分别找任意两个集合能够凑出的和 为了好操作我们找到$1~n/2$的集合中任意两个子集的和,并将其标记,存入$map$ 并使用$vector$对应$sta$及其标记,再在$n/2+1~n$的枚举中 两…
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 树 像我这种人都能考场A掉当然是道水题辣 求出每条有向边的期望就好了 T2 回文串 当时毫无思路,暴力写挂. 首先把B转过来,那么都变成后缀的前缀拼起来 对于每一个LCP,他们俩后面接一个回文串,那么他们拼起来还是回文串,否则就不是 两个串中的回文串可以枚举中间点+二分hash处理出每个点开头的回文串个数num(i) 对于每组询问二分求最长的LCP,则短于其长度的前缀也是LCP 答案是num(i)的前缀和 T3 异或 写了个nklogn的暴力 常数过大死球了 至今没有A…
题解 \(by\;zj\varphi\) 二分答案,考虑二分背包中的最大值是多少. 枚举 \(p\) 的值,在当前最优答案不优时,直接跳掉. 随机化一下 \(p\),这样复杂度会有保证. Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #define gc() p1==p2&&…
题解 \(by\;zj\varphi\) 原题问的就是对于一个序列,其中有的数之间有大小关系限制,问有多少种方案. 设 \(dp_{i,j}\) 表示在前 \(i\) 个数中,第 \(i\) 个的排名为 \(j\)的方案数 方程: \[f_{i,j}=\begin{cases} \sum\limits_{k=j}^{i-1} f_{i-1,k},(p_{i-1}<p_i)\\ \sum\limits_{k=1}^{j-1} f_{i-1,k},(p_{i-1}>p_i)\\ \end{case…
题解 \(by\;zj\varphi\) 如何判断一个集合可以被拆成两个相等的部分? 枚举两个集合,如果它们的和相等,那么他们的并集就是合法的,复杂度 \(\mathcal O\rm(3^n)\) \(\rm\;meet\;in\;the\;middle\) 优化,将序列分成两段,枚举第一段的每个数加到哪个集合,用 \(\rm hash\) 表存一下. 在后半部分扫完后,再扫前面的每个集合,得到答案. 复杂度 \(\mathcal O\rm (3^\frac{n}{2}+6^\frac{n}{2…
\(\color{white}{\mathbb{缀以无尽之群星点点,饰以常青之巨木郁郁,可细斟木纹叶脉,独无可极苍穹之览,名之以:密林}}\) 看完题后感觉整套题都没什么思路,而且基本上整场考试确实是这样 倒序开题,发现 \(t3\) 的做法没有优化空间了,\(t2\) 发现了一些规律,但是卡在求拓扑序上,最后乱搞 \(t1\),本来复杂度及其不正确,但是测的在随机数据下还是很可观的 事实上最后分数比预期高多了 A. 毛一琛 考完 cyh 说才发现是曾经随机跳题跳到的USACO的题,但不幸的是当…
NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高度的过程中,如果高度不是d的整数倍,则必定有一步没有走满d个高度. 如果剩下的步数为偶数,则直接累计答案,可以证明没有更优的情况(虽然我懒并没有证明但我觉得这挺显然的啊……) 如果剩下的步数为奇数,考虑把原来没有走满的那一步走满,然后把多余的那一步补到下降中,也可以证明没有更优的情况.(显然……于是…
\(\color{white}{\mathbb{失足而坠千里,翻覆而没百足,名之以:深渊}}\) 这场考试的时间分配非常不科学 开题试图想 \(t1\) 正解,一个半小时后还是只有暴力,特别惊慌失措 然后赶紧看 \(t2\),看题发现是个简单的线段树合并,没有多模样例,半个小时打完结论后发现能过样例,也没对拍就直接放下了 然后最后一个小时硬想 \(t3\),写了一个复杂度比较正确的网络流上去,发现有好多漏洞,然后一直调,最后考试结束的时候甚至暴力都没来得及打 A. Hunter 玄妙的概率题 如…