自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YueLing's Blog

coding是一门艺术 代码风格和逻辑的美

  • 博客(80)
  • 收藏
  • 关注

原创 高精度取余

关于 a%b = c….r,b如果是负数,等同于正数。如果a是负数,等同于正数,但r为负。

2016-08-31 21:04:53 2365

原创 LightOJ 1220 Mysterious Bacteria

数论中常用质因数分解,要从数的本质变化出发思考问题。p即是e[]的最大公因数,因为每一项都可以除这个最大公因数。负数的最大公因数不能是偶数,提前把2除尽。-2147483648用int取相反数还是-2147483648,因为会溢出,应该用longlong。

2016-08-31 19:05:39 336

原创 LightOJ 1234 Harmonic Number 分布式打表

分布均匀的打表可以有效提高速度。输出使用%f,输入使用%lf。

2016-08-30 23:20:38 472

原创 LightOJ1236 Pairs Forming LCM 素因子分解

1. 约数,倍数,质因数等都应该联想素因子分解。2. 要考虑哪些情况应该排除,哪些不应该排除,细节的处理。3. 这道题当一对数相等时不判重,而只有一对这样的数,就是(n,n)。

2016-08-30 18:24:27 742

原创 LightOJ1282 Leading and Trailing 大数取首尾

1. 任何一个数都可以转换为10^k,k是一个小数,k的整数部分决定了这个数的位数,小数部分决定了每一位的值,根据此可以快速找到前三位。2. 通过快速幂取模可以快速找到后三位。

2016-08-28 21:10:04 602

原创 LightOJ1336 Sigma Function 素因子分解深入理解

1. 素数的次数的任意组合小于等于n的个数等于n。2. 注意解的结构

2016-08-25 22:42:42 491

原创 LightOJ1341 Aladdin and the Flying Carpet 约数的个数

利用素因子分解可以求出来共有多少个约数。

2016-08-24 01:09:42 538

原创 LightOJ 1370 Bi-shoe and Phi-shoe 欧拉函数

相邻两个素数的欧拉函数值是区间内的最大值。

2016-08-22 18:36:27 455

原创 #368 C. Pythagorean Triples 勾股数

1. 勾股数奇偶奇。2. 勾股公式。

2016-08-22 11:57:09 799

原创 组合数学 知识体系梳理

排列组合

2016-08-16 15:22:19 658

原创 排列组合模板

求排列组合数。

2016-08-16 15:04:04 1032

原创 数论 知识概念梳理

数论知识体系

2016-08-16 14:26:32 879 7

原创 n元一次不定方程 模板

1. 设方程a1x1 + a2x2 + a3x3 + a4x4 = c,所有系数的最大公因数应该整除c。2. 将方程转换为方程组递归求解,a1x1 + a2x2 = d2t2,d2t2 + a3x3 = d3t3,d3t3 + a4x4 = c.3. 逐级替换。

2016-08-16 13:32:18 2177

原创 梅森素数 乘法换加法取模计算 模板

1. 梅森数,梅森素数。2. Lucas-Lehmer判定法.。3. 为了乘法溢出可以采用乘法换加法。4. 前7位梅森素数值。

2016-08-08 16:56:26 1712

原创 素因子分解 模板

唯一分解定理的模板

2016-08-08 00:40:34 1151 5

原创 n皇后

1. 利用x+y标记副对角线,利用x-y标记主对角线,+n防止为负2. G存图,n表示n皇后,ans是最后的结果,n > 0

2016-08-07 01:48:52 888

原创 log函数的表达-求一个数的位数

1. C语言的两个log函数。2. 如何求一个数的位数。

2016-08-07 01:48:19 4459

原创 hdu4821 string 字符串 哈希处理

1. 常用哈希函数,seed=131,初始化阶数组,方便等阶后比较,初始化字符串,比较时只需要看差值。2. 逆向初始化字符串,使当前元素在差值中。3. 利用集合的大小是否符合要求判断是否有重复。

2016-08-07 01:48:13 661

原创 hdu1576 扩展欧几里得

1. 欧几里得的应用。2. 欧几里得算法详见欧几里得模板。

2016-08-07 01:47:57 500

原创 atoi itoa 高效实现

atoi : sscanf(char *str,"%d",&num);itoa : sprintf(char *str,"%d",num);

2016-08-07 01:47:45 3805

转载 acm经历和经验

我看的一篇非常好的经验之谈,于是转载了过来,关于时间安排等。

2016-08-07 01:47:29 2230

转载 ACM-ICPC 竞赛算法题目类型

acm相关的所需要掌握的算法分类

2016-08-07 01:47:12 1418

原创 0-1背包 多阶段决策

1. 根据输入的每一个物品,来判断影响的每一个状态,2. 状态是分阶段的,阶段就是每一个物品,和每一个状态。

2016-08-07 01:46:52 474

原创 uva1618 分步枚举优化

1. 不需要获得所有情况,存在性问题等,遇到多次枚举例如 n^4这种,可以用多次n^2得到大小关系,优化为常数级获取关系,然后依次n^2枚举+常数获取关系,复杂度仍为n^2。2. 此题:存在性问题,有即可,利用两次遍历分别找到最值(每一点的最优解)并存在数组中,最后一次遍历直接调用数组中的最值,解决存在性问题,因为最值存在则存在。

2016-08-06 11:58:30 909

原创 uva1602 无方向位置的姿势判重

