代码求调
查看原帖
代码求调
576527
OI_AKed_me楼主2022/8/5 17:34

WA on #29,和第一篇题解拍了 50005000 组数据都没找到问题,求调或求 hack。

#include<bits/stdc++.h>
using namespace std;
//const int SIZE(1<<21);
//namespace Fread{char buf[SIZE],*S,*T;inline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,SIZE,stdin);if(S==T){return '\n';}}return *S++;}}
//namespace Fwrite{char buf[SIZE],*S=buf,*T=buf+SIZE;inline void flush(){fwrite(buf,1,S-buf,stdout);S=buf;}inline void putchar(char c){*S++=c;if(S==T){flush();}}struct NTR{~NTR(){flush();}}ztr;}
//#define getchar Fread::getchar
//#define putchar Fwrite::putchar
namespace CCF_NB{
	#define ll long long
	#define ss stable_sort
	#define inf INT_MAX
	#define umap unordered_map
	#pragma GCC opitimize(2)
	#pragma GCC opitimize(3)
	inline void read(string &str){char s=getchar();while(s==' '||s=='\n'||s=='\r'){s=getchar();}while(s!=' '&&s!='\n'&&s!='\r'){str+=s;s=getchar();}}
	inline void read(char &_c){_c=getchar();while(_c==' '||_c=='\n'||_c=='\r') _c=getchar();}
	inline void read(double &_d){scanf("%lf",&_d);}
	inline void write(string _str){printf("%s",_str.c_str());}
	inline void write(char _c){putchar(_c);}
	inline void write(double _d){printf("%f",_d);}
	template <typename T> inline void read(T& x){x=0;T f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();x=x*f;return;}
	template <typename T,typename ...Arg>inline void read(T& x,Arg& ...arg){read(x);read(arg...);}
	template <typename T>inline void write(T x){if(x<0)putchar('-'),x=-x;if(x<10)putchar(x+'0');else write(x/10),putchar(x%10+'0');}
	template <typename T,typename ...Arg>inline void write(T x,Arg ...arg){write(x);write(arg...);}
	template <typename T>inline T max(T x,T y){return (x>y)?x:y;}
	template <typename T,typename ...Arg>inline T max(T x,Arg ...arg){return max(x,max(arg...));}
	template <typename T>inline T min(T x,T y){return (x<y)?x:y;}
	template <typename T,typename ...Arg>inline T min(T x,Arg ...arg){return min(x,min(arg...));}
	#define max CCF_NB::max
	#define min CCF_NB::min
	template <typename T>inline T _get(){T _____;read(_____);return _____;}
	template <typename T>inline T gcd(T x,T y){return __gcd(x,y);}
	template <typename T,typename ...Arg>inline T gcd(T x,Arg ...arg){return gcd(x,gcd(arg...));}
}
using namespace CCF_NB;
const ll P(1000000007);

class Cnum{
	ll a[1000005];
	public:
		ll pow(ll y,ll z,ll mod){
		    y%=mod;
			ll ans=1;
		    for(ll i=z;i;i>>=1,y=y*y%mod) if(i&1) ans=ans*y%mod;
		    return ans;
		}
		ll C(ll n,ll m,ll mod){
		    if(m>n) return 0;
		    return ((a[n]*pow(a[m],mod-2,mod))%mod*pow(a[n-m],mod-2,mod)%mod);
		}
		ll Lucas(ll n,ll m,ll mod){
    		if(!m) return 1;
    		return C(n%mod,m%mod,mod)*Lucas(n/mod,m/mod,mod)%mod;
		}
		void build(const ll mod,const ll num){
			a[0]=1;
			for(int i=1;i<=num;i=-~i) a[i]=(a[i-1]*i)%mod;
		}
}C;
ll n,a,b,ans=0;
bool check(ll x){
	while(x){
		ll l=x%10;
		if(l!=a&&l!=b) return 0;
		x/=10;
	}
	return 1;
}
int main(){
	read(a,b,n);
	C.build(P,n);
	for(ll i=0;i<=n;i++){
		if(check(a*i+b*(n-i))){
			ans=(ans+C.C(n,i,P))%P;
		}
	}
	write(ans);

	return 0;
}
2022/8/5 17:34
加载中...