问题标题: 酷町堂:2945 跑步接力赛

0
0
已解决
周琪岳
周琪岳
初级守护
初级守护
#include <iostream>
#include <algorithm>

using namespace std;

int a[15][15],f[15]/*记录每公里是谁跑的*/,bu[15]/*记录第i公里第i人已经连续跑了多少公里*/;
int out[10000],ans;

int main(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=10;j++){
            cin>>a[i][j];
        }
    }
    int juli=1;
    while(true){
        if(juli==26) break;
        int minn=0x3f3f3f3f,pos=0;
        for(int i=1;i<=5;i++){
            if((juli==1 || f[juli-1]!=i) && a[i][1]<minn){//上一个公里不是i跑的 
                minn=a[i][1];
                f[juli]=i;
                bu[juli]=1;
                pos=i;
            }
            if(juli!=1 && f[juli-1]!=i && a[i][bu[juli-1]+1]-a[i][bu[juli-1]]<minn && bu[juli-1]+1<=10){//上一个公里是i跑的 
                minn=a[f[juli-1]][bu[juli-1]+1];
                f[juli]=i;
                bu[juli]=bu[juli-1]+1;
                pos=i;
            }
        }
        out[pos]++;
        ans+=a[pos][bu[juli]];
        juli++;
    }
    cout<<ans<<endl;
    for(int i=1;i<=5;i++) cout<<out[i]<<" ";
    return 0;
}

WA0求助


0
已采纳
周琪岳
周琪岳
资深光能
资深光能

我居然到现在还发现我小号有题没有结贴,结果到目前居然没有人挖坟

0
汪恺恒
汪恺恒
中级启示者
中级启示者

你的贪心方法不对。

要先排序

我要回答