小G的ACM之路

一个在艰难爬坑的菜鸟

【索引】AOAPC I: Beginning Algorithm Contests (Rujia Liu)

AOAPC I: Beginning Algorithm Contests (Rujia Liu) Volume 0. Getting Started Volume 1. Elementary Problem SolvingVolume 2. Data StructuresVolume 3. B...

2014-08-15 10:58:30

阅读数 1014

评论数 0

hdu 4403 A very hard Aoshu problem(dfs)

题意: 给定一串数字,在这些数字中插入一些‘+’或者’=’ 使得两边相等 思路: 比较简单的dfs问题 首先确定下等于号的位置,然后两边进行dfs。 mymy codecode#include <cstdio> #include <cstring> #incl...

2015-09-25 15:06:47

阅读数 642

评论数 0

hdu 4407 SUM(容斥原理)

题意: 有一个元素为 1~n 的数列AnA_n,有2种操作(最多1000次): 1. 求某段区间 [a,b][a,b] 中与 pp 互质的数的和。 2. 将数列中某个位置元素的值改变。 解析: 刚刚开始的时候想成线段树了,看了题解才明白是用容斥原理来做。 对于操作1,解的...

2015-09-25 14:59:25

阅读数 569

评论数 0

简说期望类问题的解法

近年的acm竞赛中,数学期望问题常有涉及,在以前也常让本人感到很头疼,近来突然开窍,掌握了基本的分析方法,希望对大家有帮助。写得浅薄,可能数学上不够严谨,只供理解。首先,来看下期望有啥基本的公式。对离散型随机变量x,其概率为p,有 E(x)=∑ipixiE(x)=\sum _{ i }^{ }...

2015-09-24 17:40:56

阅读数 1583

评论数 0

hdu 5442 Favorite Donut(kmp+最小表示法)

题意: 有一个lenlen长度的环,问有没有字典序最大长度为lenlen的串在 这个环里。 如果有的话,且只有一个 ,输出其开头的下标(下标从1 开始) 再输出0表示顺时针(从左至右),1 表示逆时针(从右至左) 如果多个,输出开头下标最小的那个。 如果顺时针,逆时针的...

2015-09-24 14:55:44

阅读数 537

评论数 0

hdu 5452 Minimum Cut(树链剖分+差分前缀和)

题意: 给一个无向图和它的一个生成树,要求找到一个最小割,使得有且只有一条生成树上的一条边属于割集。 解析: 因为生成树中只有一条边属于割集,那么割对生成树来说只是分成了两个子树,那么就考虑割生成树上割哪条边是最优的。 首先对生成树进行建树剖,对于每条非树边的两个端点u和v,对 ...

2015-09-22 20:01:11

阅读数 863

评论数 0

hdu 5465 Clarke and puzzle (二维树状数组+nim博弈)

解析: 利用二维树状数组来区间询问异或和,以及单点更新,然后利用nim博弈的结论判断胜负。 mymy codecode#include <cstdio> #include <cstring> #include <algorithm> using namesp...

2015-09-22 18:30:26

阅读数 592

评论数 0

hihocoder 1233 Boxes(bfs+状态压缩+hash表)

题意: 有n个卡槽,放有体积不同的n个空盒子,每次你可以移动一个空盒子到相邻卡槽,但前提是相邻卡槽若已经有空盒子,那么要移动的空盒子体积必须小于已有的空盒子,问要移动多少步才能使得从左到右,每个卡槽空盒子的体积递增。 解析: 状态压缩,用一个longlong longlong的状态表示当前...

2015-09-22 16:36:20

阅读数 502

评论数 0

hihocoder 1228 Mission Impossible 6(模拟文本编辑器)

题意:题目定义了几种操作: L:光标左移,假如已经在最左边则不动 R:光标右移动,假如已经在右边则不动 S:切换模式,先是插入模式,后是覆盖模式 D:删除右边, 或者删除位置C-D B:删除左边 C:复制位置C-C。且两个CC之间不能够存...

2015-09-21 19:00:37

阅读数 814

评论数 2

CodeForces 578C Weakness and Poorness(三分法+最大子段和)

题意: 题目定义了两个变量: poornesspoorness表示一个区间内和的绝对值。 weaknessweakness表示一个所有区间最大的poornesss 题目要求你求一个xx使得 a1 − x, a2 − x, ..., an − xa_1 - x, a_2 ...

2015-09-19 10:17:56

阅读数 1103

评论数 0

hdu 3016 Man Down(线段树区间更新+dp)

