首页 > 其他分享 >cd 数论

cd 数论

时间:2024-01-30 15:35:01浏览次数:30  
标签:ch return 数论 ll cd int ans mod

数论专场

Strange Limit

题目大意

给你 \(p\) 和 \(m\) ,求 \(p^{p^{p^{p……}}}\ mod\ m!\)

思路

有 \(n\) 个 \(p\), \(n\) 为无穷大,也就是递归里套一个指数循环节,然后因为 \(n\) 趋向于无限大,那么当前要 \(mod\) 的 \(x\) \(\mu (\mu (\mu (m)))\),也在一直缩小。
如果当 \(p\ mod\ x=0\) 的时候,就是返回个 \(p^p\ mod\ x\),再往上就是 \(0\) 的几次方了,已经没有影响了。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int p,m,A[15]={1};
int euler(int x)
{
    int ans=x;
    for(int i=2;i*i<=x;i++)
    {
        if(x%i==0)
        {
            ans-=ans/i;
            while(x%i==0)
                x/=i;
        }
    }
    if(x>1) 
        ans-=ans/x;
    return ans;
}
ll qpow(ll a,ll b,ll c)
{
    ll ans=1;
    if(a>=c) 
        a=a%c+c;
    while(b)
    {
        if(b&1)
        {
            ans*=a;
            if(ans>=c) 
                ans=ans%c+c;
        }
        a*=a;
        if(a>=c) 
            a=a%c+c;
        b>>=1;
    }
    return ans;
}
ll ap(int x)
{
    if(p%x==0) 
        return qpow(p,p,x);
    return qpow(p,ap(euler(x)),x);
}
int main()
{
    freopen("limit.in", "r", stdin);
    freopen("limit.out", "w", stdout);
    for(int i=1;i<=12;i++) 
        A[i]=A[i-1]*i;
    cin>>p>>m;
    printf("%lld\n",ap(A[m])%A[m]);
    return 0;
}

GCD Determinant(SP4195)

题目大意

有 \(n\) 个正整数 \(a_i\) 和一个 \(n\times n\) 的矩阵,矩阵中 \(i\) 行 \(j\) 列的元素为 \(gcd(a_i,a_j)\),求矩阵的行列式。

思路

结论为 \(\phi a_1\times \phi a_2\times \phi a_3 \times ……\times \phi a_n\)。
(可以先暴力算出矩阵的行列式,然后消掉)

#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
ll solve(int x)
{
	ll ans=x;
	for(int i=2;i<=x/i;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%mod;
}
int n;
int main()
{
    while(cin>>n)
    {
        ll ans=1;
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            ans=ans*solve(x)%mod;
        }
        cout<<ans<<'\n';
    }
    return 0;
}

Remainders Game(CF687B)

题目大意

给定 \(n\) 个正整数 \(c_i\) 和 \(k\),假设你知道一个数 \(x\),问能否从 \(x\ mod\ c_i\) 推出 \(x\ mod\ k\)。

思路

