题解 P1293 【班级聚会】

· · 题解

大佬的题解看着好晕,来一个简单的C++代码,至少目前最简单。
看到这道题,第一印象就是结构体。
花费怎么算呢,以要计算的城市为中心,将所有城市减一遍取绝对值。
如果比上个城市的花费小,替换。 代码如下:

#include<bits/stdc++.h>
using namespace std;
long long o=1,minn=10000000,m;
struct pa{
    long long s;
    long long j;
    string n;
    long long cost;
};
pa  p[10005];
int main()
{
    while(cin>>p[o].s>>p[o].j>>p[o].n)
        o++;
    for(int i=1;i<o;i++)
    {
        for(int g=1;g<o;g++)
            p[i].cost+=abs(p[i].j-p[g].j)*p[g].s;
        if(p[i].cost<=minn)
        {
            minn=p[i].cost;
            m=i;
        }
    }
    cout<<p[m].n<<" "<<p[m].cost<<endl;
    return 0;
}