题意: 是男人就下100层相信很多人都玩过,这题就是简单的模拟这个游戏。 有nn块木板,每块木板有4个属性,高h(h>0),左边界,右边界,以及掉落在它上面,获得多少生命值,一个人从最高的木板开始往下跳,初始时生命值为100,问最后掉落到地面能获得的生命值最多为多少(如果途中生命值...

2015-09-16 16:55:25

阅读数 581

评论数 0

HDU 2896 病毒侵袭(AC自动机)

题意: 给定几个模式串,看是否出现在主串中,如果出现在主串,输出这些模式串的标号。 解析: AC自动机裸题。 用所给的模式串构建AC自动机,然后用主串去匹配。 将匹配到的结果插入set中,最后输出set。 mymy codecode#include <cstdio>...

2015-09-16 16:32:07

阅读数 337

评论数 0

hdu 3037 Saving Beans(lucas定理模板)

题意: 求在n棵树上摘不超过m颗豆子的方案,结果对p取模。 解析: 题目可以转换成 x1+x2+……+xn=mx_1+x_2+……+x_n=m 有多少组解,m在题中可以取0~m。 利用插板法可以得出 x1+x2+……+xn=mx_1+x_2+……+x_n=m 解的个数为C...

2015-09-16 15:19:04

阅读数 1118

评论数 0

hdu 5384 Danganronpa(AC自动机)

题意: f(A,B)表示:B在A中作为子串出现的次数。 题目给出n个证据,m个子弹 Ai是证据,Bi是子弹,题目问:所有Bi对每个Ai造成的伤害是多少,即每个Bi在Ai中出现的次数总和。 解析: 记得当时多校比赛的时候,我不会AC自动机,用字典树水了一发,没想到过了,昨晚学...

2015-09-16 15:04:46

阅读数 389

评论数 0

hdu 2222 Keywords Search(AC自动机)

题意: 给你很多个单词,然后给你一篇文章,问给出的单词在文章中出现的次数。 解析: 直接套用AC自动机的模板。 注意: 每个单词在目标串中出现的话,只能记为一次。 mymy codecode#include <cstdio> #include <cstring>...

2015-09-16 14:50:13

阅读数 334

评论数 0

hdu 5433 Xiao Ming climbing (BFS+dp)

题意: 小明因为受到大魔王的诅咒,被困到了一座荒无人烟的山上并无法脱离。这座山很奇怪: 这座山的底面是矩形的,而且矩形的每一小块都有一个特定的坐标(x,y)(x,y)和一个高度HH。 为了逃离这座山,小明必须找到大魔王,并消灭它以消除诅咒。 小明一开始有一个斗志值kk,如果斗...

2015-09-16 14:42:59

阅读数 424

评论数 0

hdu 5446 Unknown Treasure(Lucas定理+中国剩余定理)

题意:求C(n,m)%(∏pi)C(n, m) \% (∏p_i)。pip_i小于10510^5,mm,nn,以及答案都是101810^{18}。解析:先使用LucasLucas定理求出对于每个pip_i,C(n,m)%piC(n, m) \% p_i的值。 再使用中国剩余定理对模数和余数求解即...

2015-09-14 21:10:18

阅读数 970

评论数 1

hdu 5444 Elven Postman(二叉搜索树)

题意: 给出一颗二叉树的先序遍历,默认的中序遍历是1、2……n。给出q个询问,询问从根节点出发到某个点的路径。 解析: 就是构建一棵二叉搜索树,然后在二叉搜索树上面查找要查询的值,并输出路径。 mymy codecode#include <cstdio> #include &l...

2015-09-14 18:53:41

阅读数 510

评论数 0

hdu 5441 Travel(并查集+二分)

题意: 一个nn个点的无向图,给出m条边的边权,给出q次询问,每次给出一个值,求用到所有边权不大于这个值的边的情况下,能够互相到达的点对的个数。 解析: 首先我们对边按照边权从小到大排序。 构造一个前缀和数组sum[n]sum[n],表示添加到第nn条边,有多小条能互相到达的点对数。...

2015-09-13 20:04:27

阅读数 482

评论数 0

hdu 5438 Ponds(线段树+dfs)

题意: 有n个点,m条边,每个点都有权值。 然后开始删除点,删点规则是如果这个点连接其他点的数量小于2,那么这个点可以删除。 如果删除了某些点产生了其他可删除的点也将其删除。 直到删除到不能为止。问最后剩余的联通块中,点的数量是奇数的联通块中的点的权值和是多少。 解析: ...

2015-09-13 19:26:23

阅读数 424

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