随笔分类 - HDU
摘要:题意: 男羊和女羊之间有朋友关系,找出关系满足A->B->C->D,且A,B,C,D都不同的关系的个数(排列) 分析: 枚举B,对于每一个B枚举C 每一个B->C的贡献 = (B.size - 1) * (C.size - 1)
阅读全文
摘要:题意: 给n件物品,有key和value 每次可以把相邻的 GCD(key[i], key[i+1]) != 1 的两件物品,问移除的物品的总value最多是多少 key : 1 3 4 2 移除34以后12也相邻了,可以移除分析: 先预处理出所有GCD[l][r], 意味 l <= i <= r的
阅读全文
摘要:题意: 给一个字符串t ,求与这个序列刚好有m个位置字符不同的由两个相同的串拼接起来的字符串 s, 要求字典序最小的答案 分析: 把字符串折半,分成0 - n/2-1 和 n/2 - n-1 dp[i][j] 表示 第i位及之后的总代价为j可不可行 从第 n/2-1 位推回第 0 位, 若dp[0]
阅读全文
摘要:HDU 5904 - LCIS [ DP ] BestCoder Round #87 题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的 分析: 状态转移方程式: dp[a[i]] = max(dp[a[i]], dp[a[i]-1] + 1); 发现其实可以简化为
阅读全文
摘要:题意: 删去K条边,使拓扑排序后序列字典序最大 分析: 因为我们要求最后的拓扑序列字典序最大,所以一定要贪心地将标号越大的点越早入队。我们定义点i的入度为di。 假设当前还能删去k条边,那么我们一定会把当前还没入队的di≤k的最大的i找出来,把它的di条入边都删掉,然后加入拓扑序列。 删除的一定是小
阅读全文
摘要:先把不是标准格式的字符串变成标准格式再输出出现两次以上的标准串和出现的次数不然输出 "No duplicates."
阅读全文
摘要:题意: 给你不同的字符每个 ai 个,让你构造一些回文串,问你能达到这些回文串长度的最小值的最大值是多少 分析: 要么直接组成单链. 要么按落单的字符的数目将成对字符分摊取最短.
阅读全文
摘要:题意: 王国地图为 n 个节点的根树,首都为 1, m 个旅行家要去不同的终点旅游,他们分别有各自的预算,如果路上总费用超过预算就不去了 给每条路定价, 让赚的钱最多分析: DP[i][j]表示当从首都到城市i的路径花费为j时,以i为根的子树中的点作为目的城市的旅行者的最大花费. 只需要考虑j值等于
阅读全文
摘要:题意: 给出序列 a[] 的其中几项 ,已知序列满足非减,并且 0 <= ai <= 100, 问 (a1 + a2) / ( ∑ai)最大可能是多少 分析: 保证 a1,a2尽可能大, 其余尽可能小即可
阅读全文
摘要:题意: 给出一些木棍的长度, 问你随机三根组成三角形的概率 分析: 枚举最长边,求出所有其余两边之和大于最长边的数目 将原来的长度点集 a[] 转化成某长度的数量点集 num[] 并求出任意两根相加的值的数量点集 sum[] 即 sum[m] = ∑num[i] * num[m - i] , 满足多
阅读全文
摘要:题意: 一棵 n 个节点的根树,i 节点权重 wi 对每一个节点s,找到这样一个长 m 的标号序列 v : 1. vi是vi-1 的祖先 2. f[s] = w[vi] + ∑(i=2, m) (w[vi] opt w[vi-1]) 最大 要求输出:S = ∑(i=1, n) (i * f[i])
阅读全文
摘要:HDU 5738 - Eureka题意: 包含两个以上共线的点的集合的个数 分析: 将所有点按(x,y)双关键字排序,排完序后所有j>i均满足xj>xi ,则接下来不会重复计数 将所有j>i的点按相对于Pi的极角排序,再逆时针扫描每条线统计 每条线的左端点Pi必须被计数,右边共m个点至少取一点为2^
阅读全文
摘要:题意: 给出一组数列a,问能够尽可能多的分成几段,让每一段的每一位的前缀和均 >= 0 分析: 从后往前扫,将第 i 位看作为某段最后一位 1. 若末位数字 >= 0 ,则自成一段 2. 若末位数字 < 0 ,则向前扫直到末位前缀和 >= 0 因为 末位的前缀和 >= 0, 则每一位的前缀和均 >=
阅读全文
摘要:题意: 给出序列 A, 求满足 a<b,c<d, A[a] < A[b] , A[c] > A[d] 的互不相同的 (a,b,c,d) 的对数 分析: a<b, A[a] < A[b] 为顺序对, c<d, A[c] > A[d] 为逆序对 故先求出所有顺序对和逆序对的乘积,再减去重复的,即四个数中
阅读全文
摘要:题意: 给出集合W(w1,w2,w3...,wn) 找到 x 使得 sqrt( (w1-x)^2 + (w2-x)^2 + .... + (wn-x)^2 ) 最小,求这个最小值;分析: (w1-x)^2 + (w2-x)^2 + .... + (wn-x)^2 = n * x^2 + 2*(w1+
阅读全文
摘要:若 [i, j] 满足, 则 [i, j+1], [i, j+2]...[i,n]均满足 故设当前区间里个数为size, 对于每个 i ,找到刚满足 size == k 的 [i, j], ans += n - j + 1 . i++ 的时候看看需不需要size-- 就可以更新了。
阅读全文
摘要:先找相邻差值的最大,第二大,第三大 删去端点会减少一个值, 删去其余点会减少两个值,新增一个值,所以新增和现存的最大的值比较一下取最大即可
阅读全文
摘要:题意: n堆石子,先拿光就赢,操作分为两种: 1.任意一堆中拿走任意颗石子 2.将任意一堆分成三小堆 ( 每堆至少一颗 ) 分析: 答案为每一堆的SG函数值异或和. 故先打表寻找单堆SG函数规律. 其中,若 x 可分为 三堆 a,b,c ,则 SG[x] 可转移至子状态 SG[a] ^ SG[b]
阅读全文
摘要:题意: 给出连续的1-n个珠子的涂色方法 a[i](1<=i<=n), 问长度为n的珠链共有多少种涂色方案 分析: 可以得到DP方程: DP[n] = ∑(i=1,n) (DP[n-i]*a[i]). 该方程为卷积形式,故 CDQ + FFT CDQ: 将 [l,r] 二分, 先得到[l,mid]的
阅读全文
摘要:题意: 给出已0 1染色的无向图(不一定联通),一次操作为一对相邻点颜色互换. 问使任意相邻点颜色不同,最少需要多少次操作 分析: 交换两点的代价即为两点间最短路. 故用BFS找出所有点到任意点的最短距离,并记录路径. 对于每个连通块,按照相邻点颜色不同重新染色一遍,若发现已给的01数目与染色需要0
阅读全文

浙公网安备 33010602011771号