随笔分类 - 数学 / 数学、规律题
摘要:题意 解析 解析:每个a[i]是由b[i]和b[i+1]取最大公因数得出,所以对于每个b[j]来说应该既是a[j]的倍数,又是a[j-1]的倍数。现实在取的时候,可以取b[j] = lcm(a[j-1],a[j])。然后再对每个b[j]检查gcd(b[j],b[j+1])是否真的等于a[j]。 我们
阅读全文
摘要:题意 解析 由图得 a中不能同时存在 5 的倍数和非 5 的倍数。 若全为 5 的倍数,将她们的末尾全部操作为 0,判断相等即可。 若全非 5 的倍数,将她们的末尾全部操作为 2。由于2→4→8→6→2 绕一圈后原数会 +20,所以我们判断这些数是否 mod 20 同余即可。 代码 #include
阅读全文
摘要:题意 q次询问1e5,每次给你一个正整数n<=1e9,求最多能分成几个合数 解析 4是合数,一个想法就是尽量地分4。如果n%4==0的话说明恰好分完,万事大吉,如果n%4=2的话,6是第二小的合数,可以把剩下的4和2凑成6,这就是最多的分法,有n/4个。看n%4==1和n%4==3,说明原来的n肯定
阅读全文
摘要:题意 解析 可以从1到x,剩下的全给最后一个 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e3 + 10; int a[N],n,cnt; int main(){ cin >> n; for(int i=1;i<=n;
阅读全文
摘要:题意 解析 末尾2位是4的倍数即可。每次特判最后一位。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 3e5 + 10; string s; bool check(string
阅读全文
摘要:题意 解析 找规律 讨论b,三种都有 行,有另两种 行,另两种有一种{只有1个,不行;有大于1个,无b不行;其余行},另两种一个都无 行。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n; str
阅读全文