[洛谷 OJ] P2123 皇后游戏

news/2024/7/6 13:34:29 标签: 贪心

题解:

https://www.luogu.org/problemnew/solution/P2123

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.Comparator;

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
		PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));
		StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		in.nextToken();
//		Scanner sc=new Scanner(System.in);
		int t=(int)in.nval;
//		in.nextToken();
		while(t-->0) {
			in.nextToken();
			int n=(int)in.nval;
//			in.nextToken();
			long sum=0;
			Ad[] admin=new Ad[n];
			for(int i=0;i<n;i++) {
				in.nextToken();
				admin[i]=new Ad();
				admin[i].l=(int)in.nval;
				in.nextToken();
				admin[i].r=(int)in.nval;
				if(admin[i].l>admin[i].r)
					admin[i].d=1;
				else if(admin[i].l<admin[i].r)
					admin[i].d=-1;
				else
					admin[i].d=0;
			}
			Comparator<Ad> cmp=new Comparator<Ad>() {
				
				@Override
				public int compare(Ad o1, Ad o2) {
					// TODO Auto-generated method stub
					if(o1.d!=o2.d)
						return o2.d-o1.d;
					if(o1.d<=0) return o2.l-o1.l;
					return o1.r-o2.r;
				}
			};
			Arrays.sort(admin,cmp);
			sum=admin[n-1].l;
			long c=admin[n-1].l+admin[n-1].r;
			for(int i=n-2;i>=0;i--) {
				sum+=admin[i].l;
				c=Math.max(c, sum)+admin[i].r;
			}
			out.println(c);
		}
		
		out.flush();
		out.close();
	}


}
class Ad{
	int l;
	int r;
	int d;
}

 


http://www.niftyadmin.cn/n/1437083.html

相关文章

泛型方法的设计与应用1(静态与引用类型的设计)

可以通过&#xff0c;泛型类的类型参数的实例类型来指定泛型方法的实例返回值类型&#xff0c;从而实现引用类型泛型方法的调用。 之前在《C#泛型方法和普通方法的性能实例解析》一文中&#xff0c;演示和解析了泛型方法的一些强大的性能。 现在让我们再一起来回顾一下&#…

【算法思想篇】并查集

并查集&#xff0c;在一些有N个元素的集合应用问题中&#xff0c;我们通常是在开始时让每个元素构成一个单元素的集合&#xff0c;然后按一定顺序将属于同一组的元素所在的集合合并&#xff0c;其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际竞…

[百练]4116 拯救行动

广搜加优先队列 import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner;public class Main {static int n,m;static int max_n205,max_m205;static int[][] to {{1,0},{-1,0},{0,1},{0,-1}};static char[][] chne…

[并查集 ] 1143通信系统 java版

1143: 通信系统 时间限制: 1 Sec 内存限制: 32 MB 提交: 41 解决: 11 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 某市计划建设一个通信系统。按照规划&#xff0c;这个系统包含若干端点&#xff0c;这些端点由通信线缆链接。消息可以在任何一个端点产生&#xff0c…

[并查集] 洛谷P1551 亲戚 java版

题目链接&#xff1a; https://www.luogu.org/problem/P1551 并查集模板&#xff1a; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer;public class Main {static int father[];public sta…

[并查集] Poj2236 Wireless Network java版

题目链接&#xff1a; http://poj.org/problem?id2236 import java.util.ArrayList; import java.util.List; import java.util.Scanner;public class Main {static int father[];public static void main(String[] args) {// TODO Auto-generated method stubScanner scnew…

[洛谷 OJ]P1047 校门外的树

题目链接&#xff1a; https://www.luogu.org/problem/P1047 import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scnew Scanner(System.in);int lsc.nextInt();int msc.nextInt();boolean[] …

C#逆变接口实例和解析

ContraVarianceBody.inInterface<string> Instr ObjClass;//逆变性 Console.WriteLine(Instr.outMethod("getIt"));//逆变接口常常用于获取数据并处理、转化成指定的类型 //协变接口常常用于返回、输出各种类型的数据