Codeforces Round #655 (Div. 2) A. Omkar and Completion

A. Omkar and Completion

题目链接-A. Omkar and Completion
Codeforces Round #655 (Div. 2) A. Omkar and Completion_第1张图片
Codeforces Round #655 (Div. 2) A. Omkar and Completion_第2张图片
题目大意
所有元素都是正的并且不超过1000,并且对于所有索引 x , y , z ( 1 ≤ x , y , z ≤ n ) , a x + a y ≠ a z x,y,z(1≤x,y,z≤n),ax+ay≠az xyz(1xyzn)ax+ay=az(不一定是不同的),则长度为n的数组a称为完全数组,请你构造一个长度为 n n n的完全数组

解题思路

  • 首先如果数组中的元素全是奇数,奇数+奇数=偶数,那么必定满足 a x + a y ≠ a z ax+ay≠az ax+ay=az
  • 其次所有元素需要正的并且不超过1000,构造一个长度为 n n n,数组内元素全为 1 1 1的数组,即满足条件
  • 具体操作见代码

附上代码

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include
#define int long long
#define lowbit(x) (x &(-x))
#define endl '\n'
using namespace std;
const int INF=0x3f3f3f3f;
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
const double PI=acos(-1.0);
const double e=exp(1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=2e5+10;
typedef long long ll;
typedef pair<int,int> PII;
typedef unsigned long long ull;
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);

	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
			cout<<1<<" ";
		cout<<endl;
	}
	return 0;
}

你可能感兴趣的:(codeforces,贪心)