2019暑假多校训练第三场 | 部分题解

出题人告诉我们 

板子hin重要~~

题解链接: https://pan.baidu.com/s/18CNsiQDXgYcEur0QJKZ-xg 提取码: hv93 复制这段内容后打开百度网盘手机App,操作更方便哦

我们只写了一个题06……

知道07是原题但是没改(出题人验题人好不严谨emmmm 一直改题面)

 

06 Fansblog

HDU 6608 威尔逊定理 + 逆元

其实我们并不知道威尔逊定理 

只是在找规律的时候在oeis发现了威尔逊定理的变形emmmm

2019暑假多校训练第三场 | 部分题解_第1张图片

#include 
#include 
#include 
#include 
using namespace std;
const int S=8;
long long mult_mod(long long a,long long b,long long c)
{
    a%=c;
    b%=c;
    long long ret=0;
    long long tmp=a;
    while(b)
    {
        if(b&1)
        {
            ret+=tmp;
            if(ret>c) ret-=c;
        }
        tmp<<=1;
        if(tmp>c) tmp-=c;
        b>>=1;
    }
    return ret;
}
long long pow_mod(long long a,long long n,long long mod)
{
    long long ret=1;
    long long temp=a%mod;
    while(n)
    {
        if(n&1) ret=mult_mod(ret,temp,mod);
        temp=mult_mod(temp,temp,mod);
        n>>=1;
    }
    return ret;
}
bool check(long long a,long long n,long long x,long long t)
{
    long long ret=pow_mod(a,x,n);
    long long last=ret;
    for(int i=1;i<=t;i++)
    {
        ret=mult_mod(ret,ret,n);
        if(ret==1&&last!=1&&last!=n-1) return true;
        last=ret;
    }
    if(ret!=1) return true;
    else return false;
}
bool Miller_Rabin(long long n)
{
    if(n<2) return false;
    if(n==2) return true;
    if((n&1)==0) return false;
    long long x=n-1;
    long long t=0;
    while((x&1)==0)
    {
        x>>=1;
        t++;
    }
    srand(time(NULL));
    for(int i=0;i

 

07 Find the answer

HDU 6609 线段树

原题链接:https://codeforces.com/contest/1185/problem/C2

多校的题目里数据变大了 要稍微改动一下

 

 

你可能感兴趣的:(比赛周记)