本文主要是介绍(白书训练计划)UVa 11134 Fabled Rooks(贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目地址:UVa 11134
这题因为行与列是无关的,互无影响的。所以可以将行或列分开来计算。这就相当于转化成了在期间[1,n]内选择n个不同的整数,使得第i个整数在闭区间[Li,Ri]内。这就转换成了一个贪心问题了。但是注意不能先按照左端点排序,再按右端点排序,然后尽量往左边放,比如,(1,1),(1,3),(2,2),这样是不对的,应该按右端点为主关键字排序,再按左端点为次关键字排序。看到网上的方法全都是用每次选一个数后,都要在后面的区间中删去这个数,还要用到优先队列。。感觉没必要这样做。。只要把排序关键字换换就可以了。
代码如下:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#incl
这篇关于(白书训练计划)UVa 11134 Fabled Rooks(贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!