P1056 排座椅(贪心,桶排序,洛谷,java)

洛谷链接:https://www.luogu.com.cn/problem/P1056
注意:第二层for循环 j 写成 i 找了我半小时。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;
public class Main {
	
	public static void main(String[] args) {
		int[] x=new int[1005];  //横坐标数组
		int[] y=new int[1005];  //纵坐标数组
		int[] c=new int[1005];  //横
		int[] o=new int[1005];  //纵
		
		
		Scanner in=new Scanner(System.in);
        int m=in.nextInt();  //m行
        int n=in.nextInt();  //n列
        int k=in.nextInt();  //k条横道
        int l=in.nextInt();  //l条纵道
        int d=in.nextInt();  //d对同学交头接耳
        
        for(int i=1;i<=d;i++) {
        	//输入d对同学
        	int xi=in.nextInt();
        	int yi=in.nextInt();
        	int pi=in.nextInt();
        	int qi=in.nextInt();
        	
        	if(xi==pi) {
        		//横坐标相同,纵道
        		x[Math.min(yi, qi)]++; //表示隔开这两排的价值
        	}else {
        		//纵坐标相同,横道
        		y[Math.min(xi, pi)]++; //记得取min,即过道与前一个坐标保持一致
        	}
        }

        //开始桶排序,求出k条价值最大的横道
        for(int i=1;i<=k;i++) {  
        	int max=-1;  //为了求出每次的最大值,需要每次扫一遍 
        	int p=0;
        	
        	for(int j=1;j<m;j++) {  //横道不能到m  
        		if(y[j]>max) {
        			max=y[j];
        			p=j;
        		}
        	}
        	y[p]=0;  //求出max之后一定要记得清零!!否则无论排多少次都是一个答案 
            c[p]++;  //标记,桶排
        }
        
        //开始桶排序,求出l条价值最大的纵道
        for(int i=1;i<=l;i++) {  
        	int max=-1;  //为了求出每次的最大值,需要每次扫一遍 
        	int p=0;
        	
        	for(int j=1;j<n;j++) {  //纵道不能到n  
        		if(x[j]>max) {
        			max=x[j];
        			p=j;
        		}
        	}
        	x[p]=0;  //求出max之后一定要记得清零!!否则无论排多少次都是一个答案 
            o[p]++;  //标记,桶排
        }
        
        //输出横道答案 
        for(int i=0;i<1005;i++)
        { 
            if(c[i]!=0) {  //表示需要隔开这行 
                System.out.print(i+" ");
            }
        }
        
        System.out.println();
        
        //输出横道答案 
        for(int i=0;i<1005;i++)
        { 
            if(o[i]!=0) {  //表示需要隔开这行 
                System.out.print(i+" ");
            }
        }
	}
}
发布了86 篇原创文章 · 获赞 46 · 访问量 1712

猜你喜欢

转载自blog.csdn.net/weixin_44685629/article/details/104220658