摘要: poj1741 Tree description: 给出一颗N个节点的树,边有边权。询问有多少条路径满足其长度小于等于给定值K data range: \(N<=10^4\) solution: 点分治经典题目 考虑将一棵树的重心作为点分中心,对于子树内部的答案递归统计即可,在当前层我们只用考虑经过 阅读全文
posted @ 2020-10-03 14:12 BILL666 阅读(167) 评论(0) 推荐(0) 编辑
摘要: T1 problem: 给定一维空间内若干区间和一些点,要求选出其中某些区间(不能不选)使得存在一个点属于给定点集满足此点被每一个选出区间所包含 求选择的方案数 data range: \(N<=10^5\) solution: 对于每一个点考虑 将点按照位置从小到大排序 如果当前有A个区间包含此点 阅读全文
posted @ 2020-10-02 23:03 BILL666 阅读(119) 评论(0) 推荐(0) 编辑
摘要: UVA10723 电子人的基因 Cyborg Genes problem: 给两个序列,求出一个最短的新序列使得输入的两个串的子序列,同时输出此时的方案数 solution: 可以大胆猜测这个新序列的最短长度为原来输入的序列的长度之和减去它们的最长公共子序列 然后对一对样例发现猜想成立(滑稽) 那么 阅读全文
posted @ 2020-09-29 19:25 BILL666 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 多少个1? solution: 考虑函数f(x)=10x+1 原问题就转化为求最小正整数n使得f(x)的n次迭代在模m的意义下与k同余 通过打表找规律可得f(x)的n次迭代为$\frac{10^n-1}{9}$ 然后又因为m是素数 那么这道题就是bsgs裸题了 points for attentio 阅读全文
posted @ 2020-09-29 19:17 BILL666 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 「网络流 24 题」魔术球 solution: 我们考虑枚举最多能放多少球,那么对于每个新加的球有两种方法 重新安排一个柱子让它放 放在某个和它组成平方数的球的后面 于是我们将这个球拆成两个点u和_u 将源点s连向u容量为1,表示重新安排一个柱子 将_u连向汇点t容量为1,对于和它能构成平方数的v, 阅读全文
posted @ 2020-09-29 18:57 BILL666 阅读(117) 评论(0) 推荐(0) 编辑
摘要: [POI2005]BAN-Bank Notes problem: 经典的多重背包问题。要求输出方案 data range: 正常 solution: 问题本身不难。主要在于输出方案。 我采用的是二进制优化多重背包。 如果不用任何辅助数组直接做就是这样: void find(int x,int pos 阅读全文
posted @ 2020-09-28 20:52 BILL666 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Color Length \(problem:\) 给出两个颜色序列,长度分别为N,M,现在要将它们合并成一个新序列,每次可以将把一个序列的开头颜色放入新序列的尾部 记st(c)表示新序列中颜色c第一次出现的位置,ed(c)表示新序列中颜色c最后一次出现的位置 记L(c)=ed(c)-st(c),现 阅读全文
posted @ 2020-09-28 15:45 BILL666 阅读(157) 评论(0) 推荐(0) 编辑
摘要: CF883D Packmen Strike Back \(problem:\) 给出一个长度为N的序列,序列上每个位置或者是豆,或者是吃豆人,或者什么都没有 现在要求给每个吃豆人定向(向左吃或向右吃),定向后吃豆人会一直朝这个方向走直到尽头并吃掉沿途的所有豆 现在要求在保证尽量多的豆被吃的情况下,最 阅读全文
posted @ 2020-09-27 21:30 BILL666 阅读(251) 评论(0) 推荐(0) 编辑
摘要: UVA1674 闪电的能量 Lightning Energy Report problem: 给一个n个节点的树,点有点权(初始为0),在树上进行q次路径加,最后输出每个点的权值 data range: \(N,Q<=10^4\) solution: 可以不用树链剖分 考虑树上差分 设路径的两个端点 阅读全文
posted @ 2020-09-25 19:40 BILL666 阅读(174) 评论(0) 推荐(0) 编辑
摘要: POJ2620 Minimal coverage 题意:给出若干条线段,要求选择尽量少的线段使其完全覆盖一段区间。要求输出方案。 题解:首先按照左端点排序。然后扫一遍。枚举所有左端点在当前已覆盖的最右侧之前的线段,统计往右延伸的最大值。然后将这条线段记入答案 证明:首先枚举的这些线段包含且仅包含合法 阅读全文
posted @ 2020-09-21 23:06 BILL666 阅读(112) 评论(0) 推荐(0) 编辑