专栏文章
题解 CF2164B Even Modulo Pair
CF2164B题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @min13gvf
- 此快照首次捕获于
- 2025/12/01 18:50 3 个月前
- 此快照最后确认于
- 2025/12/01 18:50 3 个月前
题解 CF2164B Even Modulo Pair
给定长度为 的严格单调递增序列 ,求是否存在一对 ,使得:
- ;
- ;
- 。
如果存在,给出任意一对。
数据范围:多测,,。
做法
需要注意力。真注意不到。
若无解,
- 首先最多只能有一个偶数,因为偶数模偶数显然一定为偶数。
- 对于奇数,设数列里有一奇数 ,则若要另外的奇数 模 不为偶数,则其必然要在 中。所以最多只能构造出 个两两之间不符合要求的奇数。
发现 只有 ,去重后取前 个(若不足则取全部)暴力枚举即可。
代码
CPP#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<fstream>
#include<algorithm>
#include<map>
#include<unordered_map>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#define ll long long
#define lf double
#define ld long double
using namespace std;
ll T,n,a[200010];
int main(){
ios::sync_with_stdio(0);
cin>>T;
while(T--){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
n=min(n,40ll);
bool flg=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[j]%a[i]%2==0){
cout<<a[i]<<' '<<a[j]<<endl;
flg=1;
break;
}
}
if(flg){
break;
}
}
if(!flg){
cout<<-1<<endl;
}
}
return 0;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...