首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-05 
ACM好手大哥帮帮忙ACM好手大哥帮帮忙看一下我的程序我做的是1922网址是http://acm.pku.edu.cn/JudgeOnline

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;
}

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

热点排行