摘要:
先二分找到这个非平方数,然后对一个一个区间进行求和的预处理。要注意边界问题。代码如下:#include <cstdlib>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;typedef long long Int;Int N, num;long long int sum[1000005];Int bsearch(Int l, Int r) { Int mid, left; while (l <= r) { mid = (l + r) >& 阅读全文
摘要:
这里有多个点与原点的连线共线的话,那么需要对其进行并组,将前一个作为单独的一个,把前两个作为单独的一个...最后直接分组背包就可以了。代码如下:#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#define MAXN 205using namespace std;int N, M, cnt[MAXN], vis[MAXN], idx;int f[40005];struct Node{ int x, y, t, v; bool operator < 阅读全文
摘要:
这题虽说解题报告中说的是简单题,但比赛中AC率以及提交量并不是很高,主要是数据范围太大,有点吓人,而且含有trick。题目给定b,p,M 问 0 <= n <= M 中有多少个数满足 n^(n!) ≡ b (MOD p),并且可恶的是这里没有提到任何数的特殊性质,给定都只是限定在正整数且p>0。有欧拉定理我们知道 n^(phi(p))≡ 1 (mod p) 但是这里要求gcd(n, p) = 1,显然题目并没有这么要的数据,那么如果题目给定是满足n,p互质的话,那么我们就可以知道n^(x) mod p 是有循环节的,这个循环节就是n^(phi(p)),如果n,p不互质的话,那 阅读全文