• 9.19[XJOI] NOIP训练37


    上午[XJOI] NOIP训练37

    T1 同余方程

    Problem description

    已知一个整数a,素数p,求解 $x^{2}equiv a(mod p) $ 是否有整数解

    Solution

    据说是二次剩余
    作为一个蒟蒻,非常不正经的来证一下
    由于p是质数,所以

    (1) 当p=2,则一定有解

    (2) 如果p<>2

    (xequiv a^{frac{1}{2}}(mod p))
    (x^{p-1}equiv a^{frac{p-1}{a}}(modp))
    又因为费马小定理
    (x^{p-1}equiv 1(modp))
    所以(a^{frac{p-1}{2}}equiv 1(modp)),
    这样就很完美的得到了答案

    Code

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll T,a,p,ans;
    ll pow(ll a,ll b){
        ll res=1,base=(b-1)/2;
        if (a==0) return 0;
        while(base){
            if (base&1) res=res*a%b;
            base>>=1; a=a*a%b;
        }
        return res;
    }
    int main(){
        scanf("%d",&T);
        while (T--){
            scanf("%lld%lld",&a,&p);
            ans=pow(a,p);
            if (ans==1) printf("YES
    ");
                else printf("NO
    ");
        }
    }
    

    T2 重复串

    Problem description

    求最少删掉几个字符,使得最后答案成为重复串

    Solution

    这可能是我做过最简单的T2吧,
    最暴力的O((n^{3}))Dp,枚举中点,然后做一个lcs

    T3 摘苹果

    Solution

    直接进行树上贪心,对于每个节点,将它的每个子节点当做一个叶子结点(及合并了子树的信息),
    然后找出最大的l,然后判断哪些子节点的r小于这个l,那么这说明只能独立减掉。
    其他的节点则可以合并到根节点上,变成一个节点,只是lr变了一下而已。
    (此段文字为whc大佬所言) 在此%%%whc

    Code

    #include<bits/stdc++.h>
    using namespace std;
    int l,r,ans=0;
    void dfs(int &l,int &r){
    	int k,x,y;
    	l=0; scanf("%d",&k);
    	if (k==0) scanf("%d%d",&l,&r);
    	else {
    		vector <int> a;
    		for (int i=0;i<k;++i)
    			dfs(x,y),l=max(l,x),a.push_back(y);
    		sort(a.begin(),a.end());
    		for (int i=0;i<k;++i)
    			if (a[i]<l) ++ans; 
    			else{
    				r=a[i]; return;
    			}
    	}
    }
    int main(){
    	dfs(l,r);
    	printf("%d",ans+1);
    	return 0;
    }
    

    下午及晚上

    非常快的迅速订完题目,然后的然后,我也不知道了


    一日总结

    今天破天荒的用了一下markdown来写博客
    对于这个不能调字体我也是非常无奈啊
    决定如果没有数学题,绝不用markdown
    还有这里我要严重吐槽一下各科老师,对!所有老师!
    一次又一次的加深了我对xj的**感情
    当然我会努力只在这里呆一年的,但对于在这儿的每一天,我一定都会过好

  • 相关阅读:
    LeetCode_326. Power of Three
    LeetCode_303. Range Sum Query
    LeetCode_299. Bulls and Cows
    LeetCode_292. Nim Game
    LeetCode_290. Word Pattern
    LeetCode_283. Move Zeroes
    LeetCode_278. First Bad Version
    LeetCode_268. Missing Number
    LeetCode_263. Ugly Number
    LeetCode_258. Add Digits
  • 原文地址:https://www.cnblogs.com/logic-yzf/p/7552472.html
Copyright © 2020-2023  润新知