QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#845998 | #9237. Message | sunlight | Compile Error | / | / | C++14 | 1.4kb | 2025-01-06 21:00:19 | 2025-01-06 21:00:21 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
void send_message(std::vector<bool> M, std::vector<bool> C)
{
mt19937 rnd(353442899);
vector<bool>vec[66];
for(int i=1;i<=64;i++)
{
vec[i].resize(31);
}
__int128 cnt=0;
for(int j=0;j<31;j++)
{
if(C[j]==1)
cnt+=rnd()/j;
for(int i=1;i<=64;i++)
{
if(C[j]==1)
vec[i][j]=0;
else
{
long long us=rnd();
vec[i][j]=(cnt*37/us+us)%2;
}
}
}
for(int i=1;i<=64;i++)
{
std::vector<bool> send_packet(vec[i]);
}
cnt=0;
for(int i=1;i<=2;i++)
{
for(int j=0;j<31;j++)
{
if(C[j]==1)
vec[i][j]=0;
else
{
if(cnt<=30)
vec[i][j]=M[cnt];
cnt++;
}
}
std::vector<bool> send_packet(vec[i]);
}
return;
}
std::vector<bool> receive_message(std::vector<std::vector<bool>> R)
{
mt19937 rnd(353442899);
vector<long long>vec;
for(int i=0;i<=10000;i++)
{
vec.push_back(rnd());
}
bool vis[31];
memset(vis,0,sizeof(vis));
__int128 cnt=0;
int nw=0;
for(int i=0;i<31;i++)
{
bool f=0;
for(int j=0;j<64;j++)
{
if((cnt*37/vec[nw+j]+vec[nw+j])%2!=R[j][i])
{
f=1;
break;
}
}
if(f==1)
{
cnt+=vec[nw++]/i;
}
else
{
vis[i]=1;
}
nw+=64;
}
vector<bool>ans(31);
cnt=0;
for(int i=64;i<=65;i++)
{
for(int j=0;j<31;j++)
{
if(vis[j]==0)
continue;
if(cnt<=30)
{
ans[j]=R[i][j];
}
cnt++;
}
}
return ans;
}
详细
stub.cpp: In function ‘int {anonymous}::sz(const C&)’: stub.cpp:27:52: error: ‘size’ is not a member of ‘std’; did you mean ‘size_t’? 27 | template<class C> int sz(const C& c) { return std::size(c); } | ^~~~ | size_t stub.cpp: In function ‘void {anonymous}::write_int_array(const int*, int)’: stub.cpp:70:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’ 70 | if (int ret = fwrite(arr, sizeof(int), len, fout); len != ret) { | ^~~ stub.cpp: In function ‘void {anonymous}::read_int_array(int*, int)’: stub.cpp:105:13: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’ 105 | if (int ret = fread(arr, sizeof(int), len, fin); len != ret) { | ^~~