「CF#663」A Suborrays(div.2)

题意

Link

对于一个长度为n的排列,任意的区间需要满足这个区间内所有数字的或运算结果不小于这个区间的长度

题解

或运算的结果是不会比参与运算的两个数值小的………..

这是个排列

取任意的一个长度为L的区间,这个区间必定有一个数字的值是大于等于L的

(而且顺序和算出来结果没关系吧

所以任意顺序输出这个排列都能过………

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
using namespace std;

#define RE register

inline void fread(int &x){
x=0;
int f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
x*=f;
}

int main(){
int n,qwq;
fread(n);
for(RE int i=1;i<=n;i++){
fread(qwq);
for(RE int k=1;k<=qwq;k++){
printf("%d ",k);
}
printf("\n");
}
return 0;
}
0%