牛客测评题
作者:互联网
/*** * 链接:https://ac.nowcoder.com/acm/evaluate/5697/A * 来源:牛客网 * * 在统计学中,移动平均值是一种很有用的分析工具,它可以较好地体现数据的发展趋势。它的计算方法如下:若依次得到n个数据 * (x_1,x_2,...,x_n)(x1,x2,...,xn时,按顺序取k个数所做的全部算术平均值。 * 现在给你n个实数及一个整数k,请你编程求出所有移动平均值中最大的和最小的之间的差值。 * 输入说明: * 第一行输入为n和k,n为实数的个数,k的含义如题 * 第二行输入n个实数x_{1},x_{2},…,x_{n}x1,x2,…,x n * * */ public class RumenA { public static void main(String[] args) { Scanner in = new Scanner(System.in); String kn = ""; String arr = ""; while (in.hasNextLine()){ if(kn.isEmpty()){ kn = in.nextLine(); }else{ arr = in.nextLine(); } if(!kn.isEmpty()&&!arr.isEmpty()){ System.out.println(test(kn,arr)); kn = ""; arr = ""; } } } public static String test(String kn,String arr){ String[] temp = kn.split(" "); int n = Integer.parseInt(temp[0]); int k = Integer.parseInt(temp[1]); String[] arrs =(arr.trim()).split(" "); int[] a = new int[arrs.length]; for (int i = 0; i <a.length ; i++) { a[i] = Integer.parseInt(arrs[i]); } double min = getv(k,a,0); double max =min; for (int i = 1; i <a.length-k+1 ; i++) { double v = getv(k,a,i); if(v>max){ max = v; } if(v<min){ min= v; } } return (max-min)+""; } private static double getv(int k,int[] a,int start){ int count = 0 ; int temp = k; while (k>0){ count +=a[start]; start++; k--; } return count/((double)temp); } }
/** * 链接:https://ac.nowcoder.com/acm/evaluate/5697/C * 来源:牛客网 * * 牛能参加了一次牛客网组织的比赛。比赛一共三题,75分钟。比赛的规则是这样的,假如他花了t分钟解决第一题,他将在这道题得p1−2t分;花了t分钟解决第二题, * 得到p2−4t分;花t分钟解决第三题,得到p3−8t分,其中p1,p2,p3p分别是三道题的初始分值。 * 在比赛中,RP总是很重要的。牛能知道,假如自己花x点RP在一道题上,这道题的解题时间能减少x分钟(但每题最终花费时间只能是正数)。 * 现在牛能知道自己不花RP解每道题的时间,自己总的RP值和每道题的分数,他想知道最多自己能在比赛中获得多少分。 * 第一行输入三个整数p1,p2,p3p 表示每题的初始分。 * 第二行输入三个整数t1,t2,t3表示不用RP时每题所需时间。 * 第三行输入一个整数RP,表示总RP值。 * */ public class RumenC { public static void main(String[] args) { Scanner in = new Scanner(System.in); String ps = ""; String ts = ""; String rps = ""; while (in.hasNextLine()){ if(ps.isEmpty()){ ps = in.nextLine(); }else if(ts.isEmpty()){ ts = in.nextLine(); }else { rps = in.nextLine(); } if(!ps.isEmpty()&&!ts.isEmpty()&&!rps.isEmpty()){ System.out.println(test(ps,ts,rps)); ps = ""; ts = ""; rps = ""; } } } private static String test(String ps,String ts,String rps){ String[] tarr = ts.split(" "); int[] t =new int[tarr.length]; int rp = Integer.parseInt(rps); for (int i = t.length -1; i>=0 ; i--) { t[i] = Integer.parseInt(tarr[i]); if(rp>t[i]-1){ rp =rp - t[i]+1; t[i] = 1; continue; } if(rp<=t[i]-1){ t[i] =t[i]-rp; rp =0; continue; } } int corde=0; String[] parr=ps.split( " "); int[] p =new int[parr.length]; for (int i = 0; i <p.length ; i++) { p[i] = Integer.parseInt(parr[i]); if(i==0){ corde +=p[i]-2*t[0]; } if(i==1){ corde +=p[i]-4*t[1]; } if(i==2){ corde +=p[i]-8*t[2]; } } return corde+""; } }
标签:RP,String,测评,int,ts,kn,牛客,isEmpty 来源: https://blog.csdn.net/gongweixin2018/article/details/113576166