exgcd求救
查看原帖
exgcd求救
304504
蓝__楼主2021/1/4 13:48

最后一个点23次提交从700ms到512ms

欧几里得赐予我力量!!!

#include<cstdio>
template <typename L> inline void Read(L &x){
	char c;
	while((c=std::getchar())<'0'||c>'9');
	x=c^48;
	while((c=getchar())>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48);
}
template <typename L> void Write(L x){
    if(x>9) Write(x/10);
    std::putchar(x%10^48);
}
inline void exgcd(register int a,register int b,register int &x,register int &y){
	if(!b){x=1;y=0;}
	else{
		exgcd(b,a%b,x,y);
		register int k=x;
		x=y;y=k-(a/b)*y;
	}
}
int main(){
	register int n,p,x,y;
	Read(n);Read(p);
	for(register int i=1;i<=n;++i){
		exgcd(i,p,x,y);
		Write((x+p)%p);
		std::putchar('\n');
	}
	return 0;
}
2021/1/4 13:48
加载中...