zoukankan      html  css  js  c++  java
  • CSUST 8.3 早训

    A - Settlers' Training

     CodeForces - 63B

    题意

    给你一串数字,相同的数字为一组,每次可以给一组中的一个数字加一,问这一串数字全变成K需要多少步?

    题解

    模拟

    C++代码

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    //#include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//优先队列递增
    //priority_queue<int>Q;//递减
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //加速输入挂
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //求二进制中1的个数
    //__builtin_popcount(n);
    //求2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //树状数组
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //手动扩栈
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    int main(int argc, char const *argv[])
    {
        cin >> n >> m;  int sum = 0;
        for(int i = 1;i <= n ;i ++) cin >>a[i],sum += a[i];
            sort(a + 1 ,a + n  + 1);
        int ans = 0;
        while ( n * m > sum){
            ans ++;
            int j = 0;
            
                    //b[i] = a[i];
                    // if(a[i] && j == 0){
                    //     j ++;
                    //     a[i] --;
                    //     sum ++;
                    // }
                    // else if(a[i] == n){
                    //     sum ++;
                    // }
            for(int i = 1;i <= n ; i++) b[i] = a[i];
                if(b[1] < m) {
                    sum ++;
                    b[1]++;
                }
                for(int i = 2;i <= n;i ++){
                    if(a[i] == a[i-1] || a[i] == m) continue;
                    b[i] ++;
                    sum ++;
                }
                sort(b + 1, b + n + 1);
                for(int i = 1;i <= n ;i ++) a[i] = b[i];
    
    
            }
    
    
        cout << ans << endl;
        return 0;
    }
    View Code

    B - Bulls and Cows

     CodeForces - 63C

    【题意】


    给你一个长度为4的数字序列(每个数字都在0~9之间,且不重复出现)
    现在让你猜这个长度为4的序列是什么.
    猜了之后对方会告诉有几个数字是位置和数字都正确的(猜的数字序列有顺序)
    以及有几个数字是数字出现了但是位置不正确.
    即给你两个反馈。
    现在给你n个猜的过程(猜的4个数字以及对应的两个反馈)
    问你是否能唯一的确定一个4位数字的答案

    【题解】


    列举出来最后的4位数的所有可能。
    对于每一种可能 将其对这n个猜的过程验证一遍》
    如果验证通过,那么递增sum
    最后如果sum==1则说明存在唯一的一个可能.
    sum==0说明没有任何一个可能,则数据有错
    sum>1则说明需要更多的数据才能确定是哪一个.

    C++代码

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    //#include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//优先队列递增
    //priority_queue<int>Q;//递减
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //加速输入挂
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //求二进制中1的个数
    //__builtin_popcount(n);
    //求2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //树状数组
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //手动扩栈
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    
    struct node
    {
        int str;
        int a ,  b;
        int f1,f2,f3,f4;
    }nod[11];
    
    int main(int argc, char const *argv[])
    {
        int n;
        cin >> n;
        for(int i = 1;i <= n ; i ++){
            cin >> nod[i].str >> nod[i].a >> nod[i].b;
        }
        for(int i = 1;i <= n;i ++){
         
                nod[i].f1 = nod[i].str % 10;
                nod[i].f2 = (nod[i].str / 10 ) % 10;
                nod[i].f3 =  (nod[i].str / 100 ) % 10;
                nod[i].f4 =  (nod[i].str / 1000 ) % 10;
            
        }
        int flag = 0;
        int sum = 0;
        string str;
        for(int i = 0;i <= 9;i ++){
    
            for(int j = 0;j <= 9;j ++){
    
                for(int k = 0;k <= 9;k ++){
                    for(int p = 0;p <= 9;p ++){
                        int ans = 0;
                        if(i != j && i != k && i != p && j != k && j != p && k != p)
                        for(int q = 1;q <= n; q ++){
                            int a = 0, b = 0;
                            if(nod[q].f1 == i) {
                                a ++;
                            }
                            if(nod[q].f2 == j) a ++;
                            if(nod[q].f3 == k)a ++;
                            if(nod[q].f4 == p) a ++;
                            if(nod[q].f1 == j || nod[q].f1 ==k || nod[q].f1 == p) b++;
                            if(nod[q].f2 == i || nod[q].f2 ==k || nod[q].f2 == p) b++;
                            if(nod[q].f3 == j || nod[q].f3 ==i || nod[q].f3 == p) b++;
                            if(nod[q].f4 == j || nod[q].f4 ==k || nod[q].f4 == i) b++;
                            if(a == nod[q].a && b == nod[q].b) ans ++;
                        }
                        if(ans == n) {
                            str.push_back(p + '0');
                            str.push_back(k + '0');
                            str.push_back(j + '0');
                            str.push_back(i + '0');
    
                            //sum = p * 1000 + k * 100 + j * 10 + i;
                            flag ++;
                           // break;
                        }
                    }
                }
            }
        }
        if(flag == 1) cout << str << endl;
        else if(flag > 1)cout << "Need more data" << endl;
        else cout << "Incorrect data" << endl;
        return 0;
    }
    View Code

    题意


    看这个数的数据类型(都是整树,且为正数)。

    解题思路 


    首先判断长度。 
    当长度和极值的长度相同时,在用strcmp判断。

    C++代码

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    //#include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//优先队列递增
    //priority_queue<int>Q;//递减
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //加速输入挂
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //求二进制中1的个数
    //__builtin_popcount(n);
    //求2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //树状数组
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //手动扩栈
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    
    int main()
    {
        long double n;
        cin>>n;
        if(n<=127)
        {
            cout<<"byte"<<endl;
        }
        else if(n<=32767)
        {
            cout<<"short"<<endl;
        }
        else if(n<=2147483647)
        {
            cout<<"int"<<endl;
        }
        else if(n<=9223372036854775807)
        {
            cout<<"long"<<endl;
        }
        else
        {
            cout<<"BigInteger"<<endl;
        }
        return 0;
    }
    View Code

    题意 


    雨可以向两边蔓延,如果往边上走的高度是非递增的。

    解题思路


    暴力,O(n^2)。

    C++代码

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    //#include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//??????
    //priority_queue<int>Q;//??
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //?????
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //?????1???
    //__builtin_popcount(n);
    //?2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //????
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //????
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    
    int main(int argc, char const *argv[])
    {
        int n ;
        cin >> n ;
        for(int i =1;i <=  n;i ++ ){
            cin >> a[i];
        }
        int ans = 0;
        for(int i = 1;i <= n ;i ++){
            int sum = 0;
            int l = i - 1, r = i + 1;
            if(i == 1) 
            while(a[r] <= a[r - 1] && r != n + 1) sum ++,r ++;
            else if(i == n)
                while(a[l] <= a[l + 1] && l != 0) sum ++, l --;
            else {
                while(a[r] <= a[r - 1] && r != n + 1) sum ++,r ++;
                while(a[l] <= a[l + 1] && l != 0) sum ++,l --;
            }
            ans = max(ans,sum + 1);
        }
        cout << ans << endl;
        return 0;
    }
    View Code
    给若干个文件路径,问子文件夹以及子文件最多为多少 模拟题,可以直接用文件的绝对路径来表示一个文件 

    题解


    这样就不用担心不同路径文件的重名问题,也不用建树了 
    其次子文件夹和子文件数最多的肯定是根目录下的文件夹 
    用set维护一下这些文件夹的情况即可,set的好处是不用去重

    C++代码

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    #include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//优先队列递增
    //priority_queue<int>Q;//递减
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //加速输入挂
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //求二进制中1的个数
    //__builtin_popcount(n);
    //求2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //树状数组
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //手动扩栈
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    
    map<string,set<string> > folder,files;
    
    int main(int argc, char const *argv[])
    {
        string str , rt;
        while(cin >> str){
            int ans = 0;
            for(int i = 0; i < str.size() ; i ++){
                if(str[i] == '\'){
                    ans ++;
                    if(ans == 2){
                        rt = str.substr(0,i);
                    }
                    else if(ans > 2) folder[rt].insert(str.substr(0,i));
                }
              
            }
             files[rt].insert(str);
        }
        int maxx1 = 0,maxx2 = 0;
            for(auto au : folder){
                maxx1 = max(maxx1,(int)au.second.size());
            }
            for(auto au : files){
                maxx2 = max(maxx2,(int)au.second.size());
            }
    
            cout << maxx1 << " " << maxx2 << endl;
    
        return 0;
    }
    View Code

     题解

    要求构造一个长度为n的正整数序列ai,使得对于∀i≠j,gcd(ai,aj)>1,且gcd(a1,a2,...,an)=1
    n=2显然无解,n>2时,取前nn个素数p1,p2,...,pn令ai=∏j≠ipj,简单验证知a1,a2,...,an满足条件,数字很大要用到高精度

    解法二 

    构造出前3个15 10 6 剩下的为 i * 6即可

    C++代码一

    /**
    /*@author Victor
    /*language C++
    */
    //#include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    #include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=100000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    #define pii pair<int,int>
    #define pll pair<ll,ll>
    #define pil pair<int , ll>
    #define pli pair<ll,int>
    #define pdl pair<double,ll>
    #define pld pair<ll,double>
    #define pdd pair<double,double>
    #define iput(n) scanf("%d",&n)
    #define iiput(a,n) scanf("%d%d",&a,&n)
    #define iiiput(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define dput(n) scanf("%lf",&n)
    #define llput(n) scanf("%lld",&n)
    #define cput(n) scanf("%s",n)
    #define puti(n) printf("%d
    ",n)
    #define putll(n) printf("%lld
    ",n)
    #define putd(n) printf("%lfd
    ",n)
    #define _cls(n) memset(n,0,sizeof(n))
    #define __cls(n) memset(n,0x3f,sizeof(n))
    #define lc rt << 1
    #define rc rt <<1|1
    #define debug(x) cout << "[ " << x << " ]" << endl
    //priority_queue <int,vector<int>,greater<int> > Q;//优先队列递增
    //priority_queue<int>Q;//递减
    //map<ll,ll>mp;
    //set<ll>st;
    //stack<>st;
    //queue<>Q;
    #define F first
    #define S second
    #define pb push_back
    #define PB push_back
    #define MP make_pair
    #define ALL(x) begin(x), end(x)
    #define SZ(x) (int)(x).size()
    /***********************************************/
    //加速输入挂
    # define IOS ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
    # define FOR(i,a,n) for(int i=a; i<=n; ++i)
    //求二进制中1的个数
    //__builtin_popcount(n);
    //求2^k
    //#define (ll)Pow(2,k) (1LL<<k)
    #define to_1(n) __builtin_popcount(n)
    //树状数组
    #define lowbit(x) (x&-x)  
    //#ifdef DEBUG
    #define fin freopen("input.in", "r", stdin)
    #define fout freopen("output.out", "w", stdout);
    //#endif
    //手动扩栈
    #pragma comment(linker,"/STACK:102400000,102400000")
    const int maxn = 2e5 + 7;
    int n  , m ;
    
    int a[maxn];
    //map<int,int> mp;
    int b[maxn];
    int cnt,prime[N],p[N];
    void isprime()
    {
        cnt = 0;
        memset(prime,true,sizeof(prime));
        for(int i=2; i<N; i++)
        {
            if(prime[i])
            {
                p[cnt++] = i;
                for(int j=i+i; j<N; j+=i)
                    prime[j] = false;
            }
        }
    }
    long long sum[100];
    int main(int argc, char const *argv[])
    {
        int n ;
        isprime();
        cin >> n ;
        int flag = 1;
        if(n == 2)flag = 0;
        sum[0] = 1;
        for(int i = 1;i <= 50 ; i++){
            sum[i] = p[i-1];
        }
        if(flag){
            cout << 15 << endl << 10 << endl << 6 << endl;
            for(int i = 4 ;i <= n; i ++) cout << i * 6 << endl;
        }
    
            else 
            cout << -1 << endl;
    
            return 0;
        }
    View Code

    java代码二

     //package ce;
     
    import java.lang.invoke.ConstantCallSite;
    import java.math.BigInteger;
    import java.util.Arrays;
    import java.util.Scanner;
     
    import javax.swing.InputMap;
    import javax.swing.undo.AbstractUndoableEdit;
     
    public class Main{
        
    static int maxn = (int) (1e5 + 7);
    static int p[] = new int [maxn];  
    static int prime[] = new int [maxn];
    static void isprime()
    {
        //int b[] = new int[maxn];
        int cnt;
     
       // p[] = new int [maxn];
        cnt = 0;
        Arrays.fill(prime,1);
        for(int i=2; i< maxn; i++)
        {
            if(prime[i] == 1)
            {
                p[cnt++] = i;
                for(int j=i+i; j<maxn; j+=i)
                    prime[j] = 0;
            }
        }
    }
     
    private Object sizeof(int[] prime) {
        // TODO Auto-generated method stub
        return null;
    }
    static BigInteger sum[] = new BigInteger[100];
    public static void  main(String[] args) {
     
         // int n ;
          isprime();
          Scanner a = new Scanner(System.in);
          int n = a.nextInt();
            int flag = 1;
            if(n == 2)flag = 0;
            //sum[0] = 1;
            for(int i = 1;i <= 50 ; i++){
              //  Object[] p;
                sum[i] = BigInteger.valueOf(p[i-1]);
            }
            if(flag == 1)
            for(int i = 1;i <= n ;i ++){
                BigInteger ans = BigInteger.valueOf(1);
                for(int j = 1;j <= n;j ++){
                    if(i!=j) ans = ans.multiply(sum[j]);
                }
                if (flag == 1) {
                    System.out.println(ans);
                }
                
            }else System.out.print(-1);
     
    }
    }
    View Code
  • 相关阅读:
    软件工程课后作业3:如何返回一个整数数组中最大子数组的和
    软件工程课后作业2:四则运算题目扩展:可指定题目数量并且支持真分数运算
    软件工程课后作业1:三十道四则运算题目
    团队作业3返回整数数组中最大子数组的和(多个数组)
    求一个二维数组所有子数组和的最大值(郭少周,陈泽)
    郭少周和陈泽两人合作课堂练习和课下作业
    学生成绩查询系统个人NABCD
    返回一个整数组的最大子数组和
    个人项目3
    返回一个二维整数组中最大子数组的和
  • 原文地址:https://www.cnblogs.com/DWVictor/p/11296162.html
Copyright © 2011-2022 走看看