该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
第一次差不多算自己推出来的吧,代码也写出来了。 但是块的右边界写错了,真有我的.jpg。 看了一眼题,我就得出了$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m} i * j / gcd(i,j)$ 然后就开始愉快(bushi)地推式子了。 $ans = \sum_{i 阅读全文
摘要:
贪心的问题总是很难证明。 对于单向传递的纸牌问题:维护差值的前缀和。 https://www.luogu.com.cn/problem/P1031 #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef p 阅读全文
摘要:
一段时间没做又不太会推了。 首先这题需要一个容斥的做法。 ans = solve(b,d) - solve(a - 1,d) - solve(b,c - 1) + solve(a - 1,c - 1) //这个非常容易推出。 然后就是单个的计算了。 $\sum_{i = 1}^{n} \sum_{j 阅读全文
摘要:
M:一开始想的bfs松弛dp,但是T了。 然后想的是去枚举全部的高度,然后bfs判断,显然这也会T。 但是可以发现的是,其实我们只需要找到最大的能承受的高度即可。 所以就可以二分了。 #include<bits/stdc++.h> using namespace std; typedef long 阅读全文
摘要:
提高组都是神仙打架%%% T1: 对于每个素数i,显然f[i] = i. 那么根据唯一分解定理,对于每个合数i,如果它分解后,有多个素因子,那么显然为1. 否组就是最小的素因子。 那么,我们可以在线性筛中处理即可。 线性筛,其实就是利用素数和一个和当前素数肯定有不同素因子的数乘积来筛合数的过程。 那 阅读全文
摘要:
B: #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<double,int> pii; const int N = 1e6+5; const int M = 1e6+5; const LL 阅读全文
摘要:
题意:求解$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}d(ij)$ 首先莫比乌斯函数有性质:$d(ij) = \sum_{x | i}^{}\sum_{y | j}^{}|gcd(x,y) == 1|$ 那么,我们可以代入得: $ans = \sum_{i = 1} 阅读全文