6.9-6.13VJ training

A题
只要n和k是相同的奇偶性,并且k的平方大于等于n即可,因为等差数列化简一下就是k方,只要n小于k方就可以被表示出来
#include<bits/stdc++.h>
using namespace std;
bool judge(long long n,long long k)
{
    if(n%2==0&&k%2==0||n%2==1&&k%2==1)
        return true;
    else return false;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
       unsigned long long n,k;
        cin>>n>>k;
        if(judge(n,k)&&n>=k*k)
            cout<<"YES"<<endl;
        else cout<<"NO"<<endl;

    }
}
B题
开三个数组,分别储存公主是否已婚,王子是否已婚,和公主的最佳搭配,之后遍历匹配就完了,匹配到一个就跳出找下一个公主,最后根据情况输出就行
#include<bits/stdc++.h>
using namespace std;
int p[100010],ps[100010];
int best[100010];

int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        for (int i = 1; i <= n;i++){
            ps[i]=0;
            p[i]=0;
            best[i]=0;
        }
        for(int i = 1;i <= n;i++){
            int x;
            cin >> x;
            for(int j = 1;j <= x;j++){
                cin >>best[j];
            }
            for(int k = 1;k <= x;k++){
                if(p[best[k]] == 0){
                    p[best[k]] = 1;
                    ps[i] = 1;
                    break;
                }
            }
        }
        int flag = 0;
        for(int i = 1;i <= n;i++){
            if(ps[i] == 0){
                cout << "IMPROVE" << endl;
                for(int j = 1;j <= n;j++){
                    if(p[j] == 0){
                        cout << i << ' ' << j << endl;
                        flag = 1;
                    }
                    if(flag == 1)break;
                }
            }
            if(flag == 1)break;
        }
        if(flag == 0){
            cout << "OPTIMAL" << endl;
        }

    }
}
C题
直接输出1和结果-1就行
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long a,b;
    int t;
    cin>>t;
    while(t--)
    {
        long long res;
        cin>>res;
        cout<<1<<" "<<res-1<<endl;
    }
}

D题
用set去重最后输出数量就行
#include<bits/stdc++.h>
using namespace std;
int main()
{
    set<int > s;
    int t;
    cin>>t;
    while(t--)
    {
        s.clear();
        int n;
        cin>>n;
        int i;
        for(i = 0;i < n;i++)
        {
            int a;
            cin>>a;
            s.insert(a);
        }
        cout<<s.size()<<endl;
    }
}

F题
直接判断这一组数是否与第一个数具有相同的奇偶性,如果都是奇数或者都是偶数就可以
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        int flag = 1;
        cin>>n;
        int a[n];
        int i;
        for(i = 0;i < n;i++)
            cin>>a[i];
        if(a[0]%2==0)
        {
            for(i = 1;i<n;i++)
            {
                if(a[i]%2!=0)
                {
                    flag=0;
                    break;
                }
            }
        }
        else {
            for(i = 1;i<n;i++)
            {
                if(a[i]%2==0)
                {
                    flag=0;
                    break;
                }
            }
        }
        if(flag)
            cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
}
G题
只要找到两个相同的数字并且他们不相邻就行
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        for(int i = 0;i < n;i++){
            cin >> a[i];
        }

        int flag = 0;
        for(int i = 0;i < n-2;i++){
            for(int j = i+2;j < n;j++){
                if(a[i] == a[j]){
                    cout << "YES" << endl;
                    flag = 1;
                    break;
                }
            }
            if(flag == 1){
                break;
            }
        }

        if(flag == 0){
            cout << "NO" << endl;
        }

    }
}
H题
让小青蛙向右跳的时候的步数是连续L的最大长度就行,遍历字符串数出来最大的连续L的长度
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        string s;
        int time = 0,m = 0;
        cin>>s;
        int i;
        for(i = 0;i < s.length();i++)
        {
            if(s[i]=='L'){
            time++;
            m = max(time,m);
            }
            else time = 0;
        }
        cout<<m+1<<endl;
    }
}






全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务