本文主要是介绍洛谷-P1223 排队接水,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
题目链接:
思路:
代码:
结构体
题目链接:
P1223 排队接水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路:
结构体排序
至于为什么要让接水时间短的人排在前面,见下面这位大佬的解释:
要让平均排队时间最小,就要让接水时间短的人往前排。
代码:
#include<bits/stdc++.h>
using namespace std;struct node{ //定义结构体int t; //接水时间int id; //接水的人的序号
}; //别忘了结构体最后面加分号,和类一样struct node a[1010]; //定义结构体数组bool cmp(node x,node y){ //定义"小于"运算符return x.t<y.t;
}int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i].t; //输入第i个人的接水时间a[i].id=i; //存序号}sort(a+1,a+n+1,cmp);for(int i=1;i<=n;i++){ cout<<a[i].id<<" ";}cout<<endl;double time=0; //总时间for(int j=n-1;j>=1;j--){int i=n-j; //i是当前要接水的人,也就是当前接水时间最短的人 ///当前最少时间的人序号 + 要等待的人数=ntime+=a[i].t*j;}printf("%.2f",time/n);return 0;
}
结构体
struct node{ //定义结构体int t; //接水时间int id; //接水的人的序号
}; //别忘了结构体最后面加分号,和类一样struct node a[1010]; //定义结构体数组
这篇关于洛谷-P1223 排队接水的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!