牛客小白月赛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有号)