「HNOI 2014」 江南乐】的更多相关文章

\(Description\) \(n\)堆石子,每堆石子有\(s_i\)个,两个人轮流操作,每次可以将一对不少于\(F\)的石子尽量平均分成\(m\)堆,\(m\)每次自选,不能操作者输.共有\(T\)组数据 \(Solution\) \(70\ pts\) 直接\(SG\)搞一搞就好了,枚举堆的个数,异或一下就没了 \(Code\) #include<bits/stdc++.h> #define int long long using namespace std; typedef long…
题目链接 戳我 \(Solution\) 这一题很像最小乘积生成树.只是把\(kruskal\)变为了\(km\)/费用流 现在来讲一讲最小乘积生成树.首先将\(\sum a_i\)和\(\sum b_i\)看为坐标轴上的点\((x,y)\) \(step 1:\) 首先找出离\(x\)最近的点和离\(y\)最近的点 \(step 2:\) 找出距离\(A,B\)最远的\(C\)(\(C\)要在\(A,B\)左边) \(step 3:\) 递归处理\(AC\)和\(CB\),直到找不到\(C\)…
题目链接 戳我 \(Describe\) 谁出的题目啊?这么长的题面,看完就滚粗了.强烈谴责 给一棵树,每个点有一个权值,要求修改一些权值,使: 一个点的权值必须是其所有儿子的权值之和 一个点的儿子权值必须相同 求最少的被修改的数目 \(Solution\) 随便画一画图就可以找到一些显著的规律,只要确定了一个点的权值就可以知道整颗树的值了. 这里就不详细的给出图进行解释了,自己画一画图就可以知道了. 于是我们可以令\(val[x]\)表示\(x\)这个点不变的话,根节点的值. 但是将子节点的个…
LOJ#2210. 「HNOI2014」江南乐 感觉是要推sg函数 发现\(\lfloor \frac{N}{i}\rfloor\)只有\(O(\sqrt{N})\)种取值 考虑把这些取值都拿出来,能取到这个值的\(i\)是一个区间\([l,r]\) 如果\(r - l + 1 = 1\),那么直接算这个数的答案即可(\(\lfloor \frac{N}{i}\rfloor\)的石子有奇数堆还是偶数堆,\(\lfloor \frac{N}{i}\rfloor + 1\)的石子有奇数堆还是偶数堆,…
LOJ#3054. 「HNOI 2019」鱼 https://loj.ac/problem/3054 题意 平面上有n个点,问能组成几个六个点的鱼.(n<=1000) 分析 鱼题,劲啊. 容易想到先枚举这个\(D\),然后极角序排一下,我们枚举\(A\),对\(B,E,F\)分别统计. 枚举\(A\)的过程中用一个指针维护\(E,F\)的范围,对答案贡献是一个\(\sum\binom{x}{2}\)的形式,容易维护. 然后现在要求\(B\)的方案数,可以发现符合条件的\(BC\)一定满足线段\(…
一道清真的数论题 LOJ #3058 Luogu P5293 题解 考虑$ n=1$的时候怎么做 设$ s$为转移的方案数 设答案多项式为$\sum\limits_{i=0}^L (sx)^i\binom{L}{i}=(sx+1)^L$ 答案相当于这个多项式模$ k$的各项系数的和 发现这和LJJ学二项式定理几乎一模一样 我上一题的题解 然而直接搞是$ k^2$的,无法直接通过本题 以下都用$ w$表示$ k$次单位根 设$ F_i$为次数模$ k$为$ i$的项的系数和 单位根反演一下得到$F…
\(Description\) 给你一个序列,每次询问一个区间,求其所有子区间的最小值之和 \(Solution\) 这里要用莫队算法 首先令\(val\)数组为原序列 我们考虑怎么由一个区间\([l,r]\)到\([l,r+1]\) 我们发现新增加的区间为: \[[l,r+1],[l+1,r+1],[l+2,r+1]...[r,r+1],[r+1,r+1]\] 我们令\([l,r+1]\)内的最小值的位置为\(x\) 则\([l,r+1],[l+1,r+1]...[x-1,r+1],[x,r+…
\(Description\) 有\(n\)个元素,对于每个元素\(x_i\)最多知道一个形如\(x_j < x_i\)或\(x_j=x_i\)的条件,问有多少合法的序列.合法的序列满足每个元素出现一次,任一相邻两元素之间有小于号或或等于号,并且所有条件全部满足,但是对于两个序列,如果只修改相等元素的位置能使得他们一样,则是他们为同一序列,答案队\(10^9\)取模 \(n<=100\) \(Solution\) 认真读题后可以发现: 对于每个元素\(x_i\)最多知道一个形如\(x_j<…
\(Description\) 有\(n\)张卡牌,每一张卡牌有\(p_i\)的概率发动,并造成\(d_i\)点伤害.一共有\(r\)轮,每一轮按照编号从小到大依次考虑,如果这张牌已经发动过则跳过该牌,否则以\(p_i\)的概率发动,如果发动成功则造成伤害然后结束该轮,否则跳过这张牌.问期望造成的伤害,\(T\)组询问 \(n<=220,r<=132,T<=444\) \(Solution\) 这道的答案怎么算应该挺好想的吧. \[\sum_{i=1}^n dp[i]*d[i]\] \(…
题目链接 戳我 \(Description\) 有若干限制,需要求一个\(1\)到\(n\)的排列,每个限制\((x,y)\)表示\(x\)必须在\(j\)之前,并要求所求的排列满足所有限制并让\(1\)的位置尽量靠前,在此基础上让\(2\)的位置尽量靠前,以此类推. \(n<=100000\) \(Solution\) 这题直接拓扑排序选字典序最小的显然不行,因为题目要求不是问字典序最要,而是要: 满足所有限制并让\(1\)的位置尽量靠前,在此基础上让\(2\)的位置尽量靠前,以此类推 那么我…