摘要: 好题。 网上看到的范围是:$T \leq 10$,$ n \leq 50000$, $ a_i,b_i \leq 10^9$。 我们按照贪心惯常的思路考虑交换相邻的两个人。容易发现,对于相邻的两个人,总是后一个人的答案更大一点。而我们的目的,是让两个人中后一个人的答案更小(这样可以让这两个人后面的答 阅读全文
posted @ 2017-12-18 20:25 poorpool 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 先排个序然后做最长上升子序列就行了。 cpp include include include using namespace std; struct Node{ int ll, ww; }nd[50005]; int n, cnt, dp[5005]; bool cmp(Node x, Node y 阅读全文
posted @ 2017-12-18 18:57 poorpool 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 好的题解使人一下就懂啊…… s1[i][j]表示(i,j)最多向左(或右)延伸多少个格子,使这些格子中的数都是0(不包括(i,j)) s2[i][j]表示(i,j)最多向上延伸多少个格子,使这些格子中的数都是0(不包括(i,j)) f[i][j]表以(i,j)为右下(左下)角的最大对角线长度 来自 阅读全文
posted @ 2017-12-18 11:40 poorpool 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 倒着推就是了 cpp include include include using namespace std; int n, k, p, t, dp[10005]; vector a[10005];//是他,就是他!我们的英雄vector! int main(){ cin n k; for(int 阅读全文
posted @ 2017-12-18 11:10 poorpool 阅读(101) 评论(0) 推荐(0) 编辑