专题博客链接
前引
我现在心里面非常非常难受 :(
因为我本地IDE 测试了无数遍 并且我得到的结果与 系统给出来的结果
一行一行 一个字一个字的去做了对比
我就是不知道我哪里出错了
测试了一个小时了
而且我的这个版本 明显是不能用在 大作业的 开战的
我这个摆烂写法 都过不了 真的怒了 之后发现大家大部分
都是这样 摆烂写法 但是我的真的AC不了 哎 真的生气
他人博客优秀代码
德林恩宝的 魔兽世界2:装备
酱油瓶被人注册了的 魔兽世界2:装备
我的代码(提交过不了 但是数据本地测试正常 一行一行的进行了对比 都不知道为什么AC不了)
#include <iostream>
#include <string>
#include <string.h>
#include <iomanip>
#include <math.h>
using namespace std;
class Weapons
{
public:
string name[3];
Weapons()
{
name[0] = "sword",name[1] = "bomb",name[2] = "arrow";
}
};
class RedTeam
{
private:
int producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife;
int numbers[5],producechoose;
int time,totalnum;
int lifes[5];
string name[5];
string bornout,teamout;
string hasout,loyalout,moraleout;
Weapons Weapon;
int loyalty;
float morale;
public:
int Rflag;
RedTeam(int life,int dragon,int ninja,int iceman,int lion,int wolf)
{
producelife = life,dragonlife = dragon,ninjalife = ninja,icemanlife = iceman,lionlife = lion,wolflife = wolf;
lifes[0] = icemanlife,lifes[1] = lionlife,lifes[2] = wolflife,lifes[3] = ninjalife,lifes[4] = dragonlife;
name[0] = "iceman",name[1] = "lion",name[2] = "wolf",name[3] = "ninja",name[4] = "dragon";
producechoose = totalnum = Rflag = time = 0;
memset(numbers,0,sizeof(numbers));
bornout = " born with strength ",teamout = " in red headquarter",hasout = "It has a ",loyalout = "It's loyalty is ",moraleout = ",and it's morale is ";
loyalty = morale = 0;
}
void ProducePrint()
{
int i,flag = 0;
for(i=0;i<5;i++)
{
if(producelife >= lifes[producechoose])
{
producelife -= lifes[producechoose];
numbers[producechoose]++;
totalnum++;
cout<<setw(3)<<setfill('0')<<time<<" red ";
cout<<name[producechoose]<<' '<<totalnum<<bornout<<lifes[producechoose]<<',';
cout<<numbers[producechoose]<<' '<<name[producechoose]<<teamout<<endl;
flag = 1;
if(!producechoose) cout<<hasout<<Weapon.name[totalnum%3]<<endl;
else if(producechoose == 1) cout<<loyalout<<producelife<<endl;
else if(producechoose == 3) cout<<hasout<<Weapon.name[totalnum%3]<<" and a "<<Weapon.name[(totalnum+1)%3]<<endl;
else if(producechoose == 4) cout<<hasout<<Weapon.name[totalnum%3]<<moraleout<<fixed<<setprecision(2)<<((float)producelife/lifes[producechoose])<<endl;
}
producechoose++;
if(producechoose == 5) producechoose = 0;
if(flag)break;
}
if(flag)
time++;
if(!flag){
Rflag = 1;
cout<<setw(3)<<setfill('0')<<time<<' '<<"red headquarter stops making warriors"<<endl;
}
}
};
class BlueTeam{
private:
int producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife;
int numbers[5],producechoose;
int time,totalnum;
int lifes[5];
string name[5];
string bornout,teamout;
string hasout,loyalout,moraleout;
Weapons Weapon;
int loyalty;
float morale;
public:
int Bflag;
BlueTeam(int life,int dragon,int ninja,int iceman,int lion,int wolf)
{
producelife = life,dragonlife = dragon,ninjalife = ninja,icemanlife = iceman,lionlife = lion,wolflife = wolf;
totalnum = producechoose = Bflag = time = 0;
name[0] = "lion",name[1] = "dragon",name[2] = "ninja",name[3] = "iceman",name[4] = "wolf";
memset(numbers,0,sizeof(numbers));
lifes[0] = lionlife,lifes[1] = dragonlife,lifes[2] = ninjalife,lifes[3] = icemanlife,lifes[4] = wolflife;
bornout = " born with strength ",teamout = " in red headquarter",hasout = "It has a ",loyalout = "It's loyalty is ",moraleout = ",and it's morale is ";
loyalty = morale = 0;
}
void ProducePrint()
{
int i,flag = 0;
for(i=0;i<5;i++)
{
if(producelife >= lifes[producechoose])
{
producelife -= lifes[producechoose];
numbers[producechoose]++;
totalnum++;
cout<<setw(3)<<setfill('0')<<time<<" blue "<<name[producechoose]<<' '<<totalnum<<' '<<bornout<<lifes[producechoose]<<',';
cout<<numbers[producechoose]<<' '<<name[producechoose]<<teamout<<endl;
flag = 1;
if(producechoose == 3) cout<<hasout<<Weapon.name[totalnum%3]<<endl;
else if(!producechoose) cout<<loyalout<<producelife<<endl;
else if(producechoose == 2) cout<<hasout<<Weapon.name[totalnum%3]<<" and a "<<Weapon.name[(totalnum+1)%3]<<endl;
else if(producechoose == 1) cout<<hasout<<Weapon.name[totalnum%3]<<moraleout<<fixed<<setprecision(2)<<((float)producelife/lifes[producechoose])<<endl;
}
producechoose++;
if(producechoose == 5) producechoose = 0;
if(flag == 1)break;
}
if(flag)
time++;
if(!flag){
Bflag = 1;
cout<<setw(3)<<setfill('0')<<time<<" blue headquarter stops making warriors"<<endl;
}
}
};
int main()
{
int testtimes,producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife,i;
cin>>testtimes;
for(i=1;i<=testtimes;i++)
{
cin>>producelife;
cin>>dragonlife>>ninjalife>>icemanlife>>lionlife>>wolflife;
RedTeam R(producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife);
BlueTeam B(producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife);
cout<<"Case:"<<i<<endl;
while(!R.Rflag || !B.Bflag)
{
if(!R.Rflag)R.ProducePrint();
if(!B.Bflag)B.ProducePrint();
}
}
return 0;
}
闲聊
现在都下午1点多了 没吃饭
有的时候 做这种题 真的很气人
但我想到原来写我的浙大PTA 数据结构也是
有的时候真的纠结4-5个小时 也是这个样子
没有办法 凡事总有不完美的地方 (叹息)