Logo Wy Online Judge

WyOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#328#6. 「WyOJ Round 1」持 · 山海为肩__vector__Compile Error//C++233.9kb2025-04-18 19:03:282025-04-18 19:03:29

answer

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

#define N 100000

int i,j,k,n,m,t,L1=1,L2=1;

ll p[N+50],res,r2,NMSL;
int fk[3][3],g[777][777],w[N+50][2];

const string _s[3]={"rock","paper","scissors"};

ll f[777][13];

void fuck(int msk){
	int i,j,k;
	ll tot=0,t2;
	
	memset(f,0,sizeof(f));
	
	for(i=1;i<=n;i++){
		k=g[msk][w[i][0]];
		//cout<<"CAONIMA "<<msk<<' '<<i<<' '<<k<<endl;
		if(k<-6)continue;
		if(k>6){
			tot+=p[i]; continue;
		}
		f[w[i][1]][k+6]+=p[i];
	}
	for(i=11;i>=0;i--)for(j=0;j<729;j++){
		f[j][i]+=f[j][i+1];
	}
	
	int CNM=729/L2;
	for(i=0;i<729;i+=CNM){
		t2=tot;
		for(j=0;j<729;j+=CNM){
			//cout<<"NMSL "<<g[i][j]<<endl;
			t2+=f[j][6-g[i][j]];
		}
		
		if(t2>res){
			res=t2; r2=msk*729+i;
		}
	}
	
	//cout<<"NMSL "<<msk<<' '<<res<<' '<<r2<<' '<<NMSL<<endl;
}

int main(){
	ios::sync_with_stdio(0); cin.tie(0);
	std::cout << std::fixed << std::setprecision(6);
	
	fk[0][1]=-1; fk[0][2]=1;
	fk[1][2]=-1; fk[1][0]=1;
	fk[2][0]=-1; fk[2][1]=1;
	
	cin>>n>>m;
	L1=pow(3,min(m,6));
	if(m>6)L2=pow(3,m-6);
	
	for(i=1;i<=n;i++){
		double p0;
		cin>>p0; p[i]=ll(p0*1e18);
		
		int t1=0;
		for(j=1;j<=m;j++){
			string s; cin>>s;
			if(s[0]=='r')k=0;
			else if(s[0]=='p')k=1;
			else k=2;
			t1=t1*3+k;
		}
		for(j=m+1;j<=12;j++)t1*=3;
		
		w[i][0]=t1/729; w[i][1]=t1%729;
		
		//cout<<"NIMASILE "<<w[i][1]<<endl;
	}
	
	for(i=0;i<729;i++)for(j=0;j<729;j++){
		int x=i,y=j;
		for(k=1;k<=12;k++){
			g[i][j]+=fk[x%3][y%3]; x/=3; y/=3;
		}
	}
	
	for(i=0;i<L1;i++)fuck(i*729/L1);
	vector<string> v;
	
	for(i=1;i<=12;i++)v.insert(v.begin(),_s[r2%3]),r2/=3;
	v.resize(m);
	
	cout<<(res/(1e18))<<'\n';
	for(auto i:v)cout<<i<<' ';
}#include<bits/stdc++.h>
#define rep(i,j,k,...) for(int i=j,##__VA_ARGS__;i<=(int)k;i++)
#define rev(i,j,k,...) for(int i=j,##__VA_ARGS__;i>=(int)k;i--)
#define x first
#define y second
#define exec(...) [&](){__VA_ARGS__}()
#define endl '\n'
#define os ostream
#define pb push_back
#define view(x) begin(x),end(x)
#define lambda [&]
using namespace std;
using ll=long long;
template<typename T>void ckmin(T& x,T y){x=min(x,y);}
template<typename T>void ckmax(T& x,T y){x=max(x,y);}

#ifdef DEBUG
template<typename T1,typename T2>os& operator<<(os&,pair<T1,T2>);
template<typename T,typename=decltype(T().begin()),typename=enable_if_t<!is_same_v<decay_t<T>,string>>>os& operator<<(os& out,T x){auto n=0u;out<<"{";for(auto i:x) out<<i<<(++n==x.size()?"":",");return out<<"}";}
template<typename ...T>os& operator<<(os& out,tuple<T...> x){return apply(lambda(T... x){auto n=0u;out<<"{";((out<<x<<(++n==sizeof...(T)?"":",")),...);},x),out<<"}";}
template<typename T1,typename T2>os& operator<<(os& out,pair<T1,T2> x){return out<<tuple(x);}
#define debug(...) cerr<<"#"<<__LINE__<<": "<<#__VA_ARGS__<<" = "<<std::make_tuple(__VA_ARGS__)<<endl
#else
#define debug(...) (void)0
#endif

const int maxn=1e5+5;

int n,m;
pair<double,int> ans;

double f[531441][25],g[531441][25];

void solve(int l,int r){
	if(l==r){
		double sum=0;
		rep(i,m,2*m){
			sum+=f[l][i];
		}
		ckmax(ans,make_pair(sum,l));
		return;
	}
	rep(i,l,r) memcpy(g[i],f[i],sizeof f[i]);
	int len=(r-l+1)/3;
	rep(i,l,r) rep(j,0,2*m) if(g[i][j]){
		f[i+len>r?i-2*len:i+len][j-1]+=g[i][j];
		f[i-len>=l?i-len:i+2*len][j+1]+=g[i][j];
	}
	solve(l,l+len-1),solve(l+len,l+2*len-1),solve(l+2*len,r);
}

signed main(){
	cin.tie(0)->sync_with_stdio(0);
	cin>>n>>m;
	rep(i,1,n){
		double x;
		cin>>x;
		string s;
		int val=0;
		rep(_,1,m){
			cin>>s;
			(val*=3)+=(s=="rock"?2:(s=="paper"?1:0));
			debug((s=="rock"?2:(s=="paper"?1:0)));
		}
		debug(val);
		f[val][m]+=x;
	}
	solve(0,pow(3,m)-1);
	cout<<fixed<<setprecision(6)<<ans.x<<endl;
	debug(ans);
	vector<int> fn;
	rep(i,1,m) fn.pb(ans.y%3),ans.y/=3;
	debug(fn);
	while(!fn.empty()) cout<<(fn.back()==0?"scissors":(fn.back()==1?"paper":"rock"))<<" ",fn.pop_back();
}










详细

answer.code:97:2: error: stray '#' in program
   97 | }#include<bits/stdc++.h>
      |  ^
answer.code:97:11: error: 'bits' was not declared in this scope
   97 | }#include<bits/stdc++.h>
      |           ^~~~
answer.code:97:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   97 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
answer.code:97:11: error: 'bits' was not declared in this scope
   97 | }#include<bits/stdc++.h>
      |           ^~...