SDOI2018:荣誉称号】的更多相关文章

#2566. 「SDOI2018」荣誉称号   休闲游戏玩家小 Q 不仅在算法竞赛方面取得了优异的成绩,还在一款收集钻石的游戏中排名很高. 这款游戏一共有 n 种不同类别的钻石,编号依次为 1 到 n.小 Q 已经玩了这款游戏很久了,对于第 i 种钻石,他已经收集到了 ai 个.这款游戏最大的亮点就是,钻石只有一种获得途径,那就是从商城中 购买.具体来说,第 i 种钻石的单价为 bi 点券.为了鼓励玩家充值,每种钻石都没有数量上限,只要肯 充钱,就可以拥有任意多的钻石.但是这款游戏并没有开发 “…
题解: 并不需要什么算法 首先我们随便画一画就会发现 能画出一颗满二叉树 然后要满足每个点从上往下的路径和都相同(%m意义下) 一个点上可能对应了多个点 然后这样我们可以暴力dp $2^k*m^2+nm$的 应该过不了 我们注意到一个点本质不同的点只能有m个 所以对每个点开个数组记录一下为x的有几个 这样时间就是$2^k*m^2$的了 空间$2^k*m$…
题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我们先满足第\(k\)层的条件 由于第\(k + 1\)层也满足条件 由同余的性质第\(k + 1\)层的权值等于第\(1\)层的权值 同理可以往下推 所以在超过第\(k\)层后,每个节点往上都会与某个节点相联结 我们就不妨求出\(w[i][j]\)表示前\(k\)层的节点\(i\)权值变为\(j\)…
https://www.lydsy.com/JudgeOnline/problem.php?id=5333 https://www.luogu.org/problemnew/show/P4620 题意见上. 如果想看官方题解的话,移步:http://www.cnblogs.com/clrs97/p/9064630.html 如果你第一眼没看懂的话,没关系,往下看吧. 应该不难发现a数组构成了一棵有向完全二叉树的形态,于是题意转化成树上点数为k+1的路径点和%m=0. 并且会发现路径会重叠,且当一…
请不要去改题目给的输入,不然你会wa穿... 这么故弄玄虚的题目,肯定要先转换问题 看到这个不断的除2想起别人家的线段树的写法...x的两个孩子是x<<1和x<<1|1 然后问题就转换成给你一棵树,你可以增加树的权值,要让树上每一条长度为k+1的链上的点权和%m都等于0 先%m把取值范围降到[0,m-1] 观察一下性质,假如通过加权确定了根节点的点权=d,就确定了所有和它距离为k+1的点的点权必须也要变成d 据此我们把点分成k+1组,那是不是每一组的点权都要变成相同的呢? 然而并不…
SD的题有点反人类啊... d1t1[SDOI2018]物理实验 感觉比较好想但不太好写,写了一半弃了 d1t2[SDOI2018]战略游戏 建出圆方树,每次建虚树,答案就是虚树上的原点个数减去询问的点数. //Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<vector> #include<cstdio>…
题解: https://files.cnblogs.com/files/clrs97/title-solution.pdf Code: #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int N=2100,M=205,BUF=15000000; const ll inf=1LL<<60; unsigned int SA,SB,SC; int Cas…
推狮子的部分 \[ \sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sigma(ijk) =\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sum_{x|i}\sum_{y|j}\sum_{z|k}\epsilon(\gcd(x,y))\epsilon(\gcd(y,z))\epsilon(\gcd(x,z))\\ =\sum_{i=1}^A\sum_{x|i}\sum_{j=1}^B\sum_{y|j}\sum_{k=1}^C\sum_{z|…
[BZOJ5332][SDOI2018]旧试题(数论,三元环计数) 题面 BZOJ 洛谷 题解 如果只有一个\(\sum\),那么我们可以枚举每个答案的出现次数. 首先约数个数这个东西很不爽,就搞一搞,变成\(\displaystyle \sum_{d|i}1\) 那么原式就可以写成:\(\displaystyle \sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sum_{d=1}^Ad|ijk\). 既然\(d|ijk\),意味着\(d\)可以分别拆成\(i\)的一个…
[SDOI2018]战略游戏 这题是道路相遇(题解)的升级版,询问的两个点变成了\(S\)个点. LG传送门 还是先建出圆方树,考虑对于询问的\(S\)个点,答案就是圆方树上能包含这些点的最小连通块中的圆点个数减去\(S\).问题变成了怎样求这样的连通块中的圆点个数,直接给结论吧:先搞出树的dfs序,把询问的点按dfs序从小到大排一遍序,每次把答案加上第\(i\)和第\(i + 1\)个点之间的圆点个数,但是不算lca,再加上第\(1\)个和第\(S\)个点之间的圆点个数,然后除以二就得到了这个…