QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#561542 | #9237. Message | bulijiojiodibuliduo# | 85.74 | 291ms | 4172kb | C++17 | 3.0kb | 2024-09-12 23:37:01 | 2024-09-12 23:37:02 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
typedef vector<int> VI;
typedef basic_string<int> BI;
typedef long long ll;
typedef pair<int,int> PII;
typedef double db;
const ll mod=1000000007;
//int rnd(int x) { return mrand() % x;}
ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
// head
//#define LOCAL
#ifdef LOCAL
void send_message(std::vector<bool> M, std::vector<bool> C);
std::vector<bool> send_packet(std::vector<bool> A);
std::vector<bool> receive_message(std::vector<std::vector<bool>> R);
#else
#include "message.h"
#endif
int ext=5;
int blen=1025;
int pad[10100],xbit[10100];
void send_message(std::vector<bool> M, std::vector<bool> C) {
mt19937 rng(12345);
rep(i,0,blen) pad[i]=rng()%2;
rep(i,0,3000) xbit[i]=rng()%2;
int m=blen-SZ(M)-1;
M.pb(pad[m]^1);
per(i,0,m) M.pb(pad[i]);
assert(SZ(M)==1025);
VI gd;
rep(i,0,31) if (C[i]==0) gd.pb(i);
int cc=0;
rep(i,0,64) {
vector<bool> bs(31,false);
rep(j,0,16) bs[gd[j]]=M[i*16+j];
rep(j,0,31) bs[j]=bs[j]^xbit[cc++];
send_packet(bs);
}
rep(i,0,ext) {
vector<bool> bs(31,false);
rep(j,1,16) bs[gd[j]]=((gd[j]-gd[j-1])>>i)&1;
if (i==ext-1) bs[gd[0]]=M[blen-1]; else {
bs[gd[0]]=((gd[0]+31-gd[15])>>i)&1;
}
rep(j,0,31) bs[j]=bs[j]^xbit[cc++];
send_packet(bs);
}
}
int cb[1111],way;
std::vector<bool> receive_message(std::vector<std::vector<bool>> RR) {
vector<VI> R(SZ(RR),VI(31,0));
rep(i,0,SZ(R)) rep(j,0,31) R[i][j]=RR[i][j];
mt19937 rng(12345);
rep(i,0,blen) pad[i]=rng()%2;
rep(i,0,3000) xbit[i]=rng()%2;
int cc=0;
VI gd;
way=0;
rep(i,0,SZ(R)) rep(j,0,31) R[i][j]=R[i][j]^xbit[cc++];
function<void(int,int)> dfs=[&](int bit,int dep) {
if (bit<dep) return;
if (dep==0) {
cb[dep]=bit;
int w=0;
rep(i,0,ext-1) w+=(R[64+i][bit]<<i);
if ((cb[0]+31-cb[15])%(1<<(ext-1))==w) {
//rep(i,0,16) printf("%d ",cb[i]); puts("");
gd=VI(cb,cb+16);
way+=1;
}
} else {
cb[dep]=bit;
int w=0;
rep(i,0,ext) w+=(R[64+i][bit]<<i);
//int w=R[64][bit]+(R[65][bit]<<1)+(R[66][bit]<<2)+(R[67][bit]<<3);
per(j,0,bit) if ((bit-j)%(1<<ext)==w) dfs(j,dep-1);
//if (w!=0) dfs(bit-w,dep-1);
//dfs(bit-w-16,dep-1);
}
};
per(i,0,31) dfs(i,15);
assert(way==1);
vector<bool> seq;
rep(i,0,64) {
vector<bool> bs(31,false);
rep(j,0,16) seq.pb(R[i][gd[j]]);
}
seq.pb(R[64+ext-1][gd[0]]);
//rep(i,0,SZ(seq)) printf("%d",(int)seq[i]); puts("seq");
int c=0;
while (seq.back()==pad[c]) seq.pop_back(),c++;
seq.pop_back();
return seq;
}
詳細信息
Subtask #1:
score: 8.574
Acceptable Answer
Test #1:
score: 8.574
Acceptable Answer
time: 253ms
memory: 3864kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #2:
score: 8.574
Acceptable Answer
time: 247ms
memory: 3820kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #3:
score: 8.574
Acceptable Answer
time: 283ms
memory: 3812kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #4:
score: 8.574
Acceptable Answer
time: 254ms
memory: 4156kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #5:
score: 8.574
Acceptable Answer
time: 127ms
memory: 4172kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #6:
score: 8.574
Acceptable Answer
time: 80ms
memory: 4156kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #7:
score: 8.574
Acceptable Answer
time: 153ms
memory: 3848kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Subtask #2:
score: 77.166
Acceptable Answer
Test #8:
score: 77.166
Acceptable Answer
time: 195ms
memory: 4100kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #9:
score: 77.166
Acceptable Answer
time: 227ms
memory: 4156kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #10:
score: 77.166
Acceptable Answer
time: 257ms
memory: 3900kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #11:
score: 77.166
Acceptable Answer
time: 280ms
memory: 3820kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #12:
score: 77.166
Acceptable Answer
time: 220ms
memory: 3880kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #13:
score: 77.166
Acceptable Answer
time: 179ms
memory: 4152kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #14:
score: 77.166
Acceptable Answer
time: 130ms
memory: 3868kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #15:
score: 77.166
Acceptable Answer
time: 153ms
memory: 4152kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #16:
score: 77.166
Acceptable Answer
time: 155ms
memory: 4156kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #17:
score: 77.166
Acceptable Answer
time: 215ms
memory: 4044kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #18:
score: 77.166
Acceptable Answer
time: 266ms
memory: 3812kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #19:
score: 77.166
Acceptable Answer
time: 265ms
memory: 4044kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #20:
score: 77.166
Acceptable Answer
time: 291ms
memory: 3844kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #21:
score: 77.166
Acceptable Answer
time: 247ms
memory: 3780kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #22:
score: 77.166
Acceptable Answer
time: 214ms
memory: 3868kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #23:
score: 77.166
Acceptable Answer
time: 216ms
memory: 3868kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #24:
score: 77.166
Acceptable Answer
time: 253ms
memory: 4044kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #25:
score: 77.166
Acceptable Answer
time: 218ms
memory: 3864kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #26:
score: 77.166
Acceptable Answer
time: 246ms
memory: 3904kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574
Test #27:
score: 77.166
Acceptable Answer
time: 201ms
memory: 4068kb
Manager to Aisha
Aisha to Manager
Manager to Basma
Basma to Manager
Manager to Checker
0.8574
result:
points 0.8574