题解 | #[NOIP2010]接水问题#

[NOIP2010]接水问题

https://ac.nowcoder.com/acm/problem/16600

解决此题的关键在于如何算出接水的总时间。我们先用一个数组接收每个人需要打水的量,接下来用for语句控制一次所承载同时接水的人数m,通过遍历得出数组中前m个元素中最小的那个,并用x记录其索引。接下来再用一个for循环来进行同时减最小值,此最小值就代表时间的流逝,也代表此时需要换人接水,也就是p[x]=p[k],下一个人紧跟上来接水,依次遍历完后面的所有人。但需要注意的是,最后一个人的时候,并不是取最小值,而是取最大值,只有当时间最长的人完成了接水,整个接水任务才算完成,这样即可解决此题。

import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); int[] p=new int[n]; int[] w=new int[m]; for(int i=0;i<n;i++) { p[i]=sc.nextInt(); }

int x=0;
int time=0;
for(int k=m;k<n;k++) {
	int min=100;
	for(int i=0;i<m;i++) {
	if(p[i]<min) {
		min=p[i];
		x=i;
	 }
	
    }
    for(int i=0;i<m;i++) {
	p[i]=p[i]-min;
	
    }
   p[x]=p[k];
   time=time+min;
}

int max=0;
for(int i=0;i<m;i++) {
	if(p[i]>max) {
		max=p[i];
	 }
	
    }
System.out.println(time+max);






}

}

全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务