QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#594136 | #9237. Message | December456 | 66.718 | 240ms | 4132kb | C++17 | 4.1kb | 2024-09-27 19:36:48 | 2024-09-27 19:36:49 |
Judging History
answer
#include "message.h"
void send_message(std::vector<bool> M, std::vector<bool> C) {
std::vector<int> A;
std::vector<bool> P(31);
int cnt1 = 0, cnt2 = 0;
for (int i = 0; i < 30; cnt1 ++) {
if (!A.size()) {
if (!C[i]) {
A.push_back(i);
}
i ++;
continue;
}
for (int j = 0; i < 30 && j < A.size(); i ++, j ++) {
if (!(P[A[j]] = C[i])) {
A.push_back(i);
}
}
}
A.clear();
for (int i = 29; i >= 0; cnt2 ++) {
if (!A.size()) {
if (!C[i]) {
A.push_back(i);
}
i --;
continue;
}
for (int j = 0; i >= 0 && j < A.size(); i --, j ++) {
if (!(P[A[j]] = C[i])) {
A.push_back(i);
}
}
}
A.clear();
if (cnt1 < cnt2) {
send_packet(std::vector<bool>(31, 0));
for (int i = 0; i < 30;) {
if (!A.size()) {
if (!C[i]) {
A.push_back(i);
}
send_packet(std::vector<bool>(31, C[i ++]));
continue;
}
for (int j = 0; i < 30 && j < A.size(); i ++, j ++) {
if (!(P[A[j]] = C[i])) {
A.push_back(i);
}
}
send_packet(P);
}
} else {
send_packet(std::vector<bool>(31, 1));
for (int i = 29; i >= 0;) {
if (!A.size()) {
if (!C[i]) {
A.push_back(i);
}
send_packet(std::vector<bool>(31, C[i --]));
continue;
}
for (int j = 0; i >= 0 && j < A.size(); i --, j ++) {
if (!(P[A[j]] = C[i])) {
A.push_back(i);
}
}
send_packet(P);
}
}
if (!C[30]) {
A.push_back(30);
}
for (int i = 0; i < 4; i ++) {
P[A[i]] = M.size() >> i & 1;
}
send_packet(P);
for (int i = 0; i < M.size(); i += 16) {
for (int j = i; j < i + 16 && j < M.size(); j ++) {
P[A[j - i]] = M[j];
}
send_packet(P);
}
}
std::vector<bool> receive_message(std::vector<std::vector<bool>> R) {
std::vector<bool> M, C;
std::vector<int> A;
int cur = 1, cnt = 0;
for (int x : R[0]) {
cnt += x;
}
if (cnt << 1 < 31) {
for (int i = 0; i < 30; cur ++) {
if (!A.size()) {
cnt = 0;
for (int x : R[cur]) {
cnt += x;
}
if (cnt << 1 < 31) {
A.push_back(i);
}
i ++;
continue;
}
for (int j = 0; i < 30 && j < A.size(); i ++, j ++) {
if (!R[cur][A[j]]) {
A.push_back(i);
}
}
}
} else {
for (int i = 29; i >= 0; cur ++) {
if (!A.size()) {
cnt = 0;
for (int x : R[cur]) {
cnt += x;
}
if (cnt << 1 < 31) {
A.push_back(i);
}
i --;
continue;
}
for (int j = 0; i >= 0 && j < A.size(); i --, j ++) {
if (!R[cur][A[j]]) {
A.push_back(i);
}
}
}
}
if (A.size() < 16) {
A.push_back(30);
}
int res = 0;
for (int i = 0; i < 4; i ++) {
res |= R[cur][A[i]] << i;
}
if (!res) {
res = 16;
}
for (int i = cur + 1; i + 1 < R.size(); i ++) {
for (int j = 0; j < 16; j ++) {
M.push_back(R[i][A[j]]);
}
}
for (int i = 0; i < res; i ++) {
M.push_back(R.back()[A[i]]);
}
return M;
}
详细
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 32ms
memory: 4132kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #2:
score: 10
Accepted
time: 37ms
memory: 4076kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #3:
score: 10
Accepted
time: 59ms
memory: 4044kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #4:
score: 10
Accepted
time: 51ms
memory: 3784kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #5:
score: 10
Accepted
time: 17ms
memory: 3872kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #6:
score: 10
Accepted
time: 11ms
memory: 4036kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #7:
score: 10
Accepted
time: 19ms
memory: 3808kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Subtask #2:
score: 56.718
Acceptable Answer
Test #8:
score: 59.706
Acceptable Answer
time: 240ms
memory: 4080kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6634
result:
points 0.6634
Test #9:
score: 69.642
Acceptable Answer
time: 156ms
memory: 3868kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.7738
result:
points 0.7738
Test #10:
score: 56.718
Acceptable Answer
time: 162ms
memory: 3888kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6302
result:
points 0.6302
Test #11:
score: 59.706
Acceptable Answer
time: 201ms
memory: 3804kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6634
result:
points 0.6634
Test #12:
score: 62.847
Acceptable Answer
time: 196ms
memory: 4068kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983
Test #13:
score: 62.847
Acceptable Answer
time: 149ms
memory: 4064kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983
Test #14:
score: 62.847
Acceptable Answer
time: 149ms
memory: 4064kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983
Test #15:
score: 62.847
Acceptable Answer
time: 125ms
memory: 3820kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983
Test #16:
score: 62.847
Acceptable Answer
time: 133ms
memory: 4052kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983
Test #17:
score: 90
Accepted
time: 32ms
memory: 3772kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #18:
score: 90
Accepted
time: 64ms
memory: 3796kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #19:
score: 90
Accepted
time: 78ms
memory: 4064kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #20:
score: 90
Accepted
time: 96ms
memory: 3840kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #21:
score: 90
Accepted
time: 106ms
memory: 4068kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #22:
score: 90
Accepted
time: 83ms
memory: 3844kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #23:
score: 90
Accepted
time: 155ms
memory: 3764kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #24:
score: 90
Accepted
time: 124ms
memory: 4064kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #25:
score: 90
Accepted
time: 124ms
memory: 4132kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
1
result:
points 1.0
Test #26:
score: 66.159
Acceptable Answer
time: 167ms
memory: 4084kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.7351
result:
points 0.7351
Test #27:
score: 62.847
Acceptable Answer
time: 161ms
memory: 4084kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.6983
result:
points 0.6983