zoukankan      html  css  js  c++  java
  • 2018年全国多校算法寒假训练营练习比赛(第三场)

    A——链接:https://www.nowcoder.net/acm/contest/75/A
    来源:牛客网

    夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
    所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。

    输入描述:

    第一行是一个整数t(0<t<=1000000)(表示t组数据)
    接下来t行,每一行有一个整数n(0<=n<=10000000)

    输出描述:

    输出n!在8进制下的位数。

    示例1

    输入

    3
    4
    2
    5

    输出

    2
    1
    3
    #include<bits/stdc++.h>
    using namespace std;
    #define ull unsigned long long
    const double Pi = asin(1.0)*2;
    typedef long long  ll;
    const double e = 2.718281828459;
    const int inf = 0x3f3f3f3f;
    const int moder = 1e9 + 7;
    const int MAXN=1000000;
    
    int main()
    {
        int t;
        scanf("%d", &t);
        double temp = log(8);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            if(n == 0 || n == 1)
                cout << 1 << endl;
            else
            {
                double ans = ((log(2*n*Pi)/2)+n*(log(n/e)))/temp + 1;
                printf("%d
    ", (int)ans);
            }
        }
        return 0;
    }

    妈的,用cin超时了,花了我一个小时。

    B——链接:https://www.nowcoder.net/acm/contest/75/B
    来源:牛客网

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 32768K,其他语言65536K
    64bit IO Format: %lld

    题目描述

    uu遇到了一个小问题,可是他不想答。你能替他解决这个问题吗?
    问题:给你k对a和r是否存在一个正整数x使每队a和r都满足:x mod a=r,求最小正解x或无解。

    输入描述:

    第一行是正整数k(k<=100000)
    接下来k行,每行有俩个正整数a,r(100000>a>r>=0)

    输出描述:

    在每个测试用例输出非负整数m,占一行。
    如果有多个可能的值,输出最小的值。
    如果没有可能的值,则输出-1。
    示例1

    输入

    2
    8 7
    11 9

    输出

    31
    #include<bits/stdc++.h>
    using namespace std;
    #define ull unsigned long long
    typedef long long  ll;
    
    const int inf = 0x3f3f3f3f;
    const int moder = 1e9 + 7;
    const int MAXN=100005;
    
    ll extgcd(ll a,ll b,ll &x,ll &y)
    {
        ll d = a;
        if(b == 0)
        {
            x = 1;
            y = 0;
        }
        else
        {
            d = extgcd(b,a%b,y,x);
            y -= (a/b)*x;
        }
        return d;
    }
    
    ll solve(ll a[],ll r[],ll n)
    {
        ll d,c,i,x,y,t;
        for(i=1;i<n;i++)
        {
            c=r[i]-r[i-1];
            d=extgcd(a[i-1],a[i],x,y);
            if(c%d!=0) return -1;
            t=a[i]/d;
            x=(x*(c/d)%t+t)%t;
            r[i]=a[i-1]*x+r[i-1];
            a[i]=a[i-1]*(a[i]/d);
        }
        return r[n-1];
    }
    int main()
    {
        ll n;
        ll a[MAXN];
        ll r[MAXN];
        cin >> n;
        for(int i=0;i < n;i++)
        {
            cin >> a[i] >> r[i];
        }
        ll ans = solve(a,r,n);
        cout << ans << endl;
    
        return 0;
    }

    线性同余方程组裸题

    D——链接:https://www.nowcoder.net/acm/contest/75/D
    来源:牛客网

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 32768K,其他语言65536K
    64bit IO Format: %lld

    题目描述

    小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)(1 2 3 4 取走 2 13 不算相邻)


    输入描述:

    输入包括多组测试数据
    每组测试数据一个n(1≤n≤1e9)

    输出描述:

    每组用一行输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)
    示例1

    输入

    2
    3

    输出

    XiaoNiu
    XiaoKe
    #include<bits/stdc++.h>
    using namespace std;
    #define ull unsigned long long
    typedef long long  ll;
    
    const int inf = 0x3f3f3f3f;
    const int moder = 1e9 + 7;
    const int MAXN=1000010;
    
    int main()
    {
        ll n;
        while(cin >> n)
        {
            if(n > 2)
                cout << "XiaoKe" << endl;
            else
            {
                cout << "XiaoNiu" << endl;
            }
               
        }
        return 0;
    }

    博弈

  • 相关阅读:
    codeforces 701 D. As Fast As Possible(数学题)
    codeforces 807 E. Prairie Partition(贪心+思维)
    codeforces 807 D. Dynamic Problem Scoring(贪心+思维)
    codeforces 807 C. Success Rate(二分)
    Atcoder C
    Atcoder D
    hdu 3308 LCIS(线段树区间合并)
    SpringMVC学习笔记---
    Composer Yii2 不设置全局变量 归档安装 Win7
    电脑硬件扫盲--CPU 显卡
  • 原文地址:https://www.cnblogs.com/cunyusup/p/8413695.html
Copyright © 2011-2022 走看看