题意:
给你一个n*n的棋盘,让你在棋盘上放n个棋子,要求是所有棋子不能相互攻击(同行或者同列就会攻击),并且每个棋子都有一个限制,那就是必须在给定的矩形r[i]里,输出每个棋子的位置,special Jude。
思路:
看完后第一反应就是匈牙利(哎!惭愧啊。)结果想着怎么建图,想了一会呵呵了,果断想别的方法,其实这个题目设计到一个小思想非常好,那就是把整体分解,这个题目说的是什么?是每个棋子都限制了一个矩形范围,矩形范围又是什么?是不是就是xl<=x<=xr&&rl<=y<=yr,其实x和y我们可以分开考虑,可以分开的原因就是x和y之间没有限制因素,也不会相互影响,就像是中学时学的速度分解一样,这个就是这个题目的关键点,想到这个AC的可能性就很大了,分解后我们要处理的就是给你一些区间限制,然后在每个区间内都必须选择一个点放东西,最后要求同一个点不能放两个东西,也就是本题目的同一行或者一列不能放两个其子一样,然后就是贪心了,怎么贪心呢?我们可以把每个区间都按照右端点从小到大排序,然后我们从前往后贪心,右端点越小的“自由性”越小,所以要先处理,所以放在前面,对于每一断&
给你一个n*n的棋盘,让你在棋盘上放n个棋子,要求是所有棋子不能相互攻击(同行或者同列就会攻击),并且每个棋子都有一个限制,那就是必须在给定的矩形r[i]里,输出每个棋子的位置,special Jude。
思路:
看完后第一反应就是匈牙利(哎!惭愧啊。)结果想着怎么建图,想了一会呵呵了,果断想别的方法,其实这个题目设计到一个小思想非常好,那就是把整体分解,这个题目说的是什么?是每个棋子都限制了一个矩形范围,矩形范围又是什么?是不是就是xl<=x<=xr&&rl<=y<=yr,其实x和y我们可以分开考虑,可以分开的原因就是x和y之间没有限制因素,也不会相互影响,就像是中学时学的速度分解一样,这个就是这个题目的关键点,想到这个AC的可能性就很大了,分解后我们要处理的就是给你一些区间限制,然后在每个区间内都必须选择一个点放东西,最后要求同一个点不能放两个东西,也就是本题目的同一行或者一列不能放两个其子一样,然后就是贪心了,怎么贪心呢?我们可以把每个区间都按照右端点从小到大排序,然后我们从前往后贪心,右端点越小的“自由性”越小,所以要先处理,所以放在前面,对于每一断&