摘要: /* * hdu6601 * 题意: * 给你一个长度为n的序列,有q个询问,每个询问给你一个区间[l,r],每次询问问你在区间[l,r]中,能够组成的最大的三角形的周长 * 分析: * 因为三角形具有两边之和大于第三条边,利用这个性质,每次询问贪心的去枚举 * 第k大,第k+1大,第k+2大去比较 阅读全文
posted @ 2020-05-07 09:51 zlc0405 阅读(146) 评论(0) 推荐(0) 编辑
摘要: /* * hdu6599 * 题意: * 判断长度从1到len的子串中有多少回文串,且前一半也为回文 * 题解; * 用回文树求出本质不同的回文串,对每个回文串的前一半再判断是否为回文 */ #include<cstdio> #include<cstring> #include<algorithm> 阅读全文
posted @ 2020-05-07 09:50 zlc0405 阅读(147) 评论(0) 推荐(0) 编辑
摘要: /* * hdu6598 * 题意: * n个士兵,m个组合 * 每个士兵可以专职战士或者魔法师 * u和v组合,两个战士战力+a,两个法师战力+c,其他战力+b * 求解最多加多少战力 * 题解: * 经典网络流模型。 * 对每个士兵建立一个点x,点x向源点s连一条边,向汇点t连一条边。 * 分别 阅读全文
posted @ 2020-05-07 09:49 zlc0405 阅读(197) 评论(0) 推荐(0) 编辑
摘要: /* * hdu6592 * 题意: * 给你一个数组,让你求出最长的字典序最大的和最小的单峰子序列 * 思路: * 考虑dp。 * L[i][0]表示a[i]一定取,序列a[1~i]的最长上升子序列长度 * L[i][1]表示a[i]一定取,序列a[1~i]的最长单峰子序列长度 * R[i][0] 阅读全文
posted @ 2020-05-07 09:47 zlc0405 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串,主角需要用打字机将字符串打出来,每次可以: (1)花费p来打出任意一个字符。 (2)花费q将已经打出的某一段子串复制到后面去。 求解最小花费。 题解: 考虑dp。 设置dp[i]表示已经打出前i个字符的最小花费,这样设置状态是没有后效性的。 那么显然有: dp[i]=dp[i-1]+ 阅读全文
posted @ 2020-05-07 09:45 zlc0405 阅读(202) 评论(0) 推荐(0) 编辑