lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使用一次.游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害.也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性…
[洛谷2791]幼儿园篮球题(第二类斯特林数,NTT) 题面 洛谷 题解 对于每一组询问,要求的东西本质上就是: \[\sum_{i=0}^{k}{m\choose i}{n-m\choose k-i}i^L\] 如果没有后面那个部分,就是一个范德蒙恒等式,所以就要把这个\(i^L\)直接拆掉. 然后直接拿第二类斯特林数来拆: \[i^L=\sum_{j=0}^L\begin{Bmatrix}L\\j\end{Bmatrix}{i\choose j}j!\] 于是就把答案拆成了: \[\begi…
洛谷 P5596 [XR-4]题 洛谷传送门 题目描述 小 X 遇到了一道题: 给定自然数 a,ba,b,求满足下列条件的自然数对 (x,y)(x,y) 的个数: y^2 - x^2 = ax + by2−x2=*a**x+b* 他不会,只好求助于精通数学的你. 如果有无限多个自然数对满足条件,那么你只需要输出 inf 即可. 输入格式 一行两个整数 a,ba,b. 输出格式 如果个数有限,一行一个整数,表示个数. 如果个数无限,一行一个字符串 inf. 输入输出样例 输入 #1复制 输出 #1…
本题介绍两种做法: 1 并查集 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1000005; 4 int fa[N],n; 5 bool vis[N]; 6 7 int getf(int a){ 8 if(fa[a]==a) return a; 9 else return fa[a]=getf(fa[a]); 10 } 11 12 void mg(int a,int b){ 13 int af=getf(a);…
题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. ******** ************ ####....#. #..###.....##.... ###.......###### ### ### ........... #...# #...# ##*####### #.#.# #.#.# ####*******###### #.#.# #.#.#…
描述 http://cojs.tk/cogs/problem/problem.php?pid=396 连续从1开始编号的球,按照顺寻一个个放在n个柱子上,\(i\)放在\(j\)上面的必要条件是\(i+j\)是一个完全平方数.问做多能放到几号球. 分析 cogs是简化版,我在网上找了个完整版的测试数据,要求输出方案... 求最大放几号球不方便,我们考虑枚举最大的球号,计算最少需要多少柱子. 我们对于满足\(j<i\)且\(i+j\)是一个完全平方数的\(i,j\),从\(j\)向\(i\)连一条…
题目链接 洛谷P3676 题解 我们先维护\(1\)为根的答案,再考虑换根 一开始的答案可以\(O(n)\)计算出来 考虑修改,记\(s[u]\)表示\(u\)为根的子树的权值和 当\(u\)节点产生\(v\)的增量时,只影响\(1\)到\(u\)路径上的\(s\),权值和都\(+v\) 而对答案的影响是 \[ \begin{aligned} \Delta ans &= \sum\limits_{i}^{k}(s_i + v)^{2} - \sum\limits_{i = 1}^{k} s_i^…
洛谷P1072:https://www.luogu.org/problemnew/show/P1072 思路 gcd(x,a0)=a1 lcm(x,b0)=b1→b0*x=b1*gcd(x,b0) (由a*b=gcd(a,b)*lcm(a,b)) x=(b1/b0)*gcd(x,b0) 令i=gcd(x,b0)∈[1,√b0] 分成两半求减少时间复杂度 特判相等的时候 判断x=(b1/b0)*i和x=(b1/b0)*(b0/i)是否满足条件 代码 #include<iostream> #inc…
点此进入比赛 \(T1\):八百标兵奔北坡 这应该是一道较水的送分题吧. 理论上来说,正解应该是DP.但是,.前缀和优化暴力就能过. 放上我比赛时打的暴力代码吧(\(hl666\)大佬说这种做法的均摊复杂度为\(O(logn)\),总复杂度应为\(O(nlogn)\),可以接受): #include<bits/stdc++.h> #define max(x,y) ((x)>(y)?(x):(y)) #define min(x,y) ((x)<(y)?(x):(y)) #define…
洛谷题面传送门 题目名称好评(实在是太清新了呢) 首先考虑探究这个"换根操作"有什么性质.我们考虑在换根前后虽然每个点的子树会变,但整棵树的形态不会边,换句话说,割掉每条边后,得到的两个子树的中点权之和不会变,因此我们考虑将这个东西与平方和挂钩.考虑构造 \(S=\sum\limits_{i=1}^nsiz_i(sum-siz_i)\),其中 \(siz_i\) 为 \(i\) 子树内所有点点权之和,\(sum\) 为所有点点权之和.那么不难发现 \(S\) 就是断掉所有点之后形成的两…