社区讨论

这题……

P1594护卫队参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi6ldz2f
此快照首次捕获于
2025/11/20 06:46
4 个月前
此快照最后确认于
2025/11/20 06:46
4 个月前
查看原帖
……这题也太玄学了吧……
CPP
#include<iostream>
#include<cstdio>
#include<climits>
#define verybig 9223372036854775807ll
using namespace std;
struct Car
{
    double m,mins;
} car[1001];
long long cm[1001];
double dis[1001][1001],f[1001];
int main()
{
    long long ton,bridge,vehicle;
    cin>>ton>>bridge>>vehicle;
    for(int i=1; i<=vehicle; i++)
    {
        f[i]=verybig;
        int velocity;
        cin>>car[i].m>>velocity;
        cm[i]=cm[i-1]+car[i].m;  //第i辆车到第一辆车的总重量
        car[i].mins=60.0*bridge/velocity;  //开过桥去需要多长时间
        dis[i][i]=car[i].mins;
    }
    for(int i=1; i<vehicle; i++)
        for(int j=i+1; j<=vehicle; j++)
            dis[i][j]=max(car[j].mins,dis[i][j-1]);  //从车i到车j所用的最大时间
    for(int i=1; i<=vehicle; i++)
        for(int j=i; j>=1; j--)
            if(cm[i]-cm[j-1]<=ton)  //不超重
                f[i]=min(f[i],f[j-1]+dis[j][i]);
    printf("%.1llf",f[vehicle]);
    return 0;
}
求各位大佬,是我的问题还是题的问题……为什么连样例的点都不过,全部输出0-5000???

回复

3 条回复,欢迎继续交流。

正在加载回复...