QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#325776 | #3098. Ancient Machine | bachbeo2007 | 0 | 0ms | 0kb | C++20 | 2.1kb | 2024-02-11 22:27:38 | 2024-02-11 22:27:39 |
Anna
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
namespace{
int F[50];
}
int bit_to_fib(string s){
int total=0,pos=39;
while(pos>=0){
if(s[pos]=='1') total+=F[pos],pos-=2;
else pos--;
}
return total;
}
void Anna(int N, std::vector<char> S) {
F[0]=1;F[1]=2;
for(int i=0;i<=40;i++) F[i]=(F[i-1]+F[i-2]);
vector<int> X(N);
int f=-1,lst=-1;
string res;
for(int i=0;i<N;i++){
if(f==-1){
if(S[i]=='X') f=i;
res+='0';
}
else if(S[i]=='Z'){
if(S[i-1]=='Z') res.back()='0';
res+='1';
}
else res+='0';
}
while(N%40!=0) res+='0',N++;
if(f==-1) f=(1<<17)-1;
for(int i=0;i<17;i++) Send(f>>i&1);
for(int i=0;i<N;i+=40){
string cur;
for(int j=0;j<40;j++) cur+=S[i+j];
int total=bit_to_fib(cur);
for(int i=0;i<28;i++) Send(total>>i&1);
}
}
Bruno
#include "Bruno.h"
#include<bits/stdc++.h>
using namespace std;
namespace{
int F[50];
}
string fib_to_bit(int total){
string res;
int pos=39;
while(pos>=0){
if(total>=F[pos]) res+="10",total-=F[pos],pos-=2;
else res+='0',pos--;
}
if((int)res.length()>40) res.pop_back();
reverse(res.begin(),res.end());
return res;
}
void Bruno(int N, int L,vector<int> A) {
F[0]=1;F[1]=2;
for(int i=2;i<=40;i++) F[i]=F[i-1]+F[i-2];
int f=0;
for(int i=0;i<17;i++) f+=(A[i]-'0')<<i;
if(f>=N){
for(int i=0;i<N;i++) Remove(i);
return;
}
string s;
for(int i=0;i<(int)A.size()-17;i+=28){
int total=0;
for(int j=0;j<28;j++) total+=(A[17+i+j]-'0')<<j;
s+=fib_to_bit(total);
}
while((int)s.length()>N) s.pop_back();
for(int i=0;i<f;i++) Remove(i);
int lst=f;
for(int i=f+1;i<N;i++){
if(s[i]=='1'){
for(int j=i-1;j>lst;j--) Remove(j);
Remove(i);lst=i;
}
}
for(int i=lst+1;i<N;i++) Remove(i);
Remove(f);
}
详细
Subtask #1:
score: 0
Programme Bruno Runtime Error
Test #1:
score: 0
Programme Bruno Runtime Error
input:
18 Y X Y Z X Z X X Z Z Y Y Z Y Y Z X X
output:
45 100000000000000000000000000000000000000000000
input:
output:
result:
Subtask #2:
score: 0
Programme Bruno Runtime Error
Test #12:
score: 0
Programme Bruno Runtime Error
input:
100000 X Z X Z Z X Y Z Y X Y X Z Z Z Y X Z Y X Y Y X Y Y Y Z Y Z Z Y X X Y X X Y Y X X X Z Y Y Y Z Z Z Z Y X Y Y Z Z Z X Y Z X X X X Y X Y X X Z X Z Z Z X Y X X X Z X Z X X X Y Y Y Y Z X X Y Z Y Y X Z X Z Z Z Z Z Y Z Y X Y Y Y Y X Z Z Y Z Z Y Z Z Z X Z Z X X Z Z Z Z X X Z Y Y Z Y Y Z Z Y Y Z Y Z Y Z...
output:
70017 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...