| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
总是WA。。哪位大牛帮忙看看或者给几组易错的数据 谢谢啦~#include <iostream>
#include <stdlib.h>
#include <vector>
#include <iomanip>
using namespace std;
class com
{
public:
int b,p;
double r;
com(int,int);
bool operator<(com);
};
com::com(int x,int y)
{
b=x;
p=y;
r=b*1.0/p;
}
vector< vector<com> > vec;
vector< com > te;
int main(int argc, char *argv[])
{
int test,n,m,i,j;
cin>>test;
for(int ti=0;ti<test;ti++)
{
cin>>n;
vec.clear();
for(j=0;j<n;j++)
{
te.clear();
cin>>m;
int tempb,tempp;
for(i=0;i<m;i++)
{
cin>>tempb>>tempp;
com temp(tempb,tempp);
te.push_back(temp);
}
vec.push_back(te);
}
double gr,lr;
int gb,gp,lb;
double r=0;
for(i=0;i<vec[0].size();++i)
{
if(vec[0][i].r>r)
{
r=vec[0][i].r;
gb=i;
}
}
int b=vec[0][gb].b,p=vec[0][gb].p;
for(i=1;i<vec.size();++i)
{
gp=-1;gb=-1;lr=-1;lb=-1;
for(j=0;j<vec[i].size();++j)
{
if(vec[i][j].b>=b)
{
if(gb==-1)
{
gp=vec[i][j].p;
gb=j;
//cout<<"gb "<<gb<<endl;
}
else
{
if(vec[i][j].p<vec[i][gb].p)
{
gp=vec[i][j].p;
gb=j;
//cout<<"gb "<<gb<<endl;
}
}
}
else
{
if(lb==-1)
{
lr=vec[i][j].r;
lb=j;
//cout<<"lb "<<lb<<endl;
}
else
{
if(vec[i][j].r>vec[i][lb].r)
{
lr=vec[i][j].r;
lb=j;
//cout<<"lb "<<lb<<endl;
}
}
}
}
//cout<<gb<<" "<<lb<<endl;
if(lb==-1)
p+=vec[i][gb].p;
else if(gb==-1)
{
b=b<vec[i][lb].b?b:vec[i][lb].b;
p+=vec[i][lb].p;
}
else if(b*1.0/(p+vec[i][gb].p)>=vec[i][lb].b/(vec[i][lb].p+p))
p+=vec[i][gb].p;
else
{
cout<<111<<endl;
b=b<vec[i][lb].b?b:vec[i][lb].b;
p+=vec[i][lb].p;
}
//cout<<"b: "<<b<<" p: "<<p<<endl;
}
cout<<fixed<<setprecision(3)<<b*1.0/p<<endl;
}
system("PAUSE");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator