2025.04.18 P9577 「Cfz Round 1」Dead Cells
四个多月没写过代码嘞,手生了(哭)
#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int mod=998244353;
int a,b,k,ans;
int ksm(int m){
int n=2,tmp=1;
while(m){
if(m&1){m-=1;tmp*=n;tmp%=mod;}
m/=2;n*=n;n%=mod;
}
return tmp;
}
int calgcd(int m,int n){
int tmp=0;
while(n>0){
tmp=m%n;
m=n;
n=tmp;
}
return m;
}
signed main(){
cin>>a>>b>>k;
if(a<=b){
ans=ksm(k/a-k/b);
cout<<ans<<endl;
}
else{
int gcd=calgcd(a,b);
int lcm=a/gcd*b;
int k0=k%lcm,cnt=0;
for(int i=gcd;i<=k0;i+=gcd){
if(i%a==0) cnt++;
if(i%b==0&&cnt>0) cnt--;
}
ans=ksm(cnt);
cout<<ans<<endl;
}
return 0;
}
【进食】\(-1 -1 +1\) 最终的结果是 \(1\) 而非 \(-1\) ,注意数列递变的有序性

浙公网安备 33010602011771号