上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页
摘要: /* HDU 6038 - Function [ 置换,构图 ] 题意: 给出两组排列 a[], b[] 问 满足 f(i) = b[f(a[i])] 的 f 的数目 分析: 假设 a[] = {2, 0, 1} 则 f(0) = b[f(2)] f(1) = b[f(0)] f(2) = b[f(1)] 即 f(0) = b[b[b[f(0)]]] f(1) = ... 阅读全文
posted @ 2017-07-27 21:06 nicetomeetu 阅读(214) 评论(0) 推荐(0)
摘要: /* HDU 6035 - Colorful Tree [ DFS,分块 ] 题意: n个节点的树,每个节点有一种颜色(1~n),一条路径的权值是这条路上不同的颜色的数量,问所有路径(n*(n-1)/2条) 权值之和是多少? 分析: 考虑单种颜色,这种颜色的贡献是 至少经过一次这种颜色的路径数 = 总路径数(n*(n-1)/2) - 没有经过这种颜色的路径数 求没有经过这种颜色的路径数,即... 阅读全文
posted @ 2017-07-27 21:04 nicetomeetu 阅读(177) 评论(0) 推荐(0)
摘要: /* HDU 6034 - Balala Power! [ 大数进位,贪心 ] 题意: 给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多少? 要求每个数字不能有前导0,即每个字符串首位字符不能赋0 分析: 对于每个字符,将每个字符串按位相加,得到这个字符的一个每位上的数量的数组 将其看成一个大数,满26进位,然后排序,从... 阅读全文
posted @ 2017-07-27 20:59 nicetomeetu 阅读(364) 评论(0) 推荐(0)
摘要: /* HDU 6047 - Maximum Sequence [ 单调队列 ] 题意: 起初给出n个元素的数列 A[N], B[N] 对于 A[]的第N+K个元素,从B[N]中找出一个元素B[i],在 A[] 中找到一个数字A[p]满足 B[i] using namespace std; #define LL long long const LL MOD = 1e9+7; const in... 阅读全文
posted @ 2017-07-27 20:58 nicetomeetu 阅读(173) 评论(0) 推荐(0)
摘要: 将每个数字的位置存进该数字的vector中 原数组排个序从小到大处理,每次在vector里二分找到距离当前位置“最远”的位置(相差最大),更新答案 树状数组维护每个数字现在的位置和原位置之差 阅读全文
posted @ 2017-07-14 20:53 nicetomeetu 阅读(431) 评论(0) 推荐(0)
摘要: 题意: 给出一场篮球赛每次得分后的分差,求最终这场比赛的比分有多少种分析: 因为知道了最终的分差,只需要考虑最终的得分之和有多少种,就能确定比分的种数 只有分差 1-2 或 2-1 能使总分的增量为 1 或 3. 其他情况只有一种增量 若 1-2 或 2-1 有 cnt 种,则最后比分之和有 cnt 阅读全文
posted @ 2017-07-12 11:22 nicetomeetu 阅读(180) 评论(0) 推荐(0)
摘要: 题解: Kruskal 算法的基本思想是,按照边长排序,然后不断将短边加入集合,最终一步如果能成功把 n-1 条边都加入同一个集合,则找到了最小生成树。在维护集合时,可以使用并查集来快速处理。 如果把 Kruskal 的过程按照边长划分成多个阶段,实际上是处理了所有短边的连通性之后继续处理下一个长度 阅读全文
posted @ 2017-04-20 19:13 nicetomeetu 阅读(147) 评论(0) 推荐(0)
摘要: 题意: 给出无向图. good way : 仅有两条边只经过一次,余下边全经过两次的路 问你共有多少条不同的good way。 两条good way不同仅当它们所经过的边的集合中至少有一条不同 (很关键) 存在多个边连通分量的情况肯定是0. 当确定某两条边只经过一次的时候: 由于经过边的顺序不重要, 阅读全文
posted @ 2017-03-30 15:04 nicetomeetu 阅读(167) 评论(0) 推荐(0)
摘要: 反着求一遍最大连续子序列(前项依赖) 阅读全文
posted @ 2017-03-30 13:38 nicetomeetu 阅读(419) 评论(0) 推荐(0)
摘要: 删除最少的数位和前缀0,使得剩下的数能被3整除 等价于各数位数字之和能被3整除。 当前数位和可能是 0, 1, 2(mod 3) 0: 直接处理 1: 删除一个a[i]%3 == 1 或者 两个a[i]%3 == 2 2: 同1 对于删完的数列,去掉前置0(只剩前置0就当作0) 若删啥都不满足,则判 阅读全文
posted @ 2017-03-29 20:02 nicetomeetu 阅读(199) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页