比赛 |
20111109 |
评测结果 |
AWTAAATTAA |
题目名称 |
摩托车游戏 |
最终得分 |
60 |
用户昵称 |
song |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-09 11:08:12 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
int s;
double sum[1001][1001]={0},f[1001][1001]={0},t;
double sudu(double x);
double minn(double y,double z,double w);
int main()
{
freopen("carz.in","r",stdin);
freopen("carz.out","w",stdout);
cin>>s>>t;
s=s/10;
for(int i=0;i<s;i++)
{
sum[i][i]=0;
for(int j=i+1;j<=s;j++)
{
sum[i][j]=sudu(double((j-i+1)*10));
}
}
for(int l=2;l<=s;l++)
{
for(int i=0;i<=s-l+1;i++)
{
int j=i+l-1;
f[i][j]=200000;
for(int k=i;k<=j;k++)
{
f[i][j]=minn(f[i][j],f[i][k]+f[k][j]+double(t/60),sum[i][j]);
}
}
}
cout<<setiosflags(ios::fixed)<<setprecision(2)<<f[1][s]<<endl;
}
double sudu(double x)
{
double c;
if(x<=10)
{
c=double(double(x)/100);
}
if(x>10&&x<=20)
{
c=double(double(x)/90);
}
if(x>20&&x<=30)
{
c=double(double(x)/80);
}
if(x>30&&x<=40)
{
c=double(double(x)/75);
}
if(x>40)
{
c=double(double(x)/70);
}
return c;
}
double minn(double y,double z,double w)
{
double l=0;
if(y<z&&y<w)
{
l=y;
}
else
{
if(z<w)
{
l=z;
}
else
l=w;
}
return l;
}