08 2017 档案

摘要: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 阅读(98) 评论(0) 推荐(0)
摘要:BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 )题意分析有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a... 阅读全文
posted @ 2017-08-14 10:55 pengwill 阅读(180) 评论(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 阅读(172) 评论(0) 推荐(0)
摘要:BZOJ.1036 [ZJOI2008]树的统计Count (树链剖分 线段树维护和与最值)题意分析(题目图片来自于 这里)第一道树链剖分的题目,谈一下自己的理解。 树链剖分能解决的问题是,题目中反复要求对链上信息进行修改和查询。如果依旧采取用dfs序的方法,会发现不适用,原因是d... 阅读全文
posted @ 2017-08-13 11:28 pengwill 阅读(179) 评论(0) 推荐(0)
摘要:HDU.5692 Snacks ( DFS序 线段树维护最大值 )题意分析给出一颗树,节点标号为0-n,每个节点有一定权值,并且规定0号为根节点。有两种操作:操作一为询问,给出一个节点x,求从0号节点开始到x节点,所能经过的路径的权值最大为多少;操作二为修改,给出一个节点x和值val... 阅读全文
posted @ 2017-08-12 14:58 pengwill 阅读(212) 评论(0) 推荐(0)
摘要:POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)题意分析卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果。卡卡很喜欢苹果。树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果。卡卡想要了解某一个子树上一共结了多少苹果。现在... 阅读全文
posted @ 2017-08-11 23:55 pengwill 阅读(246) 评论(0) 推荐(0)
摘要:洛谷 3379 最近公共祖先(LCA 倍增)题意分析裸的板子题,但是注意这题n上限50w,我用的边表,所以要开到100w才能过,一开始re了两发,发现这个问题了。代码总览#include #include #include #include #define nmax 1000100#... 阅读全文
posted @ 2017-08-11 19:54 pengwill 阅读(183) 评论(0) 推荐(0)
摘要:CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先)题意分析小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上。有一天,他们想爬到一个节点上去搞基,但是作为两只虫子,他们不想花费太多精力。已知从某个节点爬到其... 阅读全文
posted @ 2017-08-11 19:34 pengwill 阅读(153) 评论(0) 推荐(0)
摘要:CodeVs.1036 商务旅行 ( LCA 最近公共祖先 )题意分析某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花... 阅读全文
posted @ 2017-08-11 19:31 pengwill 阅读(135) 评论(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 阅读(160) 评论(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 阅读(102) 评论(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 阅读(524) 评论(0) 推荐(1)
摘要:UVA.10791 Minimum Sum LCM (唯一分解定理)题意分析也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断。代码总览#include #include #include #include #define ... 阅读全文
posted @ 2017-08-10 09:12 pengwill 阅读(137) 评论(0) 推荐(0)
摘要:UVA.10375 Choose and divide (唯一分解定理)题意分析首先写出组合数的公式,然后利用唯一分解定理分解每一项,若是在分子,则加一,在分母减一,最后根据分解的结果计算即可。代码总览#include #include #include #include #inc... 阅读全文
posted @ 2017-08-10 09:09 pengwill 阅读(131) 评论(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 阅读(143) 评论(0) 推荐(0)
摘要:一、唯一分解定理基本描述任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积.理解换句话说,它来指导我们分解质因数。 想想在分解质因数的时候,我们使用的是短除法,先试除2,然后试除3,其实就是用到的唯一分解定理。代码找出num的所有质因数void findf... 阅读全文
posted @ 2017-08-09 13:56 pengwill 阅读(267) 评论(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 阅读(164) 评论(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 阅读(164) 评论(0) 推荐(0)
摘要:UVA.11806 Cheerleaders (组合数学 容斥原理 二进制枚举)题意分析给出n*m的矩形格子,给出k个点,每个格子里面可以放一个点。现在要求格子的最外围一圈的每行每列,至少要放一个点,并且放在角上的点,同时算那个角所在的行和所在的列。不允许剩下点,求总共的方案数量,结... 阅读全文
posted @ 2017-08-07 16:34 pengwill 阅读(176) 评论(0) 推荐(0)
摘要:一、容斥定理基本描述在计数时,必须不重不漏。为了使得重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后把计数时重复计算的数目排斥出去,使得计算的结果既无重复也无遗漏,这种计数的方法称为容斥原理。... 阅读全文
posted @ 2017-08-07 10:05 pengwill 阅读(2417) 评论(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 阅读(128) 评论(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 阅读(160) 评论(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 阅读(111) 评论(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 阅读(233) 评论(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)
摘要:HDU.2149 Public Sale (博弈论 巴什博弈)题意分析巴什博奕裸题 博弈论快速入门代码总览#include using namespace std;int main(){ int n,m,s,r; while(scanf("%d %d",&m,&n) !=... 阅读全文
posted @ 2017-08-07 00:09 pengwill 阅读(120) 评论(0) 推荐(0)
摘要:HDU.1846 Brave Game (博弈论 巴什博弈)题意分析巴什博奕裸题 博弈论快速入门代码总览include using namespace std;int main(){ int t; scanf("%d",&t); while(t--){ ... 阅读全文
posted @ 2017-08-07 00:06 pengwill 阅读(116) 评论(0) 推荐(0)
摘要:一、巴什博奕(Bash Game)基本描述:只有一堆n个石子,两个人轮流从这堆石子中取石子,规定每次至少取一个,最多取m个,最后取完的人获胜。分析:当n <= m的时候,显然先手获胜,因为一次就能取完。当n = m+1 的时候,由于先手最多取走m个,无论其取走多少个,剩下的后手均可以... 阅读全文
posted @ 2017-08-06 23:49 pengwill 阅读(504) 评论(0) 推荐(0)
摘要:HUD.2795 Billboard ( 线段树 区间最值 单点更新 单点查询 建树技巧)题意分析题目大意:一个h*w的公告牌,要在其上贴公告。输入的是1*wi的w值,这些是公告的尺寸。 贴公告要满足的条件: 1. 尽量往上,同一高度尽量靠左。 2. 求第n个广告所在的行数。 3. ... 阅读全文
posted @ 2017-08-05 13:02 pengwill 阅读(158) 评论(0) 推荐(0)
摘要:POJ.2528 Mayor’s posters (线段树 区间更新 区间查询 离散化)题意分析贴海报,新的海报能覆盖在旧的海报上面,最后贴完了,求问能看见几张海报。最多有10000张海报,海报左右坐标范围不超过10000000。 一看见10000000肯定就要离散化了,因为建树肯定... 阅读全文
posted @ 2017-08-04 17:37 pengwill 阅读(114) 评论(0) 推荐(0)
摘要:POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询)题意分析注意一下懒惰标记,数据部分和更新时的数字都要是long long ,别的没什么大坑。代码总览#include #include #include #define nma... 阅读全文
posted @ 2017-08-04 09:51 pengwill 阅读(125) 评论(0) 推荐(0)
摘要:HDU.1556 Color the ball (线段树 区间更新 单点查询)题意分析注意一下pushdown 和 pushup 模板类的题还真不能自己套啊,手写一遍才行代码总览#include #define nmax 200000using namespace std;struc... 阅读全文
posted @ 2017-08-04 09:18 pengwill 阅读(153) 评论(0) 推荐(0)
摘要:HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)题意分析加深理解,重写一遍代码总览#include #define nmax 100000using namespace std;struct Tree{ int l,r,val; int lazy; int... 阅读全文
posted @ 2017-08-04 09:16 pengwill 阅读(103) 评论(0) 推荐(0)
摘要:POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)题意分析前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里离散化 有些数据本身很大,自身无法作为数组的下标保存对应的属性。 如果这时只是需要这堆数据的相对属性,... 阅读全文
posted @ 2017-08-02 21:09 pengwill 阅读(143) 评论(0) 推荐(0)
摘要:HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)题意分析给出n个数的序列,a1,a2,a3……an,ai∈[0,n-1],求环序列中逆序对最少的个数。前置技能 环序列 还 线段树的逆序对求法 逆序对:ai > aj 且 i ... 阅读全文
posted @ 2017-08-02 19:44 pengwill 阅读(113) 评论(0) 推荐(0)
摘要:HDU.1689 Just a Hook (线段树 区间替换 区间总和)题意分析一开始叶子节点均为1,操作为将[L,R]区间全部替换成C,求总区间[1,N]和线段树维护区间和 。 建树的时候初始化为1,更新区间时候放懒惰标记,下推标记更新区间和。 由于是替换,不是累加,所以更新的时... 阅读全文
posted @ 2017-08-02 17:44 pengwill 阅读(117) 评论(0) 推荐(0)