社区讨论

0pts求条,只要改到30pts就行

P7506「Wdsr-2.5」琪露诺的算数游戏参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mm8lodh0
此快照首次捕获于
2026/03/02 11:09
上周
此快照最后确认于
2026/03/04 22:05
6 天前
查看原帖
CPP
#include<bits/stdc++.h>
#define Rainbow return
#define after 0
#define rain
using namespace std;
int n,m,k,p,cnt=1;
struct card{
	int op,x;
	//1:A 2:B 3:C 4:D 5:E
	//6:PA 7:TR 8:DB
};
card dui[300010];
string pdui[300010];
struct plyr{
	vector<card> v;
	vector<string> vv;
	string nm;
}a[40];
card cd(string x){
	card tmp={0,0};
	switch(x[0]){
		case 'A': tmp.op=1;break;
		case 'B': tmp.op=2;break;
		case 'C': tmp.op=3;break;
		case 'D': tmp.op=4;break;
		case 'E': tmp.op=5;break;
	}
	for(int i=1;i<x.size();i++){
		tmp.x=tmp.x*10+x[i]-'0'; 
	}
	return tmp;
}
int calc(int x,card y){
	switch(y.op){
		case 1:return x+y.x;
		case 2:return x-y.x;
		case 3:return x*y.x;
		case 4:return x/y.x;
		case 5:return y.x;
	}
}
bool round(int pl){
	int maxp=-1,maxi=0;
	for(int i=1;i<=2;i++){
		int np=calc(p,a[pl].v[i]);
		if(np<=99){
			if(maxp<np||(np==maxp&&a[pl].v[i].op<a[pl].v[maxi].op)){
				maxp=np;
				maxi=i;
			}
		}
	}
	if(maxp==-1){
		cout<<a[pl].nm<<" lost the game.\n";
		a[pl].v.clear();
		a[pl].vv.clear();
		for(int i=1;i<=3;i++){
			a[pl].v.push_back(dui[cnt]);
			a[pl].vv.push_back(pdui[cnt]);
			cnt++;
		}
		return 0;
	}
	else{
		p=maxp;
		cout<<a[pl].nm<<" used "<<a[pl].vv[maxi]<<",now p="<<p<<".\n";
		a[pl].v.erase(a[pl].v.begin()+maxi);
		a[pl].v.push_back(dui[cnt]);
		a[pl].vv.erase(a[pl].vv.begin()+maxi);
		a[pl].vv.push_back(pdui[cnt]);
		cnt++;
		return 1;
	}
}
int main(){
    //ios::sync_with_stdio(0);
    //cin.tie(0);
    //cout.tie(0);
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i].nm;
		for(int j=0;j<3;j++){
			string s;
			cin>>s;
			a[i].v.push_back(cd(s));
			a[i].vv.push_back(s);
			//cout<<a[i].c[j].op<<" "<<a[i].c[j].x<<"\n";
		}
	}
	for(int i=1;i<=k;i++){
		string x;
		cin>>x;
		dui[i]=cd(x);
		pdui[i]=x;
	}
	int now=1;
	for(int i=1;i<=m;i++){
		cout<<"Round "<<i<<":\n";
		p=0;
		while(round(now)) now=now%n+1;
	}
    Rainbow after rain;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...