摘要: 【题目】D. Animals and Puzzle 【题意】给定n*m的01矩阵,Q次询问某个子矩阵内的最大正方形全1子矩阵边长。n,m<=1000,Q<=10^6。 【算法】动态规划DP+二维ST表 【题解】设f[i][j]为以(i,j)为右下角的最大正方形全1子矩阵。 f[i][j]=min{ 阅读全文
posted @ 2018-01-17 21:56 ONION_CYC 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 【题目】C. Sonya and Problem Wihtout a Legend 【题意】给定n个数字,每次操作可以对一个数字±1,求最少操作次数使数列递增。n<=10^5。 【算法】动态规划+前缀和优化 【题解】★令b[i]=a[i]-i,则a[i]递增等价于b[i]不递减。 这样做之后,显然数 阅读全文
posted @ 2018-01-17 19:22 ONION_CYC 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定n个人的ai和bi,表示第i个人能力值为ai且不能和bi同时选择,求能力值和最大的选择方案。n<=10^6。 【算法】环套树DP(基环树) 【题解】n个点n条边——基环森林(若干环套树子图)。 若原图是树,经典DP做法:f[i][0/1]表示i点选或不选的最大能力值和,则f[i][0]= 阅读全文
posted @ 2018-01-17 12:52 ONION_CYC 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 【题目】B. Recover the String 【题意】找到一个串s,满足其中子序列{0,0}{0,1}{1,0}{1,1}的数量分别满足给定的数a1~a4,或判断不存在。数字<=10^9,答案<=10^6。 【算法】数学构造 【题解】首先由a1和a4易得0的数量x0和1的数量x1。 容易发现0 阅读全文
posted @ 2018-01-17 07:04 ONION_CYC 阅读(209) 评论(0) 推荐(0) 编辑