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