QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#668388 | #9302. Caesar Cipher | 4eyebird# | TL | 440ms | 6132kb | C++17 | 2.0kb | 2024-10-23 14:11:09 | 2024-10-23 14:11:09 |
Judging History
answer
#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;
typedef long long ll;
inline char gtc()
{
static constexpr size_t bufferlen = 5e6;
static char BB[bufferlen], *S = BB, *T = BB;
return S == T && (T = (S = BB) + fread(BB, 1, bufferlen, stdin), S == T) ? EOF : *S++;
}
inline int read()
{
int x = 0, f = 1;
char ch = gtc();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = gtc();
}
while (ch >= '0' && ch <= '9')
x = (x << 3) + (x << 1) + (ch ^ 48), ch = gtc();
return x * f;
}
constexpr int NB = 500000;
typedef bitset<NB> bt;
bt a[16];
bt x1, x2;
signed main()
{
int n = read(), m = read();
x1.reset();
x1.set(0);
for (int i = 0; i < n; i++)
{
int x = read(), j = 0;
while (x > 0)
{
if (x & 1)
a[j] |= x1;
j++;
x >>= 1;
}
x1 <<= 1;
}
while (m--)
{
int o = read();
if (o == 1)
{
int l = read(), r = read();
x1.set();
x1 >>= (NB - (r - l + 1));
x1 <<= (l - 1);
int i = 0;
while (x1.any() && i < 16)
{
x2 = x1;
x1 &= a[i];
a[i] ^= x2;
i++;
}
}
else if (o == 2)
{
int l1 = read(), l2 = read(), len = read();
bool ok = true;
for (int i = 0; i < 16; i++)
{
if (((a[i] >> (l1 - 1)) << (NB - len)) != ((a[i] >> (l2 - 1)) << (NB - len)))
{
ok = false;
break;
}
}
if (ok)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 2ms
memory: 4276kb
input:
5 6 1 2 1 2 1 2 1 2 2 2 1 3 3 1 1 1 1 3 5 2 1 2 4 2 1 2 2
output:
no yes no yes
result:
ok 4 token(s): yes count is 2, no count is 2
Test #2:
score: 0
Accepted
time: 0ms
memory: 5124kb
input:
3 3 0 65535 65535 2 1 2 2 1 2 3 2 1 2 2
output:
no yes
result:
ok 2 token(s): yes count is 1, no count is 1
Test #3:
score: 0
Accepted
time: 440ms
memory: 6132kb
input:
1000 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
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 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 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes ...
result:
ok 1000 token(s): yes count is 1000, no count is 0
Test #4:
score: -100
Time Limit Exceeded
input:
100000 100000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
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 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 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes ...