zoukankan      html  css  js  c++  java
  • ZOJ Monthly, March 2018

    Easy Number Game

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    The bored BaoBao is playing a number game. In the beginning, there are  numbers. For each turn, BaoBao will take out two numbers from the remaining numbers, and calculate the product of them.

    Now, BaoBao is curious to know the minimum sum of the products if he plays at least  turns. Can you tell him?

    Input

    The first line of input contains a positive integer  (about 30), the number of test cases. For each test case:

    The first line contains two integers  and  (). Their meanings are described above.

    The second line contains  integers  (), indicating the numbers.

    Output

    For each test case output one integer, indicating the minimum sum of the products.

    Sample Input

    3
    4 2
    1 3 2 4
    3 1
    2 3 1
    4 0
    1 3 2 4
    

    Sample Output

    10
    2
    0
    

    Hint

    For the first sample test case, the answer is 1 × 4 + 3 × 2 = 10.

    For the second sample test case, the answer is 2 × 1 = 2.

    n个数找m组数,使乘积的和最小

    让前m小最大和最小的相乘就好了

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5;
    int a[N];
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            int n,m;
            cin>>n>>m;
            for(int i=0; i<n; i++)
                cin>>a[i];
            sort(a,a+n);
            int r=2*m-1;
            long long s=0;
            for(int i=0; i<m; i++)
                s+=a[i]*a[r-i];
            cout<<s<<endl;
        }
    }
    Super Brain

    Time Limit: 1 Second      Memory Limit: 65536 KB

    Super Brain is a famous scientific reality and talent show aiming to find people with exceptional brainpower.

    In one of the challenges, two integer sequences  and  of length  are given to the contestant. It's guaranteed that  and  hold for all , and there is exactly one integer in the first sequence which also appears in the second sequence. The contestant has to memorize the two sequences in a very short time, and find the integer which appears in both sequences correctly.

    As a technical staff of the show, you are required to write a program and find out the correct integer.

    Input

    There are multiple test cases. The first line of the input contains an integer , indicating the number of test cases. For each test case:

    The first line contains an integer  (), indicating the length of the sequence.

    The second line contains  integers  (), indicating the first sequence.

    The third line contains  integers  (), indicating the second sequence.

    It's guaranteed that  and  hold for all , and there is exactly one integer in the first sequence which also appears in the second sequence.

    It's also guaranteed that the sum of  over all test cases will not exceed .

    Output

    For each test case output one line containing one integer, indicating the integer which appears in both sequences.

    Sample Input

    3
    3
    3 1 2
    5 3 4
    2
    38324 14122
    38323 14122
    1
    180310
    180310
    

    Sample Output

    3
    14122
    180310
    
    我可能被卡常了,memset就过了
    找到两个数组唯一相同的
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+5;
    int a[N],n;
    int main()
    {
        ios::sync_with_stdio(false);
        int T;
        cin>>T;
        while(T--)
        {
            memset(a,0,sizeof a);
            cin>>n;
            int ans;
            for(int i=0,x; i<n; i++)cin>>x,a[x]++;
            for(int i=0,x; i<n; i++)
            {
                cin>>x;
                if(a[x])ans=x;
            }
            cout<<ans<<"
    ";
        }
    }
    Happy Sequence

    Time Limit: 3 Seconds      Memory Limit: 65536 KB

    A sequence of  integers  () is called a happy sequence if each number divides (without a remainder) the next number in the sequence. More formally, we can say  for all , or we can say  for all .

    Given  and , find the number of happy sequences of length . Two sequences  and  are different, if and only if there exists an such that  and .

    As the answer can be rather large print it modulo  ().

    Input

    There are multiple test cases. The first line of the input contains an integer  (about 50), indicating the number of test cases. For each test case:

    The first and only line contains two integers  and  (), indicating the upper limit of the elements in the sequence and the length of the sequence.

    Output

    For each case output a single integer, indicating the number of happy sequences of length  modulo 

    Sample Input

    1
    3 2
    

    Sample Output

    5
    

    Hint

    In the sample test case, the happy sequences are: , , , , .

     一个数组是按照倍数关系的

    这个题利用埃筛的思想去枚举i个数s*j作为最后一个元素就好

    using namespace std;
    typedef long long ll;
    const ll MD=1e9+7;
    const int N=2005;
    ll dp[N][N];
    int main()
    {
        ios::sync_with_stdio(false);
        int T;
        cin>>T;
        while(T--)
        {
            int n,k;
            cin>>n>>k;
            memset(dp,0,sizeof dp);
            for(int i=1; i<N; i++) dp[1][i]=1;
            for(int i=1; i<k; i++)
                for(int j=1; j<=n; j++)
                    for(int s=1; s*j<=n; s++)
                        dp[i+1][s*j]=(dp[i+1][s*j]+dp[i][j])%MD;
            ll sum=0;
            for(int i=1; i<=n; i++) sum=(sum+dp[k][i])%MD;
            cout<<(sum+MD)%MD<<endl;
        }
        return 0;
    }
    Travel along the Line

    Time Limit: 1 Second      Memory Limit: 65536 KB

    BaoBao is traveling along a line with infinite length.

    At the beginning of his trip, he is standing at position 0. At the beginning of each second, if he is standing at position , with  probability he will move to position , with  probability he will move to position , and with  probability he will stay at position . Positions can be positive, 0, or negative.

    DreamGrid, BaoBao's best friend, is waiting for him at position . BaoBao would like to meet DreamGrid at position  after exactly  seconds. Please help BaoBao calculate the probability he can get to position  after exactly  seconds.

    It's easy to show that the answer can be represented as , where  and  are coprime integers, and  is not divisible by . Please print the value of  modulo , where  is the multiplicative inverse of  modulo .

    Input

    There are multiple test cases. The first line of the input contains an integer  (about 10), indicating the number of test cases. For each test case:

    The first and only line contains two integers  and  (). Their meanings are described above.

    Output

    For each test case output one integer, indicating the answer.

    Sample Input

    3
    2 -2
    0 0
    0 1
    

    Sample Output

    562500004
    1
    0

    1s分为2s,只要n+m挑对了就行了

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll MD=1e9+7;
    const int N=2e5+5;
    ll la(ll a,ll b)
    {
        a%=MD;
        ll ans=1;
        while(b>0)
        {
            if(b&1)ans=ans*a%MD;
            b>>=1;
            a=a*a%MD;
        }
        return ans;
    }
    ll f[N],v[N],ans;
    ll C(ll n,ll m)
    {
        if(m<0||m>n) return 0;
        return f[n]*v[m]%MD*v[n-m]%MD;
    }
    int main()
    {
        ios::sync_with_stdio(false);
        f[0]=1;
        for (ll i=1; i<N; i++) f[i]=f[i-1]*i%MD;
        v[N-1]=la(f[N-1],MD-2);
        for (ll i=N-2; i>=0; i--) v[i]=v[i+1]*(i+1LL)%MD;
        int T;
        cin>>T;
        while(T--)
        {
            int n,m;
            cin>>n>>m;
            ans=C(2*n,m+n)*la(la(2,2*n),MD-2)%MD;
            cout<<ans<<"
    ";
        }
        return 0;
    }
    Lucky Man

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    BaoBao is keen on collection. Recently he is abandoning himself to Kantai Collection, especially to collecting cute girls, known as "Fleet Girls".

    There are  various types of girls in the game. To get a girl, one can use some materials to build her. The probability to get a type of girl by building is the same for all types of girls. From the Coupon Collector's Problem we know that, to collect all types of girls, the expected number of times of building is .

    But this rule does not apply to BaoBao, as he is always luckier than the ordinary players (maybe because he's an European). For BaoBao to collect all types of girls, the expected number of times of building is , where  means the maximum integer that doesn't exceed .

    As a lucky man, BaoBao is not interested in the actual value of , and he just wants to know whether  is odd or even. Can you help him?

    Input

    The first line of the input is an interger  (about 100), indicating the number of test cases. For each test case:

    The first line contains an integer  (), indicating the number of types of girls.

    Output

    For each test case, if  is odd output "1" (without quotes), if  is even output "0" (without quotes).

    Sample Input

    9
    2
    3
    23
    233
    2333
    23333
    233333
    2333333
    23333333
    

    Sample Output

    1
    1
    0
    1
    0
    0
    1
    1
    0

    被卡了一波时间,开方啊

    def sqrt(n):
        l=0
        r=n
        while l<=r :
            mi=(l+r)>> 1
            F=mi*mi
            if(F<n):
                l=mi+1
            elif(F>n): r=mi-1
            else:
                return mi
        return l-1
    T=int(input())
    for i in range(0,T):
        a=int(input())
        if a==0:
            print("0")
        elif a<=3:
            print("1")
        else:
            a=sqrt(a)
            print(a & 1)

     sqrt对于每个都是成立的

    def sqrt(n):
        l=0
        r=n
        while l<=r :
            mi=(l+r)>> 1
            F=mi*mi
            if(F<n):
                l=mi+1
            elif(F>n): r=mi-1
            else:
                return mi
        return l-1
    T=int(input())
    for i in range(0,T):
        a=int(input())
        a=sqrt(a)
        print(a & 1)
  • 相关阅读:
    微信——获取用户基本信息及openid 、access_token、code
    Java中的标记接口(zz)
    深入理解Java的注解(Annotation):注解处理器(3)
    深入理解Java的注解(Annotation):自定义注解入门(2)
    深入理解Java的注解(Annotation):基本概念(1)
    TCP 粘包及其解决方案(zz)
    TCP,UDP,IP包头格式及说明(zz)
    python 如何将JSON数据原封不动的转为字符串(顺序不能变动)?
    mysql:functional dependency
    什么是“几何级数”?什么是“算数级数”?有啥区别?
  • 原文地址:https://www.cnblogs.com/BobHuang/p/8541184.html
Copyright © 2011-2022 走看看