首页 > 其他分享 >poj3696 The Luckiest number 题解

poj3696 The Luckiest number 题解

时间:2024-04-19 23:23:30浏览次数:25  
标签:Luckiest 10 gcd pmod 题解 number long int equiv

很容易想到,\(n\)个8可以转换为\((10^{n+1}-1)/9*8\)

容易你个集贸啊,xzz推10分钟我推了一个上午

顺便膜拜xzz

然后就是推式子了。。。(悲

\[(10^{n+1}-1)/9*8\equiv 0\pmod h\\ =>{10^{n+1}*8-8\above 1pt9}\equiv 0\pmod h\\ =>10^{n+1}*8-8\equiv 0\pmod {9h}\\ =>10^{n+1}*8\equiv 8\pmod {9h}\\ =>10^{n+1}\equiv 1\pmod{{9h\above 1pt gcd(8,h)}} \]

PS:推到最后一步时我认为要拿while处理,xzz告诉我有个东西叫gcd,我惊讶极了

然后就可以欧拉定理了

PS*2:欧拉定理和万恶的高斯消元一样,只能求出特解,要枚举解的因子

最后贴上丑陋的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int cnt,n;
int phi_(int x){
	double ans=x;
	for(int i=2;i<=sqrt(x);i++){
		if(x%i==0){
			ans=ans*(i-1)/i;
		}
		while(x%i==0){
			x/=i;
		}
	}
	if(x!=1){
		ans=ans*(x-1)/x;
	}
	return ans;
}
int qpow(int a,int b,int mod){
	int ans=1;
	while(b){
		if(b&1){
			ans=(ans%mod*a%mod+mod)%mod;
		}
		a=(a%mod*a%mod+mod)%mod;
		b>>=1;
	}
	return ans%mod;
}
signed main(){
	while(cin>>n&&n){
		n*=9;
		n=n/(__gcd((long long)8,n));
		if(__gcd(n,(long long)10)>1){
			cout<<"Case "<<++cnt<<":"<<0<<endl;
			continue;
		}
		int phi=phi_(n),minn=1e9;
		for(int i=1;i*i<=phi;i++){
			if(phi%i){
				continue;
			}
			if(qpow(10,i,n)==1){
				minn=min(i,minn);
			}
			if(qpow(10,phi/i,n)==1){
				minn=min(phi/i,minn);
			}
		}
		cout<<"Case "<<++cnt<<":"<<minn<<endl;
	}
	return 0;
}

poj3696 The Luckiest number

标签:Luckiest,10,gcd,pmod,题解,number,long,int,equiv
From: https://www.cnblogs.com/lewisak/p/18146983

相关文章

  • P321. [NOI2002]荒岛野人Savage题解?!!!
    还是我容易(☚xzz说的)想出,x年后i号野人的位置为:\((C_i+P_i*x)\modm\)我们只要让任意方程:\((C_i+P_i*x)\modm=(C_j+P_j*x)\modm\)解小于\(L_i\)或小于\(L_j\)即可推式子!\[(C_i+P_i*x)≡(C_j+P_j*x)\(mod~m)\\⇿x*(P_i-P_j)+y*m=C_j-C_i\]然后就是拓展欧几里得模板了。......
  • 题解:CSP-S2020] 函数调用
    题解:CSP-S2020]函数调用一句话题意:给定一个有初始值的序列,支持如下三种操作:1、单点加2、全局乘3、递归某些操作1、2、3求最终的序列。标签:topsort,动态规划,转化贡献统计(集中贡献),主客翻转关于topsort:部分分里的树结构基本上直接暗示了正解要使用topsort,而且本来函......
  • CF1713F Lost Array 题解
    题目链接点击打开链接题目解法很牛的题!!!先考虑\((0,i)\)对\((j,n)\)的贡献,因为是异或,所以只要考虑奇偶性问题可以抽象成一条路径对应\(a_i\)的贡献,所以是否有\(a_i\)的贡献看\(\binom{n-i+j-1}{j-1}\)的奇偶性根据\(kummer\)定理,这个组合数是奇数当且仅当\(n-i+......
  • [题解][洛谷P1412] 经营与开发
    题目描述给定n,k,c,w,然后输入n组数据,数据分为两种:1ai:可以选择获得aiw的价值,但w会变成w(1-0.01*k)2bi:可以选择损失biw的价值,但w会变成w(1+0.01*c)求可获得的最大价值是多少。题解看到这个题,我的第一思路是求后缀和,然后让新得到的系数乘后缀和判断是否进行操作。但问题在于,对于......
  • 高斯消元学习笔记——P304题解
    如果你觉得这篇太啰嗦问题[SDOI2006]线性方程组题目描述已知\(n\)元线性一次方程组。\[\begin{cases}a_{1,1}x_1+a_{1,2}x_2+\cdots+a_{1,n}x_n=b_1\\a_{2,1}x_1+a_{2,2}x_2+\cdots+a_{2,n}x_n=b_2\\\cdots\\a_{n,1}x_1+a_{n,2}x......
  • ABC349F题解
    思想看到LCM想到质因数分解。首先,我们先把\(M\)质因数分解了,根号复杂度刚好1e8级别。然后我们发现一个很显然的性质:如果一个数不是\(M\)的因数那他肯定没用。所以此处我们就把不是因数地踢掉。我们惊奇地发现因为\(M\)的质因数分解最多\(13\)个不同的质数,然后我......
  • 题解 LGP5397【[Ynoi2018] 天降之物】/ 第四分块
    题解P5397【[Ynoi2018]天降之物】/第四分块题目描述一个长为\(n\)的序列\(a\)。你需要实现\(m\)个操作,操作有两种:把序列中所有值为\(x\)的数的值变成\(y\)。找出一个位置\(i\)满足\(a_i=x\),找出一个位置\(j\)满足\(a_j=y\),使得\(|i-j|\)最小,并输出\(|i-......
  • vsCode无法连接服务器问题解决及思考
    背景早上刚打开电脑,准备开始一天的工作。但是发现VSCode无法连接上我的虚拟机了,导致无法工作了,这让我十分头疼。最终花了将近一天的时间将问题解决,但是其中的过程走了不少弯路,浪费了不少时间,也进行了反思。我们作为开发人员,应该要用软件思维去理解这款产品,帮助我们去思考问题。......
  • P4168 [Violet] 蒲公英(题解)
    题目题目描述输入格式输出格式数据范围![]样例输入:63123212153615输出:121思路暴力本题求区间内的最小众数,容易想到去用数组sum[i]表示第i种花的个数,在去便利比较,但是复杂度nm一定会T,这时候就要对暴力进行优化。分块优化1如果我们将所......
  • Codeforces Round 932 (Div. 2)题解(c、d)
    CodeforcesRound932(Div.2)C.MessengerinMAC题目大意给定一些\(a_i\)\(和b_i\),选出尽量多的\(a_i和b_i\),使得\(\sum_{i=1}^ka_{p_i}+\sum_{i=1}^{k-1}\left|b_{p_i}-b_{p_{i+1}}\right|\)小于给定的\(l\)。题目解析由于题目没有要求\(\{p\}\)是升序排列的序列,因此......