为什么样例都过了 但是0分 还有RE 格式也没问题
查看原帖
为什么样例都过了 但是0分 还有RE 格式也没问题
574739
Aoung楼主2021/11/20 20:36
package LuoGu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class p7948 {
	//超时了 不用队列 用数组看看时间是否会超
	//先做好输入 操作 以及输出预留的数组 为T组数据
	//准备用队列完成 删数操作用remove
	public static void main(String[] args) throws IOException {
		StreamTokenizer ins = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		PrintWriter up = new PrintWriter(new OutputStreamWriter(System.out));
		ins.nextToken();
		int T =(int)ins.nval , k = 0;//数据组数
		int[][] result = new int[T][10001];//结果  用空格隔开
		while(k < T){
			ins.nextToken();
			int tn,n = (int)ins.nval;
			ins.nextToken();
			int q = (int)ins.nval;//n为数据 q为询问的数据量
			int[] list = new int[n];
			
			tn = 0;
			while(tn < n) {//输入n个数
				ins.nextToken();
				list[tn] = (int)ins.nval;
				tn ++;
			}
			Arrays.sort(list);//对list进行 排序 不影响结果
			tn = 0;
			Map<Integer,Integer> hash = new HashMap<Integer,Integer>();//这对应的是改该k值 的结果
			int[] list_q = new int[q];
			int[] listq = new int[q];
			for(int i = 0;i < q;i++) {
				ins.nextToken();
				list_q[i] = (int)ins.nval;
				listq[i] = list_q[i];
			}
			Arrays.sort(list_q);//排序
			//从小到大开始 想像成一个个添加 从左往右走 一直走到不能走为止
			result[k][0] = q;//每行第一个数存储该行的长度
			
			double sum1 = list[n - 1];//设sum1的初值为 list的最大值 最少长度为1
			int count = 1;
			while(tn < q) {
				for(int i = n - count - 1;i >= 0;i --) {
					//判断该数是否可以被添加进当前序列 如果可以则向前添加
					if(list[i] != 0 && (sum1 + list[i]) / (count + 1) - list_q[tn] > list[i])break;
					sum1 += list[i];
					count ++;

				}
				hash.put(list_q[tn],count);//将该ki 对应的count数量添加进hash
				tn++;
				
			}
			
			tn = 1;
			while(tn <= q) {
				result[k][tn] = hash.get(listq[tn - 1]);
				tn ++;
			}
			k++;
		}
		
		for(int i = 0;i < T;i++) {//输出结果
			for(int j = 1;j <= result[i][0];j++) {
				up.print(result[i][j] + " ");
			}
			up.println();
		}
		up.flush();
		up.close();
	}
}

2021/11/20 20:36
加载中...