QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#88996 | #5466. Permutation Compression | shiyihangxs | TL | 39ms | 3592kb | C++14 | 2.6kb | 2023-03-18 10:02:09 | 2023-03-18 10:02:12 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define l(x) (x<<1)
#define r(x) (x<<1|1)
#define mpr make_pair
//mt19937_64 ra(time(0) ^ (*new char));
//ios::sync_with_stdio(false);
//cin.tie(0); cout.tie(0);
const int SIZE = 200005;
const int mod = 998244353;
int n, m, K, T;
int a[SIZE], b[SIZE];
int l[SIZE];
bool v[SIZE], used[SIZE];
int st[SIZE], top;
int nx[SIZE], pr[SIZE];
int c[SIZE];
inline int rd(){
int x = 0, 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();
}
return x*f;
}
bool cmp(int x, int y){
return a[x] > a[y];
}
int lowbit(int x){
return x & (-x);
}
void add(int x, int val){
for(int i = x; i <= n; i+=lowbit(i)) c[i] += val;
}
int ask(int x){
int jl = 0;
for(int i = x; i; i-=lowbit(i)) jl += c[i];
return jl;
}
int main(){
T = rd();
while(T--){
n = rd(), m = rd(), K = rd();
for(int i = 1; i <= n; i++) c[i] = 0;
for(int i = 1; i <= n; i++) a[i] = rd(), v[i] = 1, add(i, 1);
for(int i = 1; i <= m; i++) b[i] = rd(), v[b[i]] = 0;
for(int i = 1; i <= K; i++) l[i] = rd(), used[i] = 0;
sort(l+1, l+K+1); top = 0;
for(int i = 1; i <= n; i++){
if(v[a[i]]) st[++top] = i;
v[a[i]] = 0;
}
v[0] = v[n+1] = 0;
sort(st+1, st+top+1, cmp);
bool ans = 1;
for(int i = 1; i <= top; i++){
int prr = st[i]-1, nxx = st[i]+1;
while((v[prr] || a[prr] < a[st[i]]) && prr >= 1) prr--;
while((v[nxx] || a[nxx] < a[st[i]]) && nxx <= n) nxx++;
prr++, nxx--;
// cout << prr << " " << nxx << endl;
int x = ask(nxx) - (prr==1?0:ask(prr-1)), jjl = 0;
// cout << x << endl;
for(int j = K; j >= 1; j--){
if(l[j] > x || used[j]) continue;
jjl = j; break;
}
if(jjl == 0){
ans = 0;
break;
}
used[jjl] = 1; v[st[i]] = 1; add(st[i], -1);
}
if(ans == 0){
printf("NO\n");
continue;
}
int now = 1;
for(int i = 1; i <= n; i++){
if(!v[i]){
if(a[i] == b[now]) now++;
else{
ans = 0;
break;
}
}
}
if(now != m+1) ans = 0;
if(ans) printf("YES\n");
else printf("NO\n");
}
return 0;
}
/*
6
10 5 6
5 6 9 10 7 1 3 2 4 8
5 6 9 1 2
8 9 9 10 10 10
10 6 5
5 6 7 2 4 8 10 9 1 3
5 2 8 9 1 3
9 7 7 10 10
5 3 4
3 5 4 1 2
4 1 2
3 5 4 5
6 3 5
6 1 2 5 4 3
1 4 3
4 5 5 5 4
10 8 5
7 3 1 5 9 8 2 6 10 4
3 1 5 9 8 2 6 4
6 1 4 8 10
10 6 4
7 1 4 5 8 9 3 10 2 6
1 4 8 3 2 6
2 1 2 1
NO
NO
NO
NO
YES
YES
*/
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3328kb
input:
3 5 2 3 5 1 3 2 4 5 2 1 2 4 5 5 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 3 2 2 3 1 2 3 2 2 3
output:
YES YES NO
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 2ms
memory: 3480kb
input:
100 2 1 2 2 1 2 1 1 2 1 2 1 2 1 2 2 2 1 1 1 2 1 2 6 1 5 3 4 2 5 6 1 3 5 2 1 1 1 6 1 6 2 1 3 6 4 5 1 4 1 2 2 1 4 3 3 2 2 1 3 2 1 3 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 1 2 1 2 4 4 3 2 1 3 4 2 1 3 4 4 3 1 1 1 1 1 1 1 6 5 1 6 2 5 4 3 1 6 2 4 3 1 4 1 1 1 1 1 1 6 5 3 3 6 1 4 5 2 3 6 1 4 2 3 3 4 4 3 4 3 4 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO NO NO YES YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES NO YES YES YES YES YE...
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 2ms
memory: 3440kb
input:
99 6 1 6 1 5 3 4 2 6 1 1 2 1 1 1 6 1 1 1 1 1 1 4 1 3 3 4 1 2 1 1 1 2 2 2 1 2 1 2 1 2 1 1 1 1 1 1 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 3 2 2 3 2 1 2 1 1 2 3 3 1 2 3 1 2 3 1 1 6 1 5 3 4 2 5 6 1 3 4 2 1 1 1 6 4 4 1 6 5 2 3 4 1 2 3 4 5 4 4 6 2 1 1 1 2 1 1 6 5 1 2 1 4 5 6 3 2 1 4 6 3 2 6 3 6 5 6 2 1 3...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES NO NO YES YES YES NO YES YES YES NO YES YES NO YES NO YES NO YES YES YES YES YES YES NO YES NO NO YES YES YES YE...
result:
ok 99 lines
Test #4:
score: 0
Accepted
time: 2ms
memory: 3296kb
input:
98 6 1 6 6 1 4 5 2 3 3 1 2 2 1 1 6 4 3 2 2 3 4 1 2 1 3 3 4 1 1 1 1 1 1 6 1 6 6 4 3 1 2 5 1 3 1 3 1 1 5 1 1 1 1 1 1 6 4 4 3 4 1 2 5 6 3 4 1 2 2 4 3 1 6 5 1 4 5 3 6 1 2 4 5 3 1 2 6 1 1 1 1 1 1 5 1 4 1 3 2 4 5 1 5 3 4 4 6 3 4 1 4 2 3 6 5 1 2 5 5 4 6 5 4 1 3 2 1 4 3 2 1 1 1 1 1 1 1 1 1 6 3 5 5 1 3 6 4 2...
output:
YES NO YES YES YES YES YES YES NO NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO Y...
result:
ok 98 lines
Test #5:
score: 0
Accepted
time: 8ms
memory: 3536kb
input:
60000 1 1 1 1 1 1 1 1 1 1 1 1 3 2 1 2 3 1 2 1 2 3 3 1 1 2 3 1 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 2 3 2 1 3 2 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 3 1 3 2 3 1 1 2 3 2 3 3 2 2 3 1 2 3 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 2 3 3 2 1 2 1 1 2 1 3 2 2 1 3 2 3 2 3 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES...
result:
ok 60000 lines
Test #6:
score: 0
Accepted
time: 10ms
memory: 3592kb
input:
50000 1 1 1 1 1 1 4 3 4 1 2 3 4 1 2 3 2 3 4 4 1 1 1 1 1 1 3 2 1 3 1 2 1 2 3 4 1 4 2 1 4 3 2 4 4 3 4 3 1 2 1 2 3 2 3 3 4 1 3 4 2 1 3 1 3 2 4 4 4 2 4 1 2 3 4 1 2 3 3 4 3 1 2 2 1 3 3 1 3 4 2 2 4 3 1 2 3 1 2 1 1 1 1 1 1 1 4 3 1 1 2 3 4 1 2 4 4 4 1 4 4 3 2 1 4 2 1 1 2 3 3 1 2 1 3 2 1 3 1 4 3 2 1 3 2 4 1 ...
output:
YES YES YES YES NO NO YES YES NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES Y...
result:
ok 50000 lines
Test #7:
score: 0
Accepted
time: 10ms
memory: 3500kb
input:
40000 3 2 1 3 2 1 2 1 3 5 5 1 5 2 1 3 4 5 2 1 3 4 5 4 1 3 1 4 3 2 1 1 1 1 5 3 3 5 3 4 1 2 3 1 2 1 2 1 3 1 2 1 3 2 1 3 1 2 2 2 1 2 1 2 2 2 5 4 2 5 4 2 1 3 4 2 1 3 1 2 1 1 1 1 1 1 3 1 2 1 2 3 1 2 1 2 1 1 1 2 1 2 5 5 2 5 2 3 1 4 5 2 3 1 4 1 1 5 3 4 4 5 1 2 3 4 2 3 1 1 1 3 1 1 1 1 1 1 5 4 2 2 1 4 5 3 2 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES NO YES YES NO YES YES YES YES YES NO NO YES YES YES YES ...
result:
ok 40000 lines
Test #8:
score: 0
Accepted
time: 15ms
memory: 3360kb
input:
40000 6 3 5 3 6 2 5 1 4 3 2 1 1 2 3 6 1 4 3 1 1 3 4 2 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 6 2 6 4 1 3 2 6 5 2 5 6 5 5 3 5 5 6 6 2 3 6 2 5 1 4 3 6 2 5 1 4 6 4 2 2 1 1 2 1 2 2 2 2 1 1 2 1 2 1 3 3 3 2 1 3 2 1 3 2 3 1 6 4 5 5 1 3 4 6 2 5 1 3 2 5 5 4 3 4 6 2 4 4 3 5 6 2 1 4 3 2 2 1 1 3 1 2 2 3 1 1 2 2 3 3 1 ...
output:
YES YES YES YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YE...
result:
ok 40000 lines
Test #9:
score: 0
Accepted
time: 9ms
memory: 3424kb
input:
40000 7 5 2 6 4 2 1 3 5 7 6 4 2 1 3 3 1 2 2 2 2 1 2 1 1 1 4 1 4 3 4 2 1 1 3 4 2 1 3 2 2 1 3 2 1 2 1 3 5 2 4 4 3 2 5 1 2 1 2 2 2 5 7 1 7 2 7 5 6 1 4 3 3 3 3 1 1 3 1 6 7 7 2 3 7 2 5 1 6 4 3 7 2 5 1 6 4 5 6 6 2 6 2 6 3 4 1 5 2 1 6 3 4 5 3 5 3 1 3 3 1 2 1 2 3 3 7 5 3 1 7 5 4 6 3 2 5 4 6 3 2 6 1 1 6 3 5 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES NO YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES NO YES YES YES YES YES NO YES YES NO YES YES NO YES YES ...
result:
ok 40000 lines
Test #10:
score: 0
Accepted
time: 18ms
memory: 3424kb
input:
40000 4 2 4 4 1 3 2 4 2 3 4 4 3 6 3 5 6 2 4 5 1 3 2 1 3 1 1 2 6 1 8 5 6 1 7 2 8 6 5 3 4 1 7 5 2 3 3 1 2 8 7 8 6 6 1 3 4 6 1 5 2 3 4 6 1 5 2 6 8 7 2 6 8 5 7 1 3 2 4 6 5 7 1 3 2 4 8 7 1 1 1 1 1 1 4 3 3 2 4 3 1 2 4 3 1 2 4 4 3 3 1 3 4 2 1 3 2 4 4 3 2 2 1 1 2 1 2 2 7 5 3 5 2 3 7 1 6 4 2 3 1 6 4 7 5 6 7 ...
output:
NO YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO YES NO...
result:
ok 40000 lines
Test #11:
score: 0
Accepted
time: 13ms
memory: 3536kb
input:
40000 2 2 2 1 2 1 2 1 1 8 2 6 1 3 5 4 6 7 2 8 3 2 2 8 6 8 7 8 8 5 4 3 1 2 7 8 5 4 6 3 1 2 5 4 8 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 1 2 1 2 1 8 1 7 5 3 8 4 1 7 6 2 2 3 5 2 1 1 1 1 9 8 2 7 8 1 6 4 5 9 3 2 7 8 1 6 4 5 3 2 2 9 2 1 2 2 1 2 1 1 4 1 4 3 1 4 2 3 1 2 1 2 3 ...
output:
YES NO NO YES YES NO NO YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES NO YES YES YES NO YES NO NO NO YES YES NO YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES...
result:
ok 40000 lines
Test #12:
score: 0
Accepted
time: 15ms
memory: 3436kb
input:
40000 1 1 1 1 1 1 7 5 4 7 4 6 2 5 1 3 7 4 6 2 1 1 2 3 7 7 4 3 7 4 1 3 2 5 6 1 3 2 5 6 5 7 7 1 6 5 4 3 1 7 2 6 6 4 2 3 1 1 1 4 3 4 2 4 3 1 2 3 1 2 3 3 3 3 1 3 3 1 2 2 1 3 3 1 1 1 1 1 1 2 1 1 1 2 1 2 9 2 8 9 8 6 4 2 1 5 7 3 4 1 1 2 2 3 5 4 2 9 1 1 1 1 1 1 4 2 3 2 4 3 1 2 1 3 2 4 3 3 3 1 3 2 1 3 2 3 3 ...
output:
YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO NO YES YES NO YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES NO YES NO NO NO YES NO YES YES YES NO YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES NO YES NO YES YES YES NO YES YES YES YES YE...
result:
ok 40000 lines
Test #13:
score: 0
Accepted
time: 10ms
memory: 3384kb
input:
40000 6 3 5 4 3 2 5 1 6 2 3 1 2 1 1 6 6 2 1 1 1 2 1 1 6 5 4 1 3 5 6 2 4 1 3 6 2 4 2 2 6 6 8 2 7 5 8 4 7 1 3 2 6 6 2 1 3 1 1 1 1 7 1 1 1 1 1 1 11 6 5 2 4 11 6 9 3 8 1 7 5 10 2 4 3 6 8 5 3 1 4 1 1 8 3 8 6 4 8 5 1 3 7 2 4 1 2 2 2 1 3 3 4 8 4 2 1 2 2 1 1 2 2 5 5 1 1 5 3 4 2 1 5 3 4 2 5 9 2 9 8 7 5 6 2 4...
output:
NO YES YES NO YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES NO YES YES YES YES NO YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES NO YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES NO NO YES NO YES YES YES YES...
result:
ok 40000 lines
Test #14:
score: 0
Accepted
time: 19ms
memory: 3440kb
input:
40000 5 4 3 1 5 4 2 3 1 4 2 3 1 5 4 12 1 12 8 11 5 1 7 3 10 6 4 9 12 2 4 3 6 2 1 1 2 9 11 12 10 11 12 2 2 1 2 1 2 1 2 4 3 4 2 3 4 1 2 3 1 2 2 1 3 2 2 1 2 1 2 1 2 6 4 5 2 5 3 4 1 6 2 3 1 6 3 6 6 3 6 4 4 1 3 4 1 2 3 4 1 2 2 3 1 2 3 2 1 1 3 3 11 8 4 11 3 10 5 1 6 4 8 7 9 2 11 3 1 6 4 7 9 2 10 8 11 10 1...
output:
YES NO YES YES YES YES YES NO NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO YES YES NO YES YES YES YES NO YES YES NO YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YE...
result:
ok 40000 lines
Test #15:
score: 0
Accepted
time: 10ms
memory: 3532kb
input:
10000 10 5 6 5 6 9 10 7 1 3 2 4 8 5 6 9 1 2 8 9 9 10 10 10 10 6 5 5 6 7 2 4 8 10 9 1 3 5 2 8 9 1 3 9 7 7 10 10 5 3 4 3 5 4 1 2 4 1 2 3 5 4 5 6 3 5 6 1 2 5 4 3 1 4 3 4 5 5 5 4 10 8 5 7 3 1 5 9 8 2 6 10 4 3 1 5 9 8 2 6 4 6 1 4 8 10 10 6 4 7 1 4 5 8 9 3 10 2 6 1 4 8 3 2 6 2 1 2 1 10 3 10 9 6 4 7 2 5 8 ...
output:
NO NO NO NO YES YES NO YES YES YES NO NO YES YES YES NO NO YES YES YES YES NO YES YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES NO YES YES NO YES YES YES YES NO NO YES YES YES NO NO NO YES YES YES YES YES YES NO YES YES NO YES YES YES NO YES NO NO NO YES YES NO YES YES YES...
result:
ok 10000 lines
Test #16:
score: 0
Accepted
time: 17ms
memory: 3504kb
input:
10000 15 15 1 15 6 5 8 3 2 12 9 10 1 4 7 14 11 13 15 6 5 8 3 2 12 9 10 1 4 7 14 11 13 10 8 3 6 5 6 2 4 1 3 8 7 6 1 7 7 7 8 8 8 7 19 1 19 7 10 13 3 5 16 12 17 19 8 1 2 11 18 6 14 9 15 4 1 4 8 1 1 5 1 1 3 2 5 2 2 1 17 18 18 18 17 18 20 11 12 5 14 20 19 1 10 8 3 13 15 4 2 16 18 7 6 17 9 11 12 5 14 10 8...
output:
YES NO NO NO YES YES YES YES NO NO NO NO YES NO NO NO NO YES NO YES NO NO YES YES YES NO NO NO YES NO NO NO YES YES YES YES YES YES YES NO YES YES YES NO YES NO YES YES YES YES NO NO YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YES YES NO NO NO NO NO YES NO NO YES YES YES NO NO YES YES Y...
result:
ok 10000 lines
Test #17:
score: 0
Accepted
time: 39ms
memory: 3328kb
input:
10000 4 3 4 1 4 3 2 1 3 2 2 4 3 4 1 1 1 1 1 1 79 70 9 73 34 21 66 52 46 72 32 63 44 48 11 77 40 15 51 50 67 70 53 62 3 31 69 20 41 28 30 54 10 7 19 24 74 5 4 59 1 18 37 68 25 23 58 6 33 65 55 43 39 17 12 49 35 56 8 75 64 45 14 36 22 13 57 60 27 71 61 42 9 76 2 16 79 78 26 38 47 29 73 34 21 66 52 46 ...
output:
YES YES YES NO YES NO YES YES YES NO YES NO NO YES YES YES YES NO YES NO NO YES YES YES NO NO YES NO YES YES YES YES YES YES YES YES NO NO YES NO YES NO YES NO YES YES YES YES YES NO YES YES NO NO YES NO YES NO YES NO NO NO YES YES YES YES YES NO YES NO NO YES YES YES YES YES YES YES YES YES NO YES ...
result:
ok 10000 lines
Test #18:
score: -100
Time Limit Exceeded
input:
10 10201 2518 7686 8039 7511 4669 4613 6162 1290 9288 8391 4993 2070 8427 2499 3018 4916 4911 6060 8440 8901 8250 8997 3347 142 4313 3070 4228 9879 9075 2665 5642 762 2855 9465 1799 10036 6353 2529 8827 686 3883 6577 1430 5052 8277 6025 3863 8054 2652 618 8088 8364 3502 7890 391 9096 8691 919 6628 5...