「Cfz Round 1」Dead Cells 题解
TheCliffSwallow · · 个人记录
思路
由于每过
接下来考虑
最后时间复杂度
Code
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#define int long long
#define ull unsigned long long
using namespace std;
int a,b,k;
const int MOD=998244353;
int fpow(int di,int mi){
if(mi==0)return 1;
int tp=fpow(di,mi/2);
if(mi%2==1)return tp%MOD*tp%MOD*di%MOD;
return tp%MOD*tp%MOD;
}
signed main(){
scanf("%lld%lld%lld",&a,&b,&k);
int tmpa=k/a;
int tmpb=k/b;
int tmp=tmpa-tmpb;
if(a>b){
if(k%a<k%b)printf("2");
else printf("1");
return 0;
}
if(tmp<1){
printf("%lld\n",1);
return 0;
}
printf("%lld\n",fpow(2,tmp));
return 0;
}