P3474 [POI2008]KUP-Plot purchase】的更多相关文章

1127: [POI2008]KUP https://lydsy.com/JudgeOnline/problem.php?id=1127 分析: 如果存在一个点大于等于k,小于等于2k的话,直接输出. 否则把点分成两类,一类是<k的,另一类是大于2k的,大于2k的一定没用. 然后找一个全部由小于2k的点中组成一个的矩形(悬线法),这个矩形有三种情况:1.<k,没用:2.大于等于k,小于等于2k,输出:3.大于2k,它的子矩阵中一定存在一个合法的矩阵(因为每个元素都是<k的,所以增加一个元…
思路:单调栈 提交:>5次 错因:单调栈写法有问题+前缀和写错 题解: 若有\(>=k\ \&\&\ <=2\times k\)的点,显然直接选他就行了. 否则,我们需要找到一个矩形(不一定只有一个),并且这个矩形只包含\(<k\)的点且总权值和\(>=2k\). 这样,我们可以尝试去切掉他的行来不断减少他的权值和. 如果发现某一行 \(>=2k\) ,我们应该去且他而不是切剩下的矩形(剩下的可能过小). 当然如果你切着切着发现出现了一个矩形他的权值和\…
题面 先把题目意思讲一下吧: 给一个 \(n*n\) 的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于\([k,2k]\). 那么首先,可以想到,如果\(a[i][j]\)(格子的价格,下同)位于\([k,2k]\),直接输出就好. 而对于\(a[i][j]\)>\(2k\)的格子,它是不可能被选的,那么可以把它视为障碍物, 然后,剩下的格子的价格就一定小于\(k\). 那么,根据悬线法, 如果我们找到了一个极大子矩阵,且矩阵和(设为\(sum\))>=\(k\)(小于肯定是不行的…
Description 给一个n*n的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个n*n的地图 Output 输出矩形的左上和右下的列-行坐标 或NIE Sample Input inputdata14 31 1 11 9 11 1 1inputdata28 41 2 1 325 1 2 14 20 3 33 30 12 2 Sample Output outputdata1NIEoutputdata22 1 4 2 题解(…
Description 给一个n*n的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个n*n的地图 Output 输出矩形的左上和右下的列-行坐标或NIE Sample Input inputdata1 4 3 1 1 1 1 9 1 1 1 1 inputdata2 8 4 1 2 1 3 25 1 2 1 4 20 3 3 3 30 12 2 Sample Output outputdata1 NIE outputdata2…
Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 485  Solved: 174[Submit][Status][Discuss] Description 给一个n*n的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个n*n的地图 Output 输出矩形的左上和右下的列-行坐标或NIE Sample Input inputdata1 4 3 1…
题面 原来看过然后没做,结果板板把这道题改了改考掉了,血亏=.= 首先看看有没有符合条件的点.如果没有开始寻找解,先把所有的大于$2*k$的点设为坏点,然后求最大子矩形,只要一个最大子矩形的权值和超过$2*k$则它的一个子矩形一定可以成为解.因为这时所有点都小于$k$,这个最大子矩形既然权值和超过$2*k$那么一定是有一部分落在所求的区间中,然后逐行/列枚举切一下是一定有解的. 注意最大子矩形的边界(为什么你们的最大子矩形都要做两遍啊=.=) #include<cstdio> #include…
似曾相识的感觉 考虑另一个判断问题,给定一个k,问这个k是否可行 存在矩形和\(sum>2k\),则该矩阵不对判定做出贡献 存在矩形和\(sum\in [k,2k]\),则我们找到了一个解 于是判掉这两种情况,专心讨论\(sum<k\)的矩形 找到\(sum<k\)的极大矩形,按它的和\(S\)讨论 \(S<k\),则无解 \(S\in [k,2k]\),则我们找到了一个解 \(S>2k\),递归成小矩形继续求解 #include<cstdio> #include…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1127 大于2*K的视为不能选的“坏点”.有单个格子满足的就直接输出. 剩下的都是<K的格子,求面积大于等于K的一个矩形:若还<=2*K就直接输出,否则一列一列删: 删去一列后若仍>=2*K,继续:若>=K&&<=2*K,就输出:若<K,则删去的那一列满足>=K,在那列上一格一格删,因为格子<K,所以不能从>2*K跳到<K,一…
Description 给一个\(n\times n\)的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个\(n\times n\)的地图 Output 输出矩形的左上和右下的列-行坐标或NIE Sample Input 1 4 3 1 1 1 1 9 1 1 1 1 Sample Output 1 NIE Sample Input 2 8 4 1 2 1 3 25 1 2 1 4 20 3 3 3 30 12 2 Sample…