QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#555620#9237. Messageljga_Compile Error//C++141.5kb2024-09-10 06:49:472024-09-10 06:49:48

Judging History

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

  • [2024-09-10 06:49:48]
  • 评测
  • [2024-09-10 06:49:47]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

void send_packet(vector<bool> mes){
	for(int i=0;i<31;i++)
		cout<<mes[i]<<' ';
	cout<<endl;
}

vector<bitset<14> > z={6631,3571,5866,7956,7658};
void send_message(vector<bool> M,vector<bool> C){
	vector<int> con,unc;
	for(int i=0;i<31;i++){
		if(C[i])
			con.push_back(i);
		else
			unc.push_back(i);
	}
	vector<pair<int,int> > b;
	
	for(int i=0;i<30;i+=6){
		int x=0;
		for(int j=i;j<i+6;j++)
			x=(x<<1)|C[j];
		cout<<b.size()<<' '<<x<<endl;
		b.push_back({x,b.size()});
	}
	sort(b.begin(),b.end(),greater<pair<int,int> >());
	bitset<4> cl(M.size()%16);
	bitset<6> cc((M.size()+15)/16);
	cout<<cl<<' '<<cc<<endl;
	
	int c=0;
	for(int i=0;i<1024;c++){
		vector<bool> mes;
		while(!b.empty()&&b.back().first==c){
			mes.resize(31);
			int id=b.back().second;
			int p=0;
			for(int j:unc){
				if(p<14)
					mes[j]=z[id][p++];
				else{
					if(p==14&&id<4)
						mes[j]=cl[id];
					else if(p==14&&id==4)
						mes[j]=cc[0];
					else
						mes[j]=cc[id+1];
					p++;
				}
//				cout<<p<<' '<<id<<' '<<mes[j]<<endl;
			}
			send_packet(mes);
			mes.clear();
			b.pop_back();
		}
		mes.resize(31);
		for(int j:unc){
			mes[j]=(i<M.size()?M[i]:0);
			i++;
		}
		send_packet(mes);
	}
}
void dfs(int k,int c){
	
}
void receive_message(vector<vector<bool> > R){
	
}

int main(){
	send_message({0, 1, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1});
	return 0;
}

详细

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) {
      |             ^~~