08 2014 档案
摘要:05年的题目绝对是自2000年以来难度最大的。后三题的难度系数分别为0.2、0.2、0.3,而前面几年的题目中每年最多只出现一道难度系数为0.2的题目,其难度可见一斑。强烈推荐这个 PPT,每道题都讲得很清楚:http://wenku.baidu.com/view/878beb64783e0912a...
阅读全文
摘要:第一题:笨小猴模拟第二题:火柴棒等式搜索深搜不用说,确定出两个加数然后判断能否拼出等式。枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解。不过这题的数据貌似很温和,我从 0~1000 枚举也能过。第三题:传纸条多线程动态规划跟 2000 年的方格取数很像。还是看做两个人同时从左上角走到右下角。用 f(i, j, k) 表示横纵坐标和为 i,第一个人的行坐标为 j,第二个人的...
阅读全文
摘要:题外话:这一年的noip应该是最受大众关心的,以至于在百度上输入noip第三个关键字就是noip2007。主要是由于这篇文章:http://www.zhihu.com/question/21107274/answer/18452037 第一题:统计数字排序/平衡二叉树受上面这篇文章的影响,我没有用快排,而是用了STL的multiset的count函数来统计出现次数。但事实证明STL的sort足以...
阅读全文
摘要:第一题:能量项链 区间型动态规划 据说这题在当年坑了很多人。f(i, j) 表示从第i个珠子开始合并j个珠子所释放的最大能量。f(i, j) = max{ f(i, k} + f(i+k, j-k) + head(i) * head(i+k) * head(i+j) , 0 0,先做完上面的步骤,然...
阅读全文
摘要:埃及分数迭代加深搜索题意:将一个分数拆分成几个分子为 1 的分数的和。要求拆分出的个数最少。正解:据说是黑书上的题目。思路很明确,用 ID-DFS 每次限定深度进行搜索即可。为了使序列不重复,每次找到的分数都要比前一个分数小,即分母比前一个分数的分母大。同时要保证当前的分数加上之前的分数之和不大于题目给出的分数。这样我们就确定了每层搜索枚举的上下界。最终判断枚举出的分数序列是否满足要求时只要进行通...
阅读全文
摘要:奶牛选举搜索题意:在 5*5 的矩阵中找出规模为 7 的四连通块的个数。初步解法:枚举第一个被取的格子是哪个。对于每个格子,若其上下左右四个格子已经有被取过的格子,就枚举其取或不取;否则不取当前格子。但是很明显是错的,因为在初始格子的周围添加一个后,能够取的格子就会变多,但是由于是顺序枚举,就会漏掉前面的可以取的格子。正解:直接把上面的方法中「判断其四周是否有被取过的格子」这一步删掉。更好的解法是...
阅读全文
摘要:【问题描述】设 2n 张牌分别标记为 1, 2, ..., n, n+1, ..., 2n,初始时这 2n 张牌按其标号从小到大排列。经一次洗牌后,原来的排列顺序变成 n+1, 1, n+2, 2, ..., 2n, n。即前 n 张牌被放到偶数位置 2, 4, ..., 2n,而后 n 张牌被放到...
阅读全文
摘要:选些最近做的题目写写。选择物品动态规划题意:有 N 种物品,每种有 a(i) 件,问有多少种不同的取法?例如,AB 和 BB 是两种不同的取法。初步解法:搜索,对于每一件物品,枚举取 0、1、2、...、a(i) 件时的情况,在弱数据下可以拿 80% 的分数。正解:从上面的搜索思路其实就能找到动规方法了。用 f(i, j) 表示在前 i 种物品中取 j 件的方案数,则f(i, j) = sum{...
阅读全文
摘要:定义: 若 $a\cdot{k}\equiv 1\pmod{p}, a \perp p$,就说 $k$ 是 $a$ 模 $p$ 的乘法逆元. 记为 $k = a^{-1}$.我个人习惯用 $ie(a)$ 表示 $a$ 模某数的逆元. ($inverse$ $element$)性质: $\frac{a...
阅读全文
摘要:two模拟大意:给你一个 N 位二进制数,有四种操作:加1、减1、乘2、整除2。给定一个操作序列,求最终结果。N <= 5*10^6。数据保证不会在最高位上进行进位或退位操作。初步解法:由于题目中的特殊限制(操作不影响最高位),我们可以直接用一个 char 数组和一个尾指针来进行操作。「加1」操作即从最后一位往前找连续的 1 并将其改成 0,然后将遇到的第一个 0 改成 1,并结束循环。「减1」操...
阅读全文
摘要:(有关矩阵乘法的基本规则请自行搜索) 引例:求斐波那契数列的第 n 项 mod 1000000007 的值,n <= 1018。 分析:斐波那契数列的递推式为 f(n) = f(n-1)+f(n-2),直接循环求出 f(n) 的时间复杂度是 O(n),对于题目中的数据范围显然无法承受。很明显我们需要对数级别的算法。 由于 f(n) = 1*f(n-1) + 1*f(n-2) 这样的形式...
阅读全文
摘要:prime 数论 题意:分别求 1*n、2*n、3*n、... n*n 关于模 p 的逆元。p 是质数,n < p。 初步解法:暴力枚举。因为 a 关于模 p 的逆元 b 满足 ab mod p = 1,而 b < p,所以可以枚举 b。但是由于没有用 long long 导致爆零。 (下文用 ie(x) 表示 x 关于题目中 p 的逆元,且下文中的运算均在 mod p 的前提下) ...
阅读全文
摘要:tile贪心题意:给出一个矩形,用不同字母代表的正方形填充,要求相邻的方块字母不能相同,求字典序(将所有行拼接起来)最小的方案。初步解法:一开始没怎么想,以为策略是每次填充一个尽量大的正方形。但是很快就能找到反例。比如当一个 4*2 的矩形左半部分填充了一个 2*2 的 A 后,不应该在右半部分填充 2*2 的 B,而是应该先填一个 1*1 的 B,然后继续用 A 填充,如图。 上面这个例子中,第...
阅读全文
摘要:matrix找规律题意:给定一个 N*N 的只有 0 和 1 的矩阵,有 Q 个操作,分三种:1. 将某行上的所有数字取反;2. 将某列上的所有数字取反;3. 输出 sum{ a[i][j]*a[j][i] } mod 2。N 0 的线段总长度;每次插入一条线段,就将其对应的线段树结点的 cover 加 1;删除一条线段则反之。那么 cover>0 就表示该结点对应的线段被完全覆盖,则其 tota...
阅读全文
摘要:临洮巨人排序题意:在字符串中找出 A、B、C 三个字母出现次数相同的区间个数。初步的解法是前缀和,用 a(i), b(i), c(i) 表示在位置 i 之前(包括 i)各有 字母 A、B、C 多少个,枚举区间的左右端点 l 和r,若a(r)-a(l-1) = b(r)-b(l-1) = c(r)-c(l-1),则是一组解。O(n²) 的复杂度可以过 70%。正解:将上式变形可得,a(r)-b(r)...
阅读全文
摘要:类型一、多叉树转二叉树进行资源分配例如:* 例1.选课:每门课可能有一门先选课,即某些课必须在另外的某节课被选之后才能选,每门课能得的学分不同,求最大学分。*例2.通向自由的钥匙:可以从一个房间通向另外多个房间,通过每个房间所需的花费不同,得到的价值也不同,用最小花费获得最大价值。这种题目的特点是需...
阅读全文
摘要:第一题:机器翻译 模拟 可以用STL里的vector或list实现插入、删除、查找操作。 第二题:乌龟棋 动态规划 用 f(i, j, k, t) 表示分别用了i张卡片1、j张卡片2、k张卡片3、t张卡片4能得到的最大分数,则 f(i, j, k, t) = max{ f(i-1, j, k, t...
阅读全文

浙公网安备 33010602011771号