QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#668372 | #9302. Caesar Cipher | 4eyebird# | TL | 535ms | 5008kb | C++17 | 1.9kb | 2024-10-23 14:02:16 | 2024-10-23 14:02:17 |
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;
typedef vector<int> vint;
#define Buff ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
//#define int long long
constexpr int NB = 500000;
typedef bitset<NB> bt;
bt a[16];
bt x1, x2;
void solve()
{
int n, m;
cin >> n >> m;
x1.reset();
x1.set(0);
for (int i = 0; i < n; i++)
{
int x, j = 0;
cin >> x;
while (x > 0)
{
if (x & 1)
a[j] |= x1;
j++;
x >>= 1;
}
x1 <<= 1;
}
while (m--)
{
int o;
cin >> o;
if (o == 1)
{
int l, r;
cin >> l >> r;
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, l2, len;
cin >> l1 >> l2 >> len;
bool ok = true;
for (int i = 0; i < 16; i++)
{
x1 = ((a[i] >> (l1 - 1)) << (NB - len));
x1 ^= ((a[i] >> (l2 - 1)) << (NB - len));
if (x1.any())
{
ok = false;
break;
}
}
if (ok)
cout << "yes\n";
else
cout << "no\n";
}
}
}
signed main()
{
Buff;
int _T_ = 1;
// cin >> _T_;
while (_T_--)
solve();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 4096kb
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: 2ms
memory: 5008kb
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: 535ms
memory: 4044kb
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 ...