题意:给你一个正整数n,问你存在多少个正整数对a,b(a<b),满足条件:存在正整数x,y,使得ax+by=n. 就预处理出n以内所有数的约数,然后暴力枚举a,暴力枚举x,然后枚举n-ax的所有约数,判重,统计答案即可. #include<cstdio> #include<vector> #include<algorithm> using namespace std; typedef vector<int>::iterator ITER; vector…
好像这次week of code不是很难= = A int main(){ int n; int m; cin >> n >> m; cout<<(n+)/*)/)<<"\n"; ; } B 求n的因数中数字和最大的前提下最小的数,n<=10^5,大模拟. int n; pii qwq; int main() { scanf("%d",&n); ;i<=n;i++) { if(n%i) contin…
[题目链接]:https://www.hackerrank.com/contests/w26/challenges/hard-homework/problem [题意] 给你一个式子:sin(x)+sin(y)+sin(z) 这里x,y,z都为正整数; 让你求这个式子的最大值; [题解] 由和差化积公式; sin(x)+sin(y)=2∗sin(x+y2)∗cos(x−y2) 这里枚举x+y从2到n-1 x-y不好处理; 但如果我们分步来做; 对于x+y为偶数的情况; 我们每次从x+y推到x+y…
在jxzz上发现的一个做题网站,每周都有训练题,题目质量……前三题比较水,后面好神啊,而且类型差不多,这周似乎是计数专题…… Army Game 然后给出n*m,问需要多少个小红点能全部占领 解法:乘法... Best Divisor 给一个数,问一个数的约数中数字和最大的约数. 解法:直接分解质因数就可以啦. Twins 孪生质数定义为两个质数之差为2,问n,m之间有多少个孪生质数(n<=m<=10^9,m-n<=10^6) 解法:显然直接判断区间内相邻的两个奇数是否为质数就可以啦.然…
O(sqrt(n))枚举约数,根据定义暴力判断友好数. #include<cstdio> #include<cmath> using namespace std; int n; int limit; int main() { scanf("%d",&n); for(;;n++) { limit=sqrt(n); ; if(limit*limit==n) tot+=limit; ;i<limit;i++) ) tot+=(i+n/i); limit=…
对于一对数(p,q),若它们的gcd为x0,lcm为y0, 则:p*q/x0=y0,即q=x0*y0/p, 由于p.q是正整数,所以p.q都必须是x0*y0的约数. 所以O(sqrt(x0*y0))地枚举约数,依次用gcd判断. #include<cstdio> #include<cmath> using namespace std; typedef long long LL; LL limit,Q,P,To; int ans; LL gcd(LL a,LL b){?a:gcd(b…
∵∑gcd(i, N)(1<=i <=N) =k1*s(f1)+k2*s(k2)+...+km*s(km) {ki是N的约数,s(ki)是满足gcd(x,N)=ki(1<=x<=N)的x的个数} ∴gcd(x,N)=ki (1<=x<=N)  <=>  gcd(x/ki,N/ki)=1 (1<=x/ki<=N/ki) gcd(x/ki,N/ki)=1 (1<=x/ki<=N/ki) 的x的个数 即为φ(N/ki) ∴ans=∑φ(N/…
给你一堆定义,问你在那个定义下,<p,q>是不是素数.其实那堆定义都不用管,只要看最下面给你的提示即可. 根据,只要把m^2+n^2当一个整体,去枚举(p^2+q^2)的约数即可,然后再枚举m, 这样的枚举出来是必要的,然后再根据这个充要条件判一下即可. #include<cstdio> #include<cmath> using namespace std; const double EPS=0.00000001; int T; int p,q; bool check…
codeforces1183F 有技巧的暴力 传送门:https://codeforces.com/contest/1183/problem/F 题意: 给你n个数,要你从中选出最多三个数,使得三个数x,y,z互不相等,x,y,z之和最大是多少 题解: n到了2e5,并且有q组数据,所以我们这里需要有技巧的枚举 因为最多只能选取三个数 我们就可以分类讨论 选取一个数 那么这个数一定是最大的那个数 选取两个数 那么这个两个数互不为约数 选取三个数和选取两个数同理 我们将数组排序离散化后,从大到小的…
https://www.hackerrank.com/contests/w31/challenges/colliding-circles/problem 设E(n)为序列长度为n时的期望值. \[ \begin{aligned} E(n-1)=&E(n)+\frac1{n\choose2}\sum_{0\leq i<j\leq n}2r_ir_j\\ =&E(n)+\frac1{n\choose2}\left[\left(\sum r_i\right)^2-\sum r_i^2\ri…