摘要: POJ.3667 Hotel ( 线段树 )题意分析还需要好好理解一下代码总览#include #include #include #define nmax 200010using namespace std;struct Tree{ int l,r; int lenma... 阅读全文
posted @ 2017-08-14 11:49 pengwill 阅读(92) 评论(0) 推荐(0) 编辑
摘要: BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 )题意分析有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a... 阅读全文
posted @ 2017-08-14 10:55 pengwill 阅读(170) 评论(0) 推荐(0) 编辑
摘要: POJ.2763 Housewife Wind ( 边权树链剖分 线段树维护区间和 )题意分析给出n个点,m个询问,和当前位置pos。 先给出n-1条边,u->v以及边权w。 然后有m个询问,询问分2种: 一是讲第i条边的边权修改为w。 二是询问从当前位置走到点x经过的边权和(下次询... 阅读全文
posted @ 2017-08-13 20:41 pengwill 阅读(165) 评论(0) 推荐(0) 编辑
摘要: BZOJ.1036 [ZJOI2008]树的统计Count (树链剖分 线段树维护和与最值)题意分析(题目图片来自于 这里)第一道树链剖分的题目,谈一下自己的理解。 树链剖分能解决的问题是,题目中反复要求对链上信息进行修改和查询。如果依旧采取用dfs序的方法,会发现不适用,原因是d... 阅读全文
posted @ 2017-08-13 11:28 pengwill 阅读(171) 评论(0) 推荐(0) 编辑
摘要: HDU.5692 Snacks ( DFS序 线段树维护最大值 )题意分析给出一颗树,节点标号为0-n,每个节点有一定权值,并且规定0号为根节点。有两种操作:操作一为询问,给出一个节点x,求从0号节点开始到x节点,所能经过的路径的权值最大为多少;操作二为修改,给出一个节点x和值val... 阅读全文
posted @ 2017-08-12 14:58 pengwill 阅读(206) 评论(0) 推荐(0) 编辑
摘要: POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)题意分析卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果。卡卡很喜欢苹果。树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果。卡卡想要了解某一个子树上一共结了多少苹果。现在... 阅读全文
posted @ 2017-08-11 23:55 pengwill 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 洛谷 3379 最近公共祖先(LCA 倍增)题意分析裸的板子题,但是注意这题n上限50w,我用的边表,所以要开到100w才能过,一开始re了两发,发现这个问题了。代码总览#include #include #include #include #define nmax 1000100#... 阅读全文
posted @ 2017-08-11 19:54 pengwill 阅读(173) 评论(0) 推荐(0) 编辑
摘要: CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先)题意分析小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上。有一天,他们想爬到一个节点上去搞基,但是作为两只虫子,他们不想花费太多精力。已知从某个节点爬到其... 阅读全文
posted @ 2017-08-11 19:34 pengwill 阅读(140) 评论(0) 推荐(0) 编辑
摘要: CodeVs.1036 商务旅行 ( LCA 最近公共祖先 )题意分析某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花... 阅读全文
posted @ 2017-08-11 19:31 pengwill 阅读(129) 评论(0) 推荐(0) 编辑
摘要: POJ.1986 Distance Queries ( LCA 倍增 )题意分析给出一个N个点,M条边的信息(u,v,w),表示树上u-v有一条边,边权为w,接下来有k个询问,每个询问为(a,b),求a,b两点到lca(a,b)的边权之和为多少。倍增维护树上前缀和,求得LCA之后,相... 阅读全文
posted @ 2017-08-11 19:27 pengwill 阅读(156) 评论(0) 推荐(0) 编辑
摘要: POJ.1330 Nearest Common Ancestors (LCA 倍增)题意分析给出一棵树,树上有n个点(n-1)条边,n-1个父子的边的关系a-b。接下来给出xy,求出xy的lca节点编号。LCA裸题,用倍增思想。代码总览#include #include #inclu... 阅读全文
posted @ 2017-08-11 19:16 pengwill 阅读(93) 评论(0) 推荐(0) 编辑
摘要: UVA.12716 GCD XOR (暴力枚举 数论GCD)题意分析题意比较简单,求[1,n]范围内的整数队a,b(a#include #include #include #define nmax 30000010#define ll long longusing namespace... 阅读全文
posted @ 2017-08-10 11:33 pengwill 阅读(344) 评论(0) 推荐(1) 编辑
摘要: UVA.10791 Minimum Sum LCM (唯一分解定理)题意分析也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断。代码总览#include #include #include #include #define ... 阅读全文
posted @ 2017-08-10 09:12 pengwill 阅读(129) 评论(0) 推荐(0) 编辑
摘要: UVA.10375 Choose and divide (唯一分解定理)题意分析首先写出组合数的公式,然后利用唯一分解定理分解每一项,若是在分子,则加一,在分母减一,最后根据分解的结果计算即可。代码总览#include #include #include #include #inc... 阅读全文
posted @ 2017-08-10 09:09 pengwill 阅读(124) 评论(0) 推荐(0) 编辑
摘要: UVA.12169 Disgruntled Judge ( 拓展欧几里得 )题意分析给出T个数字,x1,x3……x2T-1。并且我们知道这x1,x2,x3,x4……x2T之间满足xi = (a * xi-1 + b ) MOD 10001, 求出x2,x4……x2T. 由于本题中的... 阅读全文
posted @ 2017-08-09 22:23 pengwill 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 一、唯一分解定理基本描述任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积.理解换句话说,它来指导我们分解质因数。 想想在分解质因数的时候,我们使用的是短除法,先试除2,然后试除3,其实就是用到的唯一分解定理。代码找出num的所有质因数void findf... 阅读全文
posted @ 2017-08-09 13:56 pengwill 阅读(251) 评论(0) 推荐(0) 编辑
摘要: HDU.1796 How many integers can you find ( 组合数学 容斥原理 二进制枚举)题意分析求在[1,n-1]中,m个整数的倍数共有多少个 与 UVA.10325 The Lottery 一模一样。前置技能和其一样,但是需要注意的有一下几点: 1. m... 阅读全文
posted @ 2017-08-08 12:33 pengwill 阅读(156) 评论(0) 推荐(0) 编辑
摘要: UVA.10325 The Lottery (组合数学 容斥原理)题意分析首先给出一个数n,然后给出m个数字(m#include #include #define nmax 20#define ll long longusing namespace std;ll initnum[nm... 阅读全文
posted @ 2017-08-08 11:06 pengwill 阅读(142) 评论(0) 推荐(0) 编辑
摘要: UVA.11806 Cheerleaders (组合数学 容斥原理 二进制枚举)题意分析给出n*m的矩形格子,给出k个点,每个格子里面可以放一个点。现在要求格子的最外围一圈的每行每列,至少要放一个点,并且放在角上的点,同时算那个角所在的行和所在的列。不允许剩下点,求总共的方案数量,结... 阅读全文
posted @ 2017-08-07 16:34 pengwill 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一、容斥定理基本描述在计数时,必须不重不漏。为了使得重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后把计数时重复计算的数目排斥出去,使得计算的结果既无重复也无遗漏,这种计数的方法称为容斥原理。... 阅读全文
posted @ 2017-08-07 10:05 pengwill 阅读(2338) 评论(0) 推荐(0) 编辑
摘要: HDU.1847 Good Luck in CET-4 Everybody! ( 博弈论 SG分析)题意分析简单的SG分析题意分析简单的nim 博弈 博弈论快速入门代码总览//#include //using namespace std;////int main()//{// ... 阅读全文
posted @ 2017-08-07 00:22 pengwill 阅读(123) 评论(0) 推荐(0) 编辑
摘要: HDU.1850 Being a Good Boy in Spring Festival (博弈论 尼姆博弈)题意分析简单的nim 博弈 博弈论快速入门代码总览#include #define nmax 105using namespace std;int a[nmax];int m... 阅读全文
posted @ 2017-08-07 00:19 pengwill 阅读(153) 评论(0) 推荐(0) 编辑
摘要: POJ.1067 取石子游戏 (博弈论 威佐夫博弈)题意分析简单的威佐夫博弈 博弈论快速入门代码总览#include #include #include using namespace std;int main(){ int n,m; while(scanf("%d %d... 阅读全文
posted @ 2017-08-07 00:16 pengwill 阅读(106) 评论(0) 推荐(0) 编辑
摘要: HDU.2516 取石子游戏 (博弈论 斐波那契博弈)题意分析简单的斐波那契博弈 博弈论快速入门代码总览#include #define nmax 51using namespace std;int main(){ int fib[nmax]; fib[1] = fib[... 阅读全文
posted @ 2017-08-07 00:14 pengwill 阅读(223) 评论(0) 推荐(0) 编辑
摘要: HDU.2147 kiki’s game (博弈论 PN分析)题意分析简单的PN分析 博弈论快速入门代码总览#include using namespace std;int main(){ int n,m; while(scanf("%d %d",&n,&m) != EO... 阅读全文
posted @ 2017-08-07 00:11 pengwill 阅读(161) 评论(0) 推荐(0) 编辑