牛客小白月赛73 整合题解

先要表扬一下,这场比赛题目的质量还是非常不错的。


干了这道题,祝你们成功!
序言:我8:55才开始打,A了两道题,遗憾告别,其实A掉4-5道题都不过分

T1 题解

只要分类讨论三种情况,即取余数为0,1,2时。(这数据真的不毒瘤好吧)

代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n; 
signed main(){
	cin>>n;
	if(n%3==0) cout<<n;
	else if(n%3==1) cout<<n+2;
	else cout<<n+1;
	return 0;
}

T2 题解

水!数据范围,水;题面,水;难度,大水!!!

直接上:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
int T,a[N]; 
signed main(){
	cin>>T;
    for(int i=1;i<=T;i++){
        cin>>a[i];
        cout<<a[i]*2<<" "<<a[i]*3<<endl;
    }
	return 0;
}
//我的代码是枚举了2倍和3倍的数

T3 题解

若前后两个元素的差值小于它们的距离为1的话,那么其他元素跟这个元素就无法交换,即无解。 若有解,就只要排序输出即可。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1005;
int T,n;
int a[N];
signed main(){
    cin>>T;
    while(T--){
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+n+1);
        bool flag=0;
        for(int i=1;i<n;i++){
            if(a[i]-a[i+1]<1){
                flag=1;
                break;
            }
        }
        if(flag) cout<<-1<<endl;
        else {
            for(int i=1;i<=n;i++) cout<<a[i]<<" ";
            cout<<endl;
        }
    }
    return 0;
}

先写两道,后面的题会陆续更新,记得点赞哟!

(Luogu有号)