• Creating Multiples(逆元+同余定理)没有解决


    b进制数最多使某一位减小使得新数是b+1的乘积,不能减输出-1,不用减输出0,否则输出减小的位的下标和减小后的新位。
    View problem

    思路: 就是更具题意转化为同于定理(把N当成整体来看,枚举的位次一次增加)(中间有除法利用逆元ksn,mod-2)

    同余定理   2个数的余数相同(%以同一个数)那么这2个数相减%这个数=0;(被整除)

    代码: 答案错误 在第11个点, 求大佬看看,调了很多个版本都是这样。

                 n ≡ m ( m o d b + 1 )    ⟺    n − m ≡ 0 ( m o d b + 1 ) 

    #include <bits/stdc++.h>
    using namespace std;
    #define ri register int
    #define M 200015
    
    template <class G> void read(G &x)
    {
        x=0;int f=0;char ch=getchar();
        while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();}
        while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
        x=f?-x:x;
        return ;
    }
    
    long long  n,m;
    long long  mod;
    long long  p[M],aa[M],inv[M];
    long long ksn(long long a,long long n)
    {
        long long ans=1;
        while(n)
        {
            if(n&1) ans=ans*a%mod;
            n>>=1;a=a*a%mod;
        }
        return ans;
    }
    int main(){
        
        read(m);read(n);
        mod=m+1;
        for(ri i=1;i<=n;i++)
        {
            read(p[i]);
        }
    
        long long tmp=0;
        aa[0]=1;
        for(ri i=1;i<=n;i++) 
        {
            aa[i]=aa[i-1]*m%mod;
            tmp=(tmp+(p[n-i+1]*aa[i-1])%mod)%mod; // 要取余数时看是不是所有地方都取了 
        }
        if(tmp==0) 
        {
            printf("0 0");
            return 0;
        }
        
        for(ri i=1;i<=mod;i++)
        {
            inv[i]=ksn(i,mod-2);
        }
        
        for(ri i=1;i<=n;i++)
        {
            long long t=tmp*inv[aa[n-i]]%mod;
            if(t<=p[i])
            {
                printf("%d %lld",i,p[i]-t);
                return 0;
            }
        }
        printf("-1 -1");
        return 0;
    } 
    View Code
  • 相关阅读:
    SharePoint 2010 新体验3 文档集
    Firebird 修改表名
    C++Builder XE7 up1 简单测试
    Firbird 将可 null 的列更新为 not null
    用delphiXE7 dbExpress Framework提供的功能获取数据表信息
    Linux的基本命令总结
    IOS 隐藏时间条
    最大流 ZQUOJ 10181 && POJ 1273
    最大二分匹配 匈牙利算法模板&&POJ 1469 COURSES
    新加坡第四天下午
  • 原文地址:https://www.cnblogs.com/Lamboofhome/p/16161102.html
Copyright © 2020-2023  润新知