QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#561652#9237. Messagenhuang685100 ✓235ms4088kbC++232.4kb2024-09-13 05:06:542024-09-13 05:06:54

Judging History

你现在查看的是最新测评结果

  • [2024-09-13 05:06:54]
  • 评测
  • 测评结果:100
  • 用时:235ms
  • 内存:4088kb
  • [2024-09-13 05:06:54]
  • 提交

answer

/**
 * @author n685
 * @brief
 * @date 2024-09-12 16:26:47
 *
 *
 */
#include "bits/stdc++.h"
#include "message.h"

#ifdef LOCAL
#include "dd/debug.h"
#else
#define dbg(...) 42
#define dbg_proj(...) 420
#define dbg_rproj(...) 420420
void nline() {}
void bar() {}
void start_clock() {}
void end_clock() {}
#endif

namespace rs = std::ranges;
namespace rv = std::views;

constexpr int N = 1025, Q = 66, LEN = 31, GOOD = 16;

void send_message(std::vector<bool> M, std::vector<bool> C) {
  dbg(1);
  M.push_back(true);
  M.resize(N);
  const std::vector<bool> m{std::move(M)}, c{std::move(C)};
  std::array<int, LEN> mx{};
  mx.fill(-1);
  for (int i = 0; i < LEN; ++i) {
    if (c[i]) {
      continue;
    }
    for (int j = 1;; ++j) {
      if (!c[(i + j) % LEN]) {
        mx[i] = j - 1;
        break;
      }
    }
  }
  dbg(mx);
  int ind = 0;
  std::vector<bool> arr(LEN);
  for (int i = 0; i < Q; ++i) {
    for (int j = 0; j < LEN; ++j) {
      if (c[j]) {
        continue;
      }
      if (i < mx[j]) {
        arr[j] = true;
      } else if (i == mx[j]) {
        arr[j] = false;
      } else if (ind < N) {
        arr[j] = m[ind++];
      }
    }
    send_packet(arr);
  }
}

std::vector<bool> receive_message(std::vector<std::vector<bool>> R) {
  dbg(2);
  const std::vector<std::vector<bool>> r{std::move(R)};

  std::array<int, LEN> nxt{};
  nxt.fill(-1);
  for (int i = 0; i < Q; ++i) {
    for (int j = 0; j < LEN; ++j) {
      if (nxt[j] == -1 && !r[i][j]) {
        nxt[j] = (j + (i + 1)) % LEN;
      }
    }
  }
  dbg(nxt);
  std::vector<bool> c(LEN, true);
  for (int i = 0; i < LEN; ++i) {
    int node = i;
    bool g = true;
    for (int j = 0; j < GOOD - 1; ++j) {
      node = nxt[node];
      if (node == -1 || node == i) {
        g = false;
        break;
      }
    }
    if (g && nxt[node] == i) {
      node = i;
      for (int j = 0; j < GOOD; ++j) {
        c[node] = false;
        node = nxt[node];
      }
      break;
    }
  }
  std::vector<bool> m;
  std::vector<bool> st(LEN);
  for (int i = 0; i < Q; ++i) {
    for (int j = 0; j < LEN; ++j) {
      if (c[j]) {
        continue;
      }
      if (st[j]) {
        m.push_back(r[i][j]);
      } else if (!r[i][j]) {
        st[j] = true;
      }
    }
  }
  while (!m.empty() && !m.back()) {
    m.pop_back();
  }
  m.pop_back();
  return m;
}

详细

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 179ms
memory: 3732kb

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: 164ms
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: 157ms
memory: 3784kb

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: 136ms
memory: 3968kb

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: 92ms
memory: 3820kb

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: 106ms
memory: 4040kb

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: 104ms
memory: 3736kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Subtask #2:

score: 90
Accepted

Test #8:

score: 90
Accepted
time: 188ms
memory: 4004kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #9:

score: 90
Accepted
time: 135ms
memory: 3688kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #10:

score: 90
Accepted
time: 152ms
memory: 3740kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #11:

score: 90
Accepted
time: 201ms
memory: 3784kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #12:

score: 90
Accepted
time: 235ms
memory: 4084kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #13:

score: 90
Accepted
time: 92ms
memory: 3992kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #14:

score: 90
Accepted
time: 78ms
memory: 4084kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #15:

score: 90
Accepted
time: 122ms
memory: 3756kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #16:

score: 90
Accepted
time: 127ms
memory: 3792kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #17:

score: 90
Accepted
time: 207ms
memory: 3744kb

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: 186ms
memory: 3800kb

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: 146ms
memory: 3752kb

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: 145ms
memory: 3728kb

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: 170ms
memory: 3808kb

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: 215ms
memory: 4004kb

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: 148ms
memory: 3808kb

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: 149ms
memory: 3800kb

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: 154ms
memory: 4088kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #26:

score: 90
Accepted
time: 171ms
memory: 4008kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Test #27:

score: 90
Accepted
time: 203ms
memory: 3800kb

Manager to Aisha


Aisha to Manager


Manager to Basma


Basma to Manager


Manager to Checker

1

result:

points 1.0

Extra Test:

score: 0
Extra Test Passed