#include<bits/stdc++.h>usingnamespace std;#define mod 1000000007#define INF 0x3f3f3f3f#define pi 3.141592654typedeflonglong ll;constint N =2e6+5;
ll vis[N]={1,1};
ll n,c,ans,cnt=0;
ll prim[N];///记录素数个数voidfun(){///欧筛for(ll i =2; i < N; i++){if(vis[i]==0) prim[++cnt]= i;///记录素数for(ll j =1;(j <= cnt)&&(i*prim[j])< N; j++){
vis[i*prim[j]]=1;if(i%prim[j]==0)break;}}}
ll pow_mod(ll a, ll n, ll m){///a的n次方模mif(n ==0)return1;int x =pow_mod(a, n/2, m);
ll ans =(ll)x * x % m;if(n %2==1) ans = ans *a % m;return ans;}
ll gcdl(ll a,ll b){return b==0?a:gcdl(b,a%b);}intgcd(int a,int b){return a%b==0?b:gcd(b,a%b);}intmi(int a,int b){return a<b?a:b;}intma(int a,int b){return a>b?a:b;}intabs(int a){return a>0?a:-a;}voidprep(){int ckt=0;for(int i =1; i<=2;i++) ckt++;}intmain(){fun();//printf("%d\n",cnt);int t;scanf("%d",&t);while(t--){scanf("%lld %lld",&n,&c);
ll ans =0;if(vis[n]){for(ll i =1; i <= cnt && n>1&& prim[i]*prim[i]<=n; i++){while(n%prim[i]==0){
n/=prim[i];ans++;}//printf("%lld %lld\n",n,ans);if(!vis[n]){
ans++;break;}}//printf("%lld\n",cnt);}else ans++;printf("%lld\n",pow_mod(c,ans,mod));}return0;}
F 分类讨论
#include<bits/stdc++.h>usingnamespace std;#define mod 1000000007#define INF 0x3f3f3f3f#define pi 3.141592654typedeflonglong ll;constint N =2e6+5;
ll gcdl(ll a,ll b){return b==0?a:gcdl(b,a%b);}intgcd(int a,int b){return a%b==0?b:gcd(b,a%b);}intmi(int a,int b){return a<b?a:b;}intma(int a,int b){return a>b?a:b;}intabs(int a){return a>0?a:-a;}voidprep(){int ckt=0;for(int i =1; i<=2;i++) ckt++;}intmain(){int t;scanf("%d",&t);int ac,ad,bc,bd;while(t--){int k;scanf("%d %d %d %d",&ac,&ad,&bc,&bd);if(ac<=bc&&ad>=bd)printf("AB//CD\n");elseif(ac >= bc && ad <= bd)printf("AB//DC\n");elseif(ac <= bc && ad <= bd){if(bc>bd)printf("AB//CD\n");elseprintf("AB//DC\n");}elseif(ac >= bc && ad>= bd){if(ac<ad)printf("AB//CD\n");elseprintf("AB//DC\n");}}}
H 构造
#include<bits/stdc++.h>usingnamespace std;#define pb push_back#define mp make_pair#define fi first#define se secondtypedeflonglong ll;typedefunsignedlonglong ull;typedef pair<int,int> PII;typedef pair<ll, ll> pll;constint mod =1e9+7;constint N =2e5+10;constint INF =0x3f3f3f3f;
ll qpow(ll base, ll n){ll ans =1;while(n){if(n &1) ans = ans * base % mod; base = base * base % mod; n >>=1;}return ans;}
ll gcd(ll a, ll b){return b ?gcd(b, a % b): a;}int ans[N], v[N];intmain(){int t;
cin >> t;while(t --){int tot =0;int n;scanf("%d",&n);for(int i =1; i <= n +1;++ i) v[i]=0;for(int i =3; i <= n; i +=2){if(!v[i]){for(int j = i; j <= n; j += i){///不能为前面质数的倍数if(j %2==0|| v[j])continue;
v[j]=1;
ans[++ tot]= j;}if(tot %2==1){///多出来一个;尝试与i*2凑一个int x = i *2;if(x <= n){
v[x]=1;
ans [++ tot]= x;}else-- tot;}}}for(int i =2; i <= n; i +=2){///2的倍数剩下的if(!v[i]) ans[++ tot]= i;}if(tot %2==1)-- tot;printf("%d\n", tot /2);for(int i =1; i <= tot; i +=2){printf("%d %d\n", ans[i], ans[i +1]);}}return0;}
B 打表#include<bits/stdc++.h>using namespace std;#define mod 1000000007#define INF 0x3f3f3f3f#define pi 3.141592654typedef long long ll;const int N = 2e6+5;ll vis[N] = {1,1};ll n,c,ans,cnt=0;ll prim[N] ;///记录素数个数void fun(){///欧筛 for (ll i =