51NOD 1934:受限制的排列——题解】的更多相关文章

题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1934 根据给出的信息,可以递归地把笛卡尔树建出来.一个点只应该有 0/1/2 个孩子,不然就是无解. dp[ cr ] 表示把 1~siz[cr] 填进 cr 这个子树的方案数.那么 \( dp[cr]=C_{siz[cr]-1}^{siz[ls]}*dp[ls]*dp[rs] \) . 注意在各种地方判断无解!如果是 l , cr , r 的话,左孩子应该是 l , ls…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1934 听说会笛卡尔树的人这题都秒了啊…… 参考:https://blog.csdn.net/vectorxj/article/details/79475244 首先题得看懂(我就是看题解才看懂题面的……),它告诉你对于i,我们有最大的(li,ri)使得这个区间内pi最小. 于是最小的数一定是(1,n)区间内的,设为pos,那么我们只需要递归处理(1,pos-1)和(po…
题解 这题还要判无解真是难受-- 我们发现我们肯定能确定1的位置,1左右的两个区间是同理的可以确定出最小值的位置 我们把区间最小值看成给一个区间+1,构建出笛卡尔树,就求出了每一次取最小值和最小值左右的区间大小 然后就相当于左右子树的排列方式,乘上把左右子树那么多个元素选出左子树个数和右子树个数那么多的方案数,是个普通的组合数 判无解从根开始,要求根的区间是[1,N],左右区间是[1,rt-1][rt + 1,R]递归判下去就好 复杂度\(O(n)\) 但是跑得奇慢无比= =,我脑子一抽把数组改…
HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的"喜欢"是可以传递的--如果A喜 欢B,B喜欢C,那么A也喜欢C.牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你 算出有多少头奶牛可以当明星. 输入输出格式 输入格式: 第一行:两个用空格分开的整数:N和M 第二行到第M + 1行:每行两个用空格分开的整数:A和B,表示A喜欢B…
老了-稍微麻烦一点的树形DP都想不到了. 题目描述 给定一棵树,边权是整数 \(c_i\) ,找出两条不相交的链(没有公共点),使得链长的乘积最大(链长定义为这条链上所有边的权值之和,如果这条链只有 \(1\) 个点则链长视为 \(0\)). 输入输出格式 输入格式: 第一行:一个 \(n\) 表示节点个数. 接下来 \(n-1\) 行每行三个整数 \(u,v,c\) 表示 \(u,v\) 之间有一条 \(c\) 的边. 输出格式: 输出一个整数表示最大的乘积. 输入输出样例 输入样例: 5 1…
题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C.牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你 算出有多少头奶牛可以当明星. 输入输出格式 输入格式: 第一行:两个用空格分开的整数:N和M 第二行到第M + 1行:每行两个用空格分开的整数:A和B,表示A喜欢B 输出格式: 第一行:单独一个整数,表示明星奶牛的数量 输入输出样例 输入样例…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1709 (我什么时候看到二进制贡献才能条件反射想到按位处理贡献呢……) 参考:https://www.cnblogs.com/hzoier/p/8593825.html 最朴素当然是LCA暴算. 但是更聪明的做法是考虑每个节点$u$,固定$lca$求贡献,能够$LCA(u,v)=lca$的点$v$的个数显然为$size[lca]-size[u$所在的以$lca$为根的子树…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1559 波雷卡普有一个n×m,大小的棋盘,上面有k个车.他又放了q个矩形在上面.每一个矩形要受到保护.矩形受到保护的意思是对于该矩形内部所有的格子能够被这个矩形内的某个车攻击到或者被占据,和矩形外面的车无关,即矩形外面的车不能攻击到矩形里面.车的位置是固定的. 样例解释: 对于最后一个矩形,用红色框框表示的,因为(1,2)不能被某个车攻击到,所以是NO. 题其实不难,但是…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2026 参考及推导:https://www.cnblogs.com/ivorysi/p/9157781.html (其公式有一处小问题,请注意.) 然后就没了……我觉得讲得挺详细了. 另外map跑得可能比哈希表还快可还行. #include<map> #include<cmath> #include<stack> #include<queu…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1594 参考及详细推导:http://www.cnblogs.com/rir1715/p/8584083.html 设\(cnt_i=\sum_{j=1}^n[\phi(j)==i]\),这个可以在\(O(n)\)处理出来. 我们用它把\(\phi(i)\phi(j)\)换元得: \(\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))\times…