ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2020.06.09——习题训练五

2020-06-13 15:07:10  阅读:234  来源: 互联网

标签:tmp int 09 cin 2020.06 while MAXN 习题 include


A - Sum of Odd Integers

前N个奇数和为N^2,所以说,当N小于K^2时即为不满足条件。再判断一下特殊情况就行。

#include<bits/stdc++.h>

using namespace std;
int t ;


int main(){
    scanf("%d",&t);
    while(t--){
        int n,k;
        cin>>n>>k;
        if(n%2==k%2){
            if(k==1&&n%2==0)
                cout<<"NO"<<endl;
            if((n/k)<k)
                cout<<"NO"<<endl;
            else
                cout<<"YES"<<endl;
        } 
        else{
            cout<<"NO"<<endl;
        }
    } 
    return 0;
}

B - Princesses and Princes

直接找没有配对的人就行,如果都配对了,就没有配对情况。

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;
int main(){
    scanf("%d",&t);
    while(t--){
        int n,a[MAXN],b[MAXN];
        memset(a,0,sizeof(a));
        map<int,int> mp;
        cin>>n;
        for(int i =1;i<=n;i++)
            mp[i]=0;
        for(int p=1;p<=n;p++){
            int k;
            bool flag=true;
            cin>>k;
            for(int i =1;i<=k;i++){
                int tmp;
                cin>>tmp;
                if(mp[tmp]==0&&flag){
                    a[p]=tmp;
                    mp[tmp]=1;
                    flag=false;    
                }
            }
        }
        int ans1=0,ans2=0;
        for(int i =1;i<=n;i++){
            
            if(a[i]==0&&!ans1)
                ans1=i;
            if(mp[i]==0&&!ans2)
                ans2=i;        
        }
        if(ans1){
            cout<<"IMPROVE"<<endl;
            cout<<ans1<<" "<<ans2<<endl;
        }
        else
            cout<<"OPTIMAL"<<endl;
     }
    return 0;
}

C - EhAb AnD gCd

想麻烦了,直接输出就行……

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;

struct wm{
    int k;
    map<int,int> mp;
}g[MAXN];

int main(){
    scanf("%d",&t);
    while(t--){
        int n;
        cin>>n;
        cout<<"1 "<<n-1<<endl;
     }
    return 0;
}

D - CopyCopyCopyCopyCopy

 找不同的数,其实用map好一点。

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;

int main(){
    scanf("%d",&t);
    while(t--){
        int n;
        cin>>n;
        int tmp,ans=0;
        map<int,int> mp;
        for(int i =1;i<=n;i++){
            cin>>tmp;
            if(mp[tmp]==0){
                mp[tmp]=1;
                ans++;
            }        
        }
        cout<<ans<<endl;
     }
    return 0;
}

F - Yet Another Tetris Problem

一共就两个判断点,不能同时有偶和奇数。

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;


    


int main(){
    scanf("%d",&t);
    while(t--){
        int n,flag1=0,flag2=0;
        cin>>n;
        while(n--){
            int tmp;
            cin>>tmp;
            if(tmp%2==0)
                flag1=1;
            if(tmp%2)
                flag2=1;
        } 
        if(flag1&&flag2)
            cout<<"NO"<<endl;
        else
            cout<<"YES"<<endl;
     }
    return 0;
}

G - Yet Another Palindrome Problem

 又想麻烦了,直接找到两个相同的数字中间是否为空就行。

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;


    


int main(){
    scanf("%d",&t);
    while(t--){
        int n, a[MAXN],l,r,res[MAXN],flag=0;
        memset(res,1,sizeof(res));
        cin>>n;
        for(int i =0;i<n;i++)
            cin>>a[i];
        int len=0;
        for(int i =0;i<n;i++){
            for(int j = n-1;j>i+1;j--){
            //    cout<<i<<" "<<j<<endl;
                if(a[i]==a[j]){
                    flag=1;
                    break;
                }    
            }
            if(flag)
                break;
        }
    //    cout<<len<<endl;
        if(flag)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
        
     }
    return 0;
}

 

H - Frog Jumps

总要往右跳,直接找R就行。

#include<bits/stdc++.h>

using namespace std;
const int MAXN=1e5+7;
int t;


    


int main(){
    scanf("%d",&t);
    while(t--){
        string ss;
        int d=1,ans=-1;
        cin>>ss;
        for(int i =ss.length()-1;i>=0;i-- ){
            if(ss[i]=='R'){
                ans=max(d,ans);
                d=1;
            }
            else
                d++;
        }
        ans=max(d,ans);
        
        cout<<ans<<endl;
        
     }
    return 0;
}

 

标签:tmp,int,09,cin,2020.06,while,MAXN,习题,include
来源: https://www.cnblogs.com/aixiaodezsh/p/13114516.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有