读书人

ACM好手大哥帮帮忙解决方法

发布时间: 2012-02-05 12:07:14 作者: rapoo

ACM好手大哥帮帮忙
ACM好手大哥帮帮忙 看一下我的程序

我做的是1922
网址 是 http://acm.pku.edu.cn/JudgeOnline/problem?id=1922

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的思路是先找到一个开始的速度 后每一个都和他比较 找到后面的那一些在他走完全部的路线之前就可以追上他 后 在起中找一个速度最大的 那个速度最大的什么时候走完的时间 加上他晚出发的时间就是题目要的时间 我就是知道我自己错在什么地方 那个ACM高手快帮帮我 哦
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的程序是
#include <iostream>
#define N 10000
using namespace std;
int main()
{
int b=0,c=0,d=0,e=0,f=0,g=0,q=0,w=0,v=0;
int a[N][2];
double p[N];
double t1,t2;
cin > > b;
if(b != 0) //如果输入的不是0 就做下面的事
{
for(e = 0;e < b;e++) //输入数据
{
for( f = 0;f < 2;f++)
cin > > a[e][f];
}
for(g = 0;g < b;g++) //找到时间为0的并且速度最大的
{
if(a[g][1] == 0)
{
if(a[g][0] > v)v = a[g][0];
c = g;
}

}
for(q = 0;q < b;q++) //求出速度比开始速度大的并且时间是大于0的
{
if(a[q][1] > 0 && a[q][0] > v)
{
t1 = (a[q][0]*a[q][1])/(a[q][0] -v);
if(20*t1/3600 <= 4.5)p[q] = t1;
else p[q] = 0;
}
else p[q] = 0;
}
for(w = 0;w < b;w++)
{
if(p[w] > 0)
{
if(a[w][0] > v)
{
v=a[w][0];
d = w;
}
}
}
if((4.5/v)*3600+a[d][1]-int((4.5/v)*3600+a[d][1])> 0)t2=int((4.5/v)*3600+a[d][1])+1;
else t2 = (4.5/v)*3600+a[d][1];
cout < < t2 < <endl;
}
system( "pause ");
return 0;
}

[解决办法]
有可能人已经到了,那个最大的速度的人还没有过来?

读书人网 >C++

热点推荐