用中国剩余定理,所以我们知道只要 \(c_i\) 中包含了所有的 \(k\) 的质因数就可以推出,但把每个数全部分解质因数明显不可以,其实只要 \(c_i\) 的最小公倍数 \(mod\ k=0\) 就可以了,注意每次还要 \(mod\ k\)。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int read()
{
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0' || ch>'9')
    {
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
    {
        x=(x<<3)+(x<<1)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
int n,k;
ll add=1;
int main()
{
    n=read(),k=read();
    for(int i=1;i<=n;i++)
    {
        ll x=read();
        add=add*x/__gcd(add,x)%k;
    }
    if(add%k==0)
        puts("Yes");
    else
        puts("No");
    return 0;
}

总结

上午是请了南京大学的教授讲数论,分了三小节课讲,第一节的全部和第二节的一部分能听懂,从中国剩余定理讲到一堆东西,再讲到群和矩阵。

标签:ch,return,数论,ll,cd,int,ans,mod
From: https://www.cnblogs.com/noipwen/p/17997217

相关文章

  • cd 游记
    Day1差不多晚上才到,去吃了火锅,菜里都有花椒,晚上在寝室整理自己的东西,了解了一下制度。Day2上午先做了一下昨天的题目,难度还行,补了\(Ice-creamTycoon\)和\(NewYearandConference\),下午是金天讲课,知道了许多有意思的DS转换,难度为单峰。中午和yjf和hhx去外面吃饭,吃的云吞,......
  • etcd v2 版本数据备份恢复脚本
    importrequestsimportjsonimportsysaction=sys.argv[1]etcdaddr=sys.argv[2]defbackup_data():url=f"{etcdaddr}/v2/keys/?recursive=true"response=requests.get(url)ifresponse.status_code==200:data=res......
  • Walrus 实用教程|Walrus + Gitlab,打通CI/CD 自动化交付!
    Walrusfile是Walrus0.5版本推出的新功能,用户可以通过一个非常简洁的YAML描述应用或基础设施资源的部署配置,然后通过WalrusCLI执行walrusapply或在WalrusUI上进行import,将Walrusfile提交给Walrusserver,由Walrusserver完成对应用或基础设施资源的部署/配置/......
  • 出大招了,这个顶级 CI/CD 产品,最近甩出了两个“王炸”
    极狐GitLabCI自16.0版本以来,陆续引入了CI/CDcomponent和CI/CDCatalog两个重量级功能,提高了CI/CD流水线的复用性,从此编写流水线可能像搭积木那样便捷了。计算机中的所有问题都可以通过增加一个间接层来解决。——DavidWheeler(大卫·惠勒)编写CI/CD流水线是DevO......
  • 数论分块
    将O(n)优化成o(根号n)[CQOI2007]余数求和题目描述给出正整数\(n\)和\(k\),请计算\[G(n,k)=\sum_{i=1}^nk\bmodi\]对于\(100\%\)的数据,保证\(1\leqn,k\leq10^9\)voidsolve(){ intn,k;cin>>n>>k; intans=n*k; //注意推导公式字母不要弄混 for(int......
  • PCDN 流量盒子 系统定制 OEM看过来
    赋能每个家庭,闲置带宽流量可以变成收益的PCDN机顶盒,各位听说过吗?PCDN是一种高效的内容分发网络,它通过负载均衡、数据优化、网络优化等技术,提高网站的可用性、稳定性和性能。PCDNOEM,电话/微信:13540308877我们专注于使用自主可控的核心技术构建跨越“云-边-端”的全栈边缘计算,......
  • 数论1-素数
    Part1前置记号约定整数集合:$\Z={...,-2,-1,0,1,2,…}$自然数集合:\(\N=\{0,1,2,…\}\),下文若不特殊说明,则出现的所有字母皆代表自然数。整除:若\(a=b\timesk\),则\(b\)整除\(a\),记作\(b\mida\),否则记作\(b\nmida\)约数:若\(b\mida\)且\(b\g......
  • Gogs,支付宝沙箱支付,DevOps&CI/CD
    1.Gogs2.支付宝沙箱支付测试3.DevOps是生么4.CI/CD是什么1.Gogs是一款极易搭建的自助Git服务。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、Ma......
  • 第二届数字化经济与管理科学国际学术会议(CDEMS 2024)
    【经济&管理|录用率高】第二届数字化经济与管理科学国际学术会议(CDEMS2024)20242nd InternationalConferenceonDigitalEconomyandManagementScience(CDEMS2024) 重要信息 大会官网:www.icdems.com 大会时间:2024年4月26-28日大会地点:武汉(线上线下结合)✱截稿日期:20......
  • UOJ #33 树上 GCD
    套路地,对每个\(g\in[1,n-1]\)求出有多少对无序对\((u,v)\)满足\(g|f(u,v)\),然后就可以用一个倒序枚举的\(\mathcalO(n\logn)\)的容斥求出答案。考虑点分治,对每个经过分治中心\(c\)的\(u\rightsquigarrow\text{lca}(u,v)\rightsquigarrowv\)只需分两种......