Submission #1154695

#TimeUsernameProblemLanguageResultExecution timeMemory
1154695modwweAncient Machine (JOI21_ancient_machine)C++20
100 / 100
55 ms6644 KiB
//#include "gap.h" //#include "mushrooms.h" #include "Anna.h" #pragma GCC optimize("Ofast,unroll-loops") #include<bits/stdc++.h> //#define ll long long #define ll long long #define down cout<<'\n'; #define debug cout<<" cucuucucuuu",down #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task2 "ftree" #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".out","w",stdout) #define pb push_back #define mask(k) (1ll<<k) #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; #define getchar_unlocked getchar mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l,int r) { return uniform_int_distribution<int>(l,r)(rd); } void phongbeo(); const ll inf = 1e18; const ll mod2 = 1e9+7; const ll base=67; ll n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center; ll i, s10, s12,k1,k2,k3,s11,lim,w,l,r ; ll kk; ll t; ll el = 19; ll f[201]; ll a[201]; bool c[100002]; vector<int> send; ll decode(string s) { ll ss=0; for(ll i=0; i<s.size(); i++) if(s[i]=='1') { ss+=f[62-i]; } return ss; } string encode(string s,ll sz) { ll ss=0; for(ll i=0; i<s.size(); i++) ss=ss+mask(i)*(s[i]-'0'); ss++; string sc; for(ll i=0; i<sz; i++) if(f[62-i]<ss) { ss-=f[62-i]; sc=sc+'1'; } else sc=sc+'0'; return sc; } string changebit(ll x) { string s; for(ll i=0; i<44; i++) if(bit(x,i)) s=s+'1'; else s=s+'0'; return s; } void build() { f[0]=1; f[1]=2; f[2]=3; for(ll i=2; i<=63; i++) f[i]=f[i-1]+f[i-2]; } void Anna(int n,vector<char>a) { bool de=0; bool de2=0; build(); for(ll i=0; i<a.size(); i++) { if(!de&&i!=a.size()-1&&a[i+1]=='X')continue; if(de&&i!=a.size()-1&&a[i+1]=='Z') continue; if(!de&&a[i]=='X') { c[i]=1; de=1; if(i!=a.size()-1&&a[i+1]=='Z') de2=1; i++; } else if(de&&a[i]=='Z') c[i]=1; } string s; n+=2; c[n-1]=de2; for(ll i=0; i<n; i++) { if(i!=n-1&&c[i]==c[i+1]&&c[i]==1)assert(0); if(c[i])s=s+"1"; else s=s+"0"; if(i!=0) if(i%63==62||i==n-1) { s5=decode(s); // cout<<s5,down string sc=changebit(s5); for(ll i=0; i<sc.size(); i++) Send(sc[i]-'0'); s=""; } } }
//#include "gap.h" //#include "mushrooms.h" #include "Bruno.h" #pragma GCC optimize("Ofast,unroll-loops") #include<bits/stdc++.h> //#define int long long #define ll long long #define down cout<<'\n'; #define debug cout<<" cucuucucuuu",down #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task2 "ftree" #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".out","w",stdout) #define pb push_back #define mask(k) (1ll<<k) #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; #define getchar_unlocked getchar mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l,int r) { return uniform_int_distribution<int>(l,r)(rd); } void phongbeo(); const ll inf = 1e18; const ll mod2 = 1e9+7; const ll base=67; ll n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center; ll i, s10, s12,k1,k2,k3,s11,lim,w,l,r ; ll kk; ll t; ll f[201]; ll a[201]; bool c[100001]; vector<int> send; void Send(ll x) { send.pb(x); } ll decode(string s) { ll ss=0; for(ll i=0; i<s.size(); i++) if(s[i]=='1'){ ss+=f[62-i]; } return ss; } string encode(string s,ll sz) { ll ss=0; for(ll i=0; i<s.size(); i++) ss=ss+mask(i)*(s[i]-'0'); ss++; string sc; for(ll i=0; i<sz; i++) if(f[62-i]<ss) { ss-=f[62-i]; sc=sc+'1'; } else sc=sc+'0'; return sc; } string changebit(ll x) { string s; for(ll i=0; i<44; i++) if(bit(x,i)) s=s+'1'; else s=s+'0'; return s; } void build() { f[0]=1; f[1]=2; f[2]=3; for(ll i=2; i<=63; i++) f[i]=f[i-1]+f[i-2]; } vector<int> v; void Bruno(int n,int L,vector<int> a) { build(); string haha,s; ll sz=n+2; for(ll i=0; i<a.size(); i++) { if(a[i]==1)s=s+'1'; else s=s+'0'; if(i!=0&&i%44==43||i==a.size()-1) { haha=haha+encode(s,min(sz,63ll)); s=""; sz-=63; } } v.pb(-1); for(ll i=0; i<haha.size()-1; i++) if(haha[i]=='1') v.pb(i); if(v.back()!=n-1) v.pb(n-1); for(ll i=1; i<v.size(); i++) { for(ll j=v[i]-1; j>v[i-1]; --j) Remove(j); if(i==1) { if(haha[haha.size()-1]=='1'){ Remove(v[i]+1); v[i]++; } continue; } Remove(v[i]); } if(haha[haha.size()-1]=='1') Remove(v[1]-1); else Remove(v[1]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...