03 2015 档案
摘要:2.7最大公约数问题问题:求两个数的最大公约数。对于该问题:首先映入眼帘的就是两个数n m中寻找一个最小的值。然后从该值遍历到1.一旦 n%i==0&&m%i==0 那么i就是这个最大公约数啦。原理不言而喻。代码就不附上了。(不纳入方法好了)方法1:就是比较经典的欧几里德算法。其中本质上的原理是这样...
阅读全文
摘要:整除性(divisible):引入了代表整除性。 m\n (m|n) 表示m整除n。注意这里的整除。表示的是n = km(k为整数)。在整除性这里。m必须是个正数。也许你可以描述n 是 m 的k倍。这种描述中m完全可以是任何数。而在整除性中的表达m整除n,规定了m必须是个正数。而0没有限制。那么回答...
阅读全文
摘要:比赛的时候刷出来的第一个状态DP。(期间有点没有把握是状态DP呢。)题意:题意还是简单的。K行的方格。之后输入L1~LK 代表每一行方格数。在这些往左紧挨的方格子里填上1~N的数字。 其中右边格子的数值会大于等于左边的格子,下边的格子的数值会大于上边的格子。其中观察一列的数值。会发现一列的数值均...
阅读全文
摘要:POJ 2096Collecting Bugskuangbin大神的题意描述dp求期望逆着递推求解题意:(题意看题目确实比较难道,n和s都要找半天才能找到) 一个软件有s个子系统,会产生n种bug 某人一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的...
阅读全文
摘要:2.3寻找发帖“水王”问题:求在一个ID列表中出现次数超过一半的ID。对于该问题:一个比较直接的想法就是直接统计。统计每个ID出现的次数。然后寻找该数组中最大的数值。从而找出它的ID。统计需要N,并且空间上要2*N(而且这里必须保证ID不能是小数而且ID是连续的)。然后对于寻找最大元素。一种是分治。...
阅读全文
摘要:2.2关于阶乘的一点知识问题1:求 N!末尾有多少个0。问题2:N!中二进制表示中最低位1的位置。首先对于问题1: 对于N!的末尾有多少个0这个问题。要追溯到算术基本定理:算术基本定理:任何一个大于1的自然数N,都可以唯一分解成有限个质数的乘积 N=(P_1^a1)*(P_2^a2)........
阅读全文
摘要:2.1求二进制中1的个数法1:整型数观念。二进制中1在数中的体现,也就是当一个数是奇数时最末位就是1。那么我们可以将一个数判断是否是奇数。如果是就统计加1。并且/2 失去这一位。int count;count = 0;void Count(int num){ while(num) { ...
阅读全文
摘要:即如1~100 中有多少个 2的因子?有些数字是1个该因子。有些数字有2个 有些数字有3个。这就好比产生了重叠。那么该怎么数呢? 1 1 1 1 2 2 1 1 2 -> 1 1 1 1 1 1 把2认为是2个1层叠在一起。然后你可以先...
阅读全文
摘要:棋盘放车问题问题描述:在n*n(n≤20)的方格棋盘上放置n个车,求使它们不能互相攻击的方案总数。问题分析:车子的攻击是直线的上下和左右的。那么我们可以认为是一行一行扫描过来。有dp[i][j]。j表示排列状况 但是根据24点游戏的经验。我们完全可以直接根据排列状况来划分状态。(状态本身就是...
阅读全文
摘要:寻找一个序列的真子集。x&n == x其实也是以上类似的原理。遍历的一个序列的所有可能排列。 也就是说有4个元素。 那么对于1个 对于2个 对于3个 对于4个。这样所有的排列情况列举。比如4个元素。那就是 i = pow(2,5)-1 = 1111;for(x=1;x#include#include...
阅读全文
摘要:怪我比赛的时候想法太过于杂乱了。注重于区域的属性了。甚至还想用状态压缩或者是hash来描述分块的区域。其实我们的可以宏观的角度去审视这个问题。就是求分区的问题。那么我们完全可以标记边框的值为1。即不可行走。那么我们扫描整片区域。统计一个区域 。就用DFS把这整片区域给覆盖。然后继续扫描下去。离散化在...
阅读全文
摘要:1 #include 2 #include 3 #include //queue 4 #include 5 using namespace std; 6 stack sck1; //cal 7 stack sck2; //num 8 char ss[20]; 9 void tra...
阅读全文
摘要:单点更新: 这里就能开始说明树的节点可以有 一条线段 一个单点增量 等意义,而非是一个区间。 和传统意义上的实现。在这个问题上。线段树是优化了查询的时间。延长了更新时间。但是平摊下来。线段树优化了不少的时间新技能get!(一):build 时最后的节点可以直接输入。void build(int ...
阅读全文
摘要:Hotel. 区间合并问题。问题描述:N.N个房间。10 61 31 31 31 32 5 51 610个房间区间合并:这类题目会询问区间中满足条件的连续最长区间,所以PushUp的时候需要对左右儿子的区间进行合并这句话。真是十分有道理啊。tree[] 本身记录的是什么呢? 是该点的最长连续区间的数...
阅读全文

浙公网安备 33010602011771号