题目
文章平均质量分 78
JerryDung
OIER
展开
-
[wc2013]糖果公园
树上莫队算法:#include #include #include #include #include #include typedef long long int64;typedef int (*cmp_t) (const void *, const void *);#ifdef WIN32#define fmt64 "%I64d"#else#define fmt6原创 2013-04-13 14:25:54 · 2485 阅读 · 0 评论 -
[The 2011 ACM-ICPC ACRC]G.GRE Words
补充一下:这个东西貌似叫做fail树,也叫后缀指针树,是自动机很重要的东西。题意:给定一张包含 N 个单词的表,每个单词有个价值 W。要求从中选出一个子序列使得其中的每个单词是后一个单词的子串,最大化子序列中 W 的和。显然有f[i] = max(f[j] + w[i]), j 将方程化为f[i] = max(f[j] + w[i]), j > i 且串i包含于串j。接着可以考虑用线段原创 2013-03-04 15:51:45 · 814 阅读 · 2 评论 -
贴一个划分树套主席树
题目大意:给一个每行每列有且只有一个元素的矩阵,每次询问(l, r, a, b, k),意义为第l到r行中元素的位置排名第a到b中元素的第k大值。一开始yy了一个分块,由于询问有50w级别,被卡到30s才出解。。。此题要在区间ath,bth上再维护一个k大值,因此目测只有O(logn)的区间kth才可以过。。。众所周知,静态区间kth能达到O(logn)per operation的有主原创 2013-03-07 20:10:17 · 1492 阅读 · 0 评论 -
[sdoi2010]古代猪文
写这道题首先srO qw。。。。题目就不贴了。。。大意:求 (G^(Σd|n C(n, d))) mod M。首先发现模是一个质数,所以根据费马小定理可知指数只需模模减一即可。然后又发现模减一太大,而且不是质数。。。然后发现质因子分解后都是比较小的数字。。果断中国剩余定理合并啊。。。然后记得lyp讲过什么n的正约数个数均摊是O(logn)级的。。。果断暴枚约数啊。。。然后是组合数取原创 2013-02-12 10:41:29 · 1636 阅读 · 1 评论 -
[SHOI2008]cactus仙人掌图 (tarjan + dp)
Description如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3,2,1,6,5,4)、(7,8,9,10,2,3,7)以及(4,3,7,8,9,10,2,1,6,5,原创 2013-01-06 20:35:45 · 1816 阅读 · 2 评论 -
spoj qtree4 边分治
题目大意:树上白点最长距离。。。修改点颜色。。。大致做法就是边分治,边的两边维护最长距离记子边答案,一路更新,一次操作 O(logn * logn) (堆和树高)。。。写一写这种题真心锻炼代码能力。。。各种大常数不然调试不能。。。lyp 把 kAc 卡成 WA30 的神级数据都可以过,但是始终交不过 spoj。。。期待有更新。。。#include #include #inc原创 2013-01-04 19:38:10 · 2030 阅读 · 0 评论 -
[ZJOI2008]树的统计Count
第一道 query on a tree 类的题目,帖个代码吧。LCT 果断被虐爆了。。。不知多少版去了。。。#include #include #include #include using namespace std;#include #define maxn 30005#define not_root(p) (p->f != null && (p == p->f->c原创 2012-12-31 09:45:13 · 1186 阅读 · 1 评论 -
[JSOI2008]魔兽地图DotR tree_dp
DescriptionDotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Ancients) Allstars。DotR里面的英雄只有一个属性——力量。他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装备的原创 2012-12-27 15:53:14 · 2102 阅读 · 3 评论 -
[HNOI2008]明明的烦恼 树的 prufer 编码
Description自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树?Input第一行为N(0 < N < = 1000),接下来N行,第i+1行给出第i个节点的度数Di,如果对度数不要求,则输入-1Output一个整数,表示不同的满足要求的树的个数,无解输出0这道题如果知原创 2012-12-13 15:25:58 · 876 阅读 · 2 评论 -
[计算几何][SHOI2008]安全的航线flight
Description在设计航线的时候,安全是一个很重要的问题。首先,最重要的是应采取一切措施确保飞行不会发生任何事故,但同时也需要做好最坏的打算,一旦事故发生,就要确保乘客有尽量高的生还几率。当飞机迫降到海上的时候,最近的陆地就是一个关键的因素。航线中最危险的地方就是距离最近的陆地最远的地方,我们称这种点为这条航线“孤地点”。孤地点到最近陆地的距离被称为“孤地距离”。作为航空公司的高级顾问,原创 2012-12-11 13:11:34 · 1799 阅读 · 3 评论 -
两侧覆盖问题解
线段树 + 生成树染色,标准O(nlogn),再也不用担心会被卡了。。。#include #include #include #include /*#include #include #include #include #include #include #include #include */#include using namespace std;#ifd原创 2013-02-25 13:22:18 · 1029 阅读 · 2 评论 -
[bzoj2820] yy的gcd
题意:给定整数N,求11 lhc的优化暴力暂不予讨论。推导如下:首先对于 1 <= x <= N, 1 <= y 令f(k) 表示上述范围内满足 gcd(i, j) = tk 的方案数(t为任意正整数),令min为min(N, M), n表示不超过min的最大元素的下标,易有f(k) = (N div k) * (M div原创 2013-02-14 23:58:53 · 1528 阅读 · 1 评论 -
[bzoj1488][hnoi2009]同构图
题意:求n个点的图的本质不同的方案数。首先考虑n个点有n!种置换,而由点置换引起的边置换是一一对应的。然后对于点置换,易有循环节完全相等的置换相互等价,而其方案数为n的整数拆分,对于数据范围可以接受。对于每一类等价置换,首先考虑循环节的位置,有n!/Πi=1 to m l[i]!种方案,其中m为循环节数,l为循环节长度。然后考虑对于每一个循环节本身可以有的方案数,在原创 2013-02-18 23:10:08 · 1418 阅读 · 1 评论 -
zjoi2013day1
k大数查询(线段树套主席树):#include #include #include #include #include #include #define REP(i, n) for (i = 0; i < (n); ++i)#define int64 long long#define oo 0x13131313#define maxn 50005#define原创 2013-05-01 19:29:56 · 1253 阅读 · 0 评论 -
[noi2008]志愿者招募
#include #include #include #include #include #include #define uns unsigned#define int64 long long#ifdef WIN32#define fmt64 "%I64d"#else#define fmt64 "%lld"#endif#define oo 0x13131313#d原创 2013-05-06 21:38:14 · 1163 阅读 · 0 评论 -
hnoi2013
match和walk当场AC,travel不会,所以不贴了~clear:#include #include #include #include #include #include #define uns unsigned#define int64 long long#ifdef WIN32#define fmt64 "%I64d"#else#define fmt6原创 2013-05-02 14:56:51 · 1253 阅读 · 0 评论 -
[zjoi2008]Risk
原来觉得写得太丑,于是删了,但现在又不会恢复,于是又发了一遍。。。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #ifdef WIN32#原创 2013-05-01 18:15:33 · 1290 阅读 · 0 评论 -
wordcraft(陈高远)
#include #include #include #include #include #include #include #include #include #include #ifdef WIN32#define fmt64 "%I64d"#else#define fmt64 "%lld"#endif#define PI M_PI#define oo 0x13原创 2013-05-01 22:10:15 · 1331 阅读 · 0 评论 -
[wc2013]平面图
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define UNS unsigned#define int64 long long#ifdef WIN32#原创 2013-05-01 18:16:16 · 1614 阅读 · 0 评论 -
数论之神 god of number theory
#include #include #include #include #include #include #include #define uns unsigned#define int64 long long#ifdef WIN32#define fmt64 "%I64d"#else#define fmt64 "%lld"#endif#define oo 0x13原创 2013-04-29 23:22:01 · 1171 阅读 · 0 评论 -
JZPKIL
#include #include #include #define int64 long long#ifdef WIN32#define fmt64 "%I64d"#else#define fmt64 "%lld"#endif#define M 3010#define P 1000000007LLusing namespace std;double sum;boo原创 2013-04-26 20:08:19 · 1248 阅读 · 0 评论 -
[ctsc2012] cheat
#include #include #include #include #include #include #include #include #include #include #ifdef WIN32#define fmt64 "%I64d"#else#define fmt64 "%lld"#endif#define oo 0x13131313using n原创 2013-03-23 22:46:13 · 851 阅读 · 0 评论 -
[斜率优化] 特别行动队 commando
特别行动队【问题描述】你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i, i + 1, …, i + k)的序列。编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始战斗力 x 为队内士兵初始战斗力之和,即 x = xi + xi+1 + … + xi+k。通原创 2012-10-18 19:10:48 · 11414 阅读 · 1 评论 -
[NOI2005] 维护数列 sequence
后来加的说明:这个代码版本奇丑无比。。。。题目详见NOI官方网站http://download.noi.cn/T/noi/noi2005A.pdf 第二题。这道题令我调试得很痛苦。任何一个小错误即使对拍出来也很难找到,因为太繁琐了。题目要求对一个序列进维护,但是要求添加和删除区间。显然这里线段树就不能用了,只能用splay。好像也可以用块状链表做,但是据说会非常非常麻烦。我们这样来原创 2012-08-24 13:22:50 · 1025 阅读 · 0 评论 -
POJ 2155 二维线段树(压位水过)
题目就不贴了。0 - 1 矩阵,修改 + 询问。看 ccl 写了一个二维线段树,好像时间被暴虐了 (1100 ms 吧)。。。于是无聊写了一下。。。看到 0 - 1 矩阵,马上想到压位。。。然后对于每一位建树状数组。。。相当于分块树状数组了。。。然后用树状数组做差分前缀和。。。每次都是 O(lgn) 的。。。相当于我的回答是 O(lgn) 的,而修改是 O(n * lgn * 10原创 2012-12-07 22:49:52 · 1223 阅读 · 4 评论 -
[HNOI 2010] 平面图判定
平面图判定(程序文件名:planar.exe)100 分,运行时限:1s若能将无向图 G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称 G 是平面图。判定一个图是否为平面图的问题是图论中的一个重要问题。现在假设你要判定的是一类特殊的图,图中存在一个包含所有顶点的环,即存在哈密顿回路。【输入格式】(input.txt)从文件input.txt中读入数据,输入文件第一行是一个正整原创 2012-10-19 20:41:18 · 1875 阅读 · 1 评论 -
[DLX] [NOIP2009] 靶形数独
终于写完了这道题。我所用的方法是 DLX,即 Dancing Links X algorithm。这是一个如何的算法呢?其所用即:O(1) 恢复链表,完成搜索剪枝。接下来看“精确覆盖”问题:对于一个 01 矩阵,选择若干行,使得矩阵的每一列都有且仅有一个 1。怎么做?很显然这是 NP 问题,方法只有搜索。而在搜索算法中,有一种专为此而设的算法,即 Dancing Links X。原创 2012-09-23 10:57:59 · 1346 阅读 · 0 评论 -
[带权并查集] poj 1733 Parity game
所做原题又是黑秋哥的,所以我不贴了。细数所犯的脑残错误:1.哈希表就用边名作映射就可以了,不用再开一倍的空间。。。2.合并时异或值一定要先计算一下!!。。。。顺便说一句,我没有计算异或值,直接用的合并时的关系进行赋值,样例都没过竟然得了 85 分,天理何在。。。总结:上次就是错了这里,这次还不记得么。。。。。。。Code :#include #includ原创 2012-09-29 14:26:21 · 540 阅读 · 1 评论 -
[分块处理] Color
Task Color【题目描述】 给定一个长度为N的颜色序列C,对于该序列中的任意一个元素Ci,都有1<=Ci<=M。对于一种颜色ColorK来说,区间[L,R]内的权值定义为这种颜色在该区间中出现的次数的平方,即区间[L,R]内中满足Ci=ColorK的元素个数的平方。接下来给出Q个询问,询问区间[L,R]内颜色[a,b]的权值总和。【输入数据】第1行三个整数N,M,Q。分别代表序原创 2012-10-16 16:34:12 · 1051 阅读 · 1 评论 -
calc 计算 题解(矩阵乘法优化动态规划)
4计算 calc4.1问题描述求满足以下条件的数 x 的个数模 m : n 位数 各位数字不大于 k x ≡ p (mod d)4.2输入格式一行 5 个数:k,n,d,p,m 。4.3输出格式一行一个数,表示个数模 m 。4.4样例输入5 4 3 1 1000074.5样例输出2084.6数据规模对于 30% 的数据:n ≤ 5对于 70% 的数原创 2012-09-25 21:35:16 · 1071 阅读 · 1 评论 -
[迭代加深 A *] Palamaze (皇宫VS迷宫)
皇宫VS迷宫(palamaze)问题描述 FISH社会还是封建制度,皇帝是最高统治者,皇宫作为皇帝吃喝完乐的场所,警卫森严,一般人一旦进入,就很难活着出来。与其说它是个皇宫,还不如说他是个迷宫。这个巨大的迷宫花费了无数蠢得要死的FISH的辛勤劳动建成,因此结构极其复杂,而且到处机关重重。首先它是由N*M个格子构成的矩形区域。有的格子是石头,无法穿越(黄色部分);而有的格子是水(白色部分)原创 2012-10-12 16:46:29 · 1092 阅读 · 2 评论 -
组队(最大团)
【问题描述】 小秋秋想出去玩了。。 小秋秋有许多朋友,有一些小秋秋的朋友相互之间也是朋友。。。 小秋秋觉得自己带不是朋友的两个朋友出去玩会出现尴尬。。。(好纠结) 小秋秋想知道自己最多可以带多少朋友出去玩以及带人最多的方案数。。【输入文件】(input.txt) 第一行两个数,n,m分别表示小秋秋的朋友数,以及他们之间相互认识的关系对数。 接下来m行,每原创 2012-10-11 15:11:46 · 795 阅读 · 2 评论 -
[遗传算法]冰与火之歌 (转自 a2520123)
[题目描述]在著名游戏“冰与火之歌”中英雄们亲自参战了!英雄一开始有HPH点生命值与MPH点魔法值,英雄们能够使用不同的技能,你的英雄会三种技能:雷霆之怒、混沌转移和天使之心。英雄要打一群怪兽,每只怪兽一开始有HPM点生命值,这一群怪兽一开始有NM只,它们的总生命值就有HPM×NM点,随着战斗的进行,怪兽群的总生命值减少。假设当前怪兽群有H点总生命值,那么还存活的怪兽个数为H/HPM取上整。转载 2012-10-09 22:08:09 · 1177 阅读 · 2 评论 -
排序 解题报告 (偏序集 最小反链覆盖)
标题上所说的偏序集(详见维基百科偏序集或我所转的那篇博文)什么的是今天 qw 告我的,我觉得非常厉害,Orz 一下。。题目描述 有N个数A1..AN,已知一些它们之间的大小关系,形如某个数不小于某个数。Your Task 把这N个数分成尽量少个集合,使得每个集合内的任意两个数的大小关系都是未知的。输入文件 第一行 N M 表示有N个数,M个大小关系。 接下来M行,每行 i原创 2012-10-04 14:56:45 · 1668 阅读 · 3 评论 -
[统计数对] 题解
A1350. 数对统计 (罗剑桥)时间限制:1.0s 内存限制:256.0MB试题来源 IOI2012中国国家队训练问题描述 你得到了一个由 N 个非负整数构成的序列 A。 你需要回答关于这个序列的 Q 次询问。 每次询问将提供三个整数参数 v,a,b。你需要统计满足以下三个条件的整数 数对(i, j)的数目:1 = v。其中A[k]表示序列A的第k项。输入格式原创 2012-09-16 21:38:39 · 1120 阅读 · 0 评论 -
[DLX] [NOI2005] 智慧珠游戏
具体题目详见 NOI2005 第一试试题。这显然是一个 NP 问题。怎么做呢?答案很明显,搜索。说到搜索,这道题所要求的并不是最优解,也不是方案数,而且数据保证如果有解则只有一组解。然后再对照这个题目:用所有的“智慧珠”来填满棋盘中每一个空。想到了什么?对,精确覆盖模型。用每一个智慧珠和棋盘中的每一空为列,以智慧珠翻转和旋转所得的 60 个形态在每一个位置上的填补为行,即可。顺原创 2012-09-24 19:14:35 · 1218 阅读 · 0 评论 -
[构造] 能量棒 energy
1能量棒 energy1.1题目描述能量棒是一个神奇的东东。它是由若干个能量点组成的。能量点有 2 种类型,这两种类型分别能释放出 1 或 2 的能量。现在,给你一个长为 n 的能量棒,有 q 个询问,每次给定一个 k ,询问是否能从这个能量棒中找到一个连续子段,使得这个子段释放的能量恰好为 k 。1.2输入格式第一行两个数 n,m ,意义见题。接下来一个长为 n 的 1/2原创 2012-10-20 15:34:48 · 1454 阅读 · 3 评论 -
[HNOI 2012] 射箭 archery
射箭(程序文件名:archery.exe)100 分,运行时限:1s沫沫最近在玩一个二维的射箭游戏,如下图 1 所示,这个游戏中的 x 轴在地面,第一象限中有一些竖直线段作为靶子,任意两个靶子都没有公共部分,也不会接触坐标轴。沫沫控制一个位于(0,0)的弓箭手,可以朝 0 至 90°中的任意角度(不包括 0°和 90°),以任意大小的力量射出带有穿透能力的光之箭。由于游戏中没有空气阻力,并且光原创 2012-11-24 15:30:55 · 1069 阅读 · 2 评论 -
[NOI 2003] 文本编辑器 editor
文本编辑器【问题描述】很久很久以前,DOS3.x 的程序员们开始对 EDLIN 感到厌倦。于是,人们开始纷纷改用自己写的文本编辑器......多年之后,出于偶然的机会,小明找到了当时的一个编辑软件。进行了一些简单的测试后,小明惊奇地发现:那个软件每秒能够进行上万次编辑操作(当然,你不能手工进行这样的测试)!于是,小明废寝忘食地想做一个同样的东西出来。你能帮助他吗?为了明确任务目标,小明对原创 2012-11-22 13:10:22 · 1688 阅读 · 1 评论 -
多人背包问题
被虐爆了。。。而且是这种半年前刷过的题目。。。算法是合并两个有序的序列,其他的方程之类与单人背包其实差不多。Code :#include #include #include #include #define swap(a, b, t) ({t _ = (a); (a) = (b); (b) = _;})#define max(a, b) ({int _ = (a), _原创 2012-10-09 15:14:51 · 1293 阅读 · 3 评论