P3178 [HAOI2015]树上操作 题目描述: 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权...
题目链接 题目大意:一棵点权树,支持点修改,子树修改,查询根路径前缀和 题解:很久以前写过,不知道为什么WA了,现在又重构了一下就过了…… 我的收获:模板题 #include ...typedef long
P2215 [HAOI2007]上升序列(LIS) 本题关键在在于求出以iii开头的LISLISLIS的长度。 与普通的LISLISLIS不同,普通的LISLISLIS是求以aia_iai结尾的最大长度。 因此考虑倒着贪心,优先用较大的数,另外本题可以类似O...
题目链接 最长公共子序列 解题思路 第一思路: 1.用\(length[i][j]\)表示\(a\)串的前\(i\)个字符与\(b\)串的前\(j\)个字符重叠的最长子串长度 2.用\(num[i][j]\)表示 \(a\)串的前\(i\)个字符与\(b\)串的前\(j\)个...
题目传送门 。 解法: 贪心呗。 枚举每个选址。 因为老发电厂b吨是固定的。 那么我们先搞完他的然后剩下的全部分给新的发电厂。 那么我们用每个矿的新电厂-老电厂花费。 这样结果越大的用在老电厂...cstdlib...
[HAOI2011]problem a 题目描述 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数) 输入输出格式 输入格式: 第一行一个整数n,接下来...
【题目链接】 ...【题解】 记X[i]X[i]X[i]为从第iii堆向第i+1i+1i+1堆转移的数量。(第nnn堆转移到111) 那么有a[i]−X[i]+X[i−1]=averagea[i]−X[i]+X[i−1]=averagea[i]-X[i]+X[i-1]=ave...
P2216 [HAOI2007]理想的正方形 由于是二维区间查询,就用了二维st表 原理也很简单,懂得st表就可以看懂 不懂st表的可以参考ST表 RMQ ST表模板 #include <bits/stdc++.h> using namespace std; const int maxn ...
这道题目在做的时候是一道让我比较头疼的题目,记得那时候总是整理完思路而不想写程序,很多次刚开始写觉得麻烦就又放弃了。不过那天下午还是逼着自己怎么也要把这题做了。 题目要求长度大于k的最靠左的一段连续...
Description BZOJ1042 Solution 一开始以为是4种物品的多重背包计数,感觉好难写啊,就看题解去了。 结果是容斥?? 其实不是很难,不考虑个数限制的话就是一个完全背包计数,先预处理出来\(f[i]\)表示\(i\)元花费的...
题目链接:戳我 其实我们观察一下这八个衍生的向量,可以知道本质上它们只有4个。 即\((a,b),(-a,b),(b,a),(b,-a)\)。 之后就是 \[\begin{cases} an+am+bp+bq=x\\ bn-bm+ap-aq=y \end{cases}\] ...
题解 简单分析一下就知道\(\lfloor \frac{N}{i} \rfloor\)相同的\(i\)的\(sg\)函数相同 所以我们只要算\(\sqrt{n}\)个\(sg\)函数就好 算每一个\(sg(m)\)的时候我们可以通过把这个数再拆成\(\sqrt{m}\)段来计算\(sg\)...
题目大意: 题面 思路: 首先你发现一个集合里面的物品可以组合成的总体积必定是gcd(vi,p),i∈Sgcd(vi,p),i∈Sgcd(v_i,p),i\in S,于是为了防止重复计算,一个方案用它的gcd来表示。 于是对于每一个物品,可以...
传送门 步骤: TarjanTarjanTarjan 板子缩点后,重新遍历原图存在的边新建一个有向无环图,并统计每个点的出度,出度为 000 的点即为所求。 然而读题可以发现,出度为 000 的点多于 111 个时为无解,因为不满足题目...
[HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。 Input 第一行一个整数n,接下来n行每...
[HAOI2008]糖果传递 题目描述 有 nnn 个小朋友坐成一圈,每人有 aia_iai 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 111。 输入格式 小朋友个数 nnn,下面 nnn 行 aia_iai。 输出格式 求...
[HAOI 2011] Problem b 分析 转换成求四块的答案,然后和 YY的GCD 一样。 代码 #include <bits/stdc++.h> typedef long long LL; const int MAXN = 50000; int Mu[MAXN + 5]; bool Vis[MAXN + 5]; std::...
传送门 组合数学一眼题。 感觉一直做这种题智商会降低。 利用组合数学的分步计数原理。 只用关心每个数不被限制的取值的总和然后乘起来就可以了。 对于大部分数都不会被限制,总和都是n(n+1)2\frac{n(n+1)}{2}2n(n+...
正题 ... 题目大意 给出NNN质因数分解之后的结果,求每次N=φ(N)N=\varphi(N)N=φ(N),多少次后N=1N=1N=1。 N=∏i=1mpiqi,1≤m≤2000,1≤pi≤105,1≤qi≤109N=\prod_{i=1}^mp_i^{q_i},1\leq m\leq 2000,1\leq p_i\leq ...
Time Limit: 10 Sec Memory Limit: 256 MB Description给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y)。...
很好的一道数位DP,昨天下午卡了一个小时,连题解都看不懂,然后就去刷数论题了,今天终于回来将这道题A掉了,看了很多大神的博客,感觉自己对于全排列的认识又增进了几分。 这道题要求能组成的数有几个比给出的数...
题目 题目 思路 那么仔细研究一下,我们会发现不管怎样,横着的几刀和竖着的几刀总共一定切了(n−1)∗(m−1)(n-1)*(m-1)(n−1)∗(m−1)刀,那么我们就只需要考虑顺序的问题了,对于相同方向的刀,显然花费越高就越早...
题目描述 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。 输入输出格式 输入格式: 两行,两个字符串s1,s2s1,s2s_1,s_2,...
LOJ2524「HAOI2018」反色游戏 题面:LOJ 解析 首先考虑一个联通块怎么做。观察到若连通块为一棵树,如果黑点个数为偶数,则有且仅有一组解;反之无解。奇数的情况不难证明,因为一次反色改变黑点的个数总是偶数。...
解题思路: 采用tarjan缩点创建一张新图 根据新图中入度为0的点数输出答案
dp,数据结构或指针维护或二分
题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。...
搜索答案即可,因为实际上的搜索范围很小,所以并不会超时。中约数个数最多的数中最小的一个。分解质因数后可以写成。综上所述,我们只需要。