1. 存储一个姿势,不针对它的方向和位置。涉及三个动作:翻转,移动,旋转。2. 利用标准化使位置固定到一个相对位置上。3. 利用三个动作判重。4. 利用集合来无重复的保存解,5. 判断解的范围进行取舍。

2016-08-06 11:58:16 1061

原创 uva1599 bfs双向遍历 利用数组保存中间结果

1. bfs双向遍历。 a. 双向遍历可以保存多条最短路。 b. 无权无向图,还可以提升bfs效率,是单向bfs的2倍。2. 利用额外的数组保存值。3. 反向遍历输出路径。

2016-08-06 11:58:07 2322

原创 uva1572 Self-Assembly 拓扑排序 提炼有向图模型

1. 拓扑排序2. 利用2n,2n+1存储a+,a-这类型增加的状态。3. 有向图模型的提炼。4. 2n+1^1 = 2n的转换

2016-08-06 11:57:41 459

原创 uva1451 平均值 数形结合

1. 数形结合是一种便于分析的手段,可用于表达多个变量间的函数关系.2. 例如利用斜率来表示平均数(构造两个变量和第三个变量的关系)。3. 比较斜率时将除法转换为乘法。4. 通过i和i+1 j-2和j-1 令j-i > 1保证了在不越界的情况下充分剪枝。

2016-08-06 11:57:05 1344

原创 uva1412 基金管理

1. 复杂状态做映射。2. 分阶段对每种情况的每种决策做遍历。3. 刷表要好的初始化。4. double数组不能用memset。5. 递归输出可以利用保存的之前下标并从前到后。

2016-08-06 11:56:50 1372

原创 uva1374 快速幂计算 迭代加深优先逼近

1. 迭代加深优先递归时先逼近可能值,例如先加法后减法。2. 个数少时剪枝效果不好可以打表。3. 一层一层的dfs

2016-08-06 11:56:38 467

原创 uva1354 天平难题 位枚举子集

1. &表示交集,^表示差集,|表示并集。2. 利用交集是否为0还可以判断是否存在包含关系。3. 递归枚举

2016-08-06 11:56:19 1727

原创 uva1347 旅行 不回头旅行商

1. 多路径同起步。2. 找到解决问题的办法后再找合适的状态和决策,然后状态转换。3. 不回头,所以可以依次状态转换,若可以回头,则转变为旅行商问题。

2016-08-06 11:56:04 756 1

原创 uva1343 旋转游戏

1. 迭代加深```if(d+h() > maxd)//若true,则表示d次数太大,已经无法满足最少h()次的要求。 return false;```2. 利用两个数组,一个连续数组存值,另一个数组标识位置。3. 剪枝:状态合并,分类讨论。 分解目标个数,分别求解,使得过程中的状态得以合并。过程中状态复杂度往往不是线性,目标个数分解是线性,所以效率得以大幅度提升。

2016-08-06 11:55:48 471

原创 uva1252 20个问题

1. 遇到集合个数太多的情况想办法转换表达方式,再用数组存储,相当于用状态做一个映射。2. 需要得到第几个的时候就不太好s++这样枚举,适合多次枚举第几个数,再判断是否曾经枚举过。3. 分阶段的思想运用时如果需要利用阶段的状态,则更适合利用二进制枚举状态,以方便状态的表示,递归i>>i+1这种不方便表示。4. 根据题意注意题目中什么时候要用max,什么时候要用min。5. 多次枚举每一位可以得到结果,

2016-08-06 11:55:35 1312

原创 UVA1025 固定终点二维dp

1. 状态,决策,转换。2. 遍历每一个状态并记忆化搜索。3. 复杂度为 状态*决策。4. 递推过程找好大层次,比如这道题的时间,可以利用上一层的结果。5. 固定终点问题常以到终点的值为主状态。

2016-08-06 11:55:30 454

原创 uva572 油田 连通块遍历

代码的简洁性需要注意小技巧:1. 方向数组。2. 外面包一层空气防止判断边界。3. 更改原来的数组的状态而不需要重新建立vis数组(这样会破坏原始数据,是一个不好的习惯,但是这样很灵活。)

2016-08-06 11:55:07 828

原创 uva437 DAG最长路 节点映射间接表达

1. DAG最长路的模板记忆化搜索。2. 当图节点是结构体时,利用结构体数组的下标映射到图中。

2016-08-06 11:54:46 518

原创 uva208 剪枝 连通块儿的判定

1. 图不一定是连通的,某些题型下要提前进行判断,进行剪枝。2. 递归遍历标记同一个连通块儿。3. 从结果遍历判断和结果在同一个连通块儿的子集。4. 子集遍历:核心在于递归前的cursor的++,和递归后cursor的--。

2016-08-06 11:54:36 559

原创 hdu 2224 The shortest path 单向旅行商问题

Problem:有n个节点,一个人去访问这n个节点,要从最左边的节点开始,经过这n个节点后再返回源点,在达到最右边之前只能向右走,同理回来时只能向左走,同一个节点只能经过一次,问最短路是多少?

2016-08-06 11:54:25 712

原创 poj3159 candies dijkstra

1. dijkstra 算法,利用优先队列优化,找到最近的点。2. 添加vis数组剪枝。3. 优先队列重载运算符时,右边的值优先级大放在前,所以 a > b表示从小到大排列。

2016-08-06 11:54:13 475

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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