摘要: 在数学界有一类数称之为“LF0YIE'u数”集合(简称为“FIE”),在计算机发展中发挥着不可替代的作用。对于FIE集合并没有严格的数学规定,而是随着某个给定的二进制常数CFIE变化。给定一个CFIE,如果某个十进制数转化为二进制数后所有含1的位数在CFIE相应位数都是1,则这个数在CFTE常数下属于“FIE”。如CFTE为100111110,那么0就属于“FIE”,2也属于“FIE”,但是1不属于“FIE”。一个合法的“FIE”集合必须满足集合内的0的个数和1的个数的总和分别不能超过CFIE的0的个数和1的个数。对于一个已知区间,把区间中所有属于“FIE”的数组成一个大集合,那么它的 阅读全文
posted @ 2011-06-16 14:57 liukee 阅读(308) 评论(0) 推荐(1) 编辑
摘要: 问题【题目描述】某人真的要去种菜菜了。某人承包了一片土地,并决定在这片土地上建造一块属于自己的菜园,为了防止大牛们来菜园偷菜,某人决定给菜园围上栅栏。某人的菜园是正方形的,当前有一些建造栅栏的木材,某人想把这些木材全部用完来建造栅栏,且木材不能锯断。【输入格式】第一行N 表示有N组数据;接下来N行,每行第一个数字M,表示木材的数量,接下来M个数字ai表示木材的长度。【输出格式】对于每一组数据输出一行结果如果可以围成栅栏,输出‘Yes’;如果不可以,输出‘No’【输入样例】34 1 1 1 15 10 20 30 40 508 1 7 2 6 4 4 3 5【输出样例】YesNoYes【数据范围 阅读全文
posted @ 2011-06-16 09:54 liukee 阅读(287) 评论(0) 推荐(1) 编辑
摘要: 问题题目描述:得到一种冰激凌有两种方法:可以按照魔法书上的指导自己配置,也可以到魔法商店里去买——那里对于每种冰激凌都有供应,虽然有可能价格很贵。在魔法书上有很多这样的记载:1 份A 冰激凌混合1 份B 冰激凌就可以得到1 份C 冰激凌。(至于为什么1+1=1,因为……这是魔法世界)好了,现在你知道了需要得到某种冰激凌,还知道所有可能涉及到的冰激凌的价格以及魔法书上所有的配置方法,现在要问的就是:1.最少花多少钱可以配制成功这种珍贵的冰激凌;2.共有多少种不同的花费最少的方案(两种可行的配置方案如果有任何一个步骤不同则视为不同的)。假定初始时你手中并没有任何可以用的冰激凌。输入格式:第一行有一 阅读全文
posted @ 2011-06-14 15:39 liukee 阅读(462) 评论(1) 推荐(2) 编辑
摘要: 概述最长公共子序列:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X="x0,x1,...,xm -1",序列Y="y0,y1,...,yk-1"是X的子序列,存在X的一个严格递增下标序列,使得对所有的j=0,1,...,k-1,有xij= yj。例如,X="ABCBDAB",Y="BCDB"是X的一个子序列。给定两个序列A和B,称序列Z是A和B的公共子序列,是指Z同是A和B的子序列。问题要求已知两序列A和B的最长公共子序列。 [编辑] 阅读全文
posted @ 2011-06-14 07:27 liukee 阅读(407) 评论(0) 推荐(1) 编辑
摘要: 问题 就是给你一个有向图,m条边,每条边上两个权值ai,bi,让你找出一条一到n的路径,使得路径上权值a的和不超过w的情况下,权值b的值最小 样例 5 6 7 1 2 2 3 2 4 3 3 3 4 2 4 1 3 4 1 4 6 2 1 3 5 2 0 5 4 3 2 输出样例: 11 数据范围: 100%的数据 2<=N<=100 1<=K<=10000 0<=w<=1000 其他值均不超过1... 阅读全文
posted @ 2011-06-13 17:51 liukee 阅读(364) 评论(1) 推荐(2) 编辑
摘要: 单调队列及其应用关键字队列,合并果子,窗户,广告印刷,最长XX子序列,志愿者选拔,动态规划,烽火传递正文单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1<=a2<=a3……<=an,a序列便是单调递增序列。同理递减队列也是存在的。单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为o(1),由于队列的性质,每个元素入队一次,出队一次,维护队列的复杂度均摊下来便是o(1)。如何维护单调队列呢,以单调递增序列为例:1、如果队列的长度一定,先判断队首元素是否在规定范围内,如果超范围则增长对首。2、每次 阅读全文
posted @ 2011-06-13 16:11 liukee 阅读(1686) 评论(0) 推荐(2) 编辑
摘要: 问题还是宇宙时间公元 5.5 5.5亿年, maxingc maxingc maxingc maxingc联盟用微子来攻击 yunyunyun联盟。愤怒的 yunyun 联盟决定反戈一击,他们 准备使用加农炮来反击。 yunyun 联盟的将军们打算在 N*M 的网格地图上部署他们炮兵队。一个 的网格地图上部署他们炮兵队。一个 N*M 的地图由 N行 M列组成,地 列组成,地 图的每一格可能是山地(用 图的每一格可能是山地(用 "H" "H" 表示),也可能是平原(用 表示),也可能是平原(用 表示),也可能是平原(用 表示),也可能是平原(用 " 阅读全文
posted @ 2011-06-12 19:33 liukee 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 问题宇宙时间公元 5.55 亿年,由于某种原因两大联盟展开了激战(maxingc 联盟采用了微子技术): 邪恶的 maxingc 联盟采集好了微子能,就要运输。Maxingc 联盟的领袖 xc 此时才发现,自己的军事基地中由微子发射器组成的微子能量网存在很大的问题,于是他决定修改。 之前,TT 为了整齐,把军事基地建成了矩形,而且如果两个微子发射器的连线平行于军事基地的一边,这两个微子发射器之间就一定有微子能量传输线相连。 (*注:比如有 3 个微子发射器A(1,1)、B(1,3)、C(2,2),那么 A 和 B 之间有微子能量传输线相连,A 和 B 不能传输到 C。*) 但是在微子能运输过程 阅读全文
posted @ 2011-06-12 17:53 liukee 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 问题单人纸牌游戏,共36张牌分成9叠,每叠4张牌面向上。每次,游戏者可以从某两个不同的牌堆最顶上取出两张牌面相同的牌(如黑桃10和梅花10)并且一起拿走。如果最后所有纸牌都被取走,则游戏者就赢了,否则游戏者就输了。George很热衷于玩这个游戏,但是一旦有时有多种选择的方法,George就不知道取哪一种好了,George会从中随机地选择一种走,例如:顶上的9张牌为KS, KH, KD, 9H, 8S, 8D, 7C, 7D,6H,显然有5种取法:(KS, KH), (KS, KD), (KH, KD), (8S, 8D), (7C, 7D),当然George取到每一种取法的概率都是1/5。有一 阅读全文
posted @ 2011-06-12 17:29 liukee 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 问题给定区间[L, R](L <= R <= 2147483647,R-L <= 1000000),请计算区间中素数的个数。输入数据两个数L和R。输出数据一行,区间中素数的个数。样例输入2 11样例输出5分析由于数据范围很大,用朴素的素数判断的方法显然会超时,这里想到用筛法,对于一个数n来说一定能够分成n个素数pi的乘积,满足pi<=trunc(sqrt(n))对于极限数据来说sqrt(maxlongint)=50000,我们可以先筛出50000以内的素数,再用50000以内的素数筛更大的素数,由于后面的数很大,筛法需要用数组进行标记,所以要对数组整体向前平移。注意计数 阅读全文
posted @ 2011-06-12 16:55 liukee 阅读(978) 评论(0) 推荐(1) 编辑
摘要: 问题给定你一个字符串,和n个单词构成的字典。让你求出在字符串中最小删去几个字母,使得剩下的字符串能够由字典中的若干个单词构成。输出最少删去的字母的个数。分析如果考虑第i位的字母,当然只有要和不要两种状态,这是本题的突破口,是划分状态的根本。f[i]表示到第i位最少需要删除的字母的数目。那么得到如下的方程:f[i]:=min{f[i-1]+1,make(i)}不要当前的字母自然不需要解释,直接由相邻的状态更新,无后效性。如果要保留第i位,就需要函数解决。因为第i位的保留就必须有单词能够保留住它,也就会影响和它相邻的状态。当然不能简单地推。至于make函数,如果要保留s[i],必有单词的最后一位恰 阅读全文
posted @ 2011-05-27 17:42 liukee 阅读(563) 评论(1) 推荐(3) 编辑
摘要: 问题有一列士兵排队,给出其身高a[i],现在要让队列中的一些士兵出列,使得剩下的每个士兵都能够看到对头或队尾(在该士兵和他看到的队尾之间没有比该士兵高的士兵)。现在要求最少的出对的士兵数。分析乍一看很像最长xx序列,但是又没有思路,需要抽象题目中的模型。假设a[i]是满足要求的队列中的元素,那么假设a[1]是左边的对首,a[1]~a[i]中的元素都比a[i]小,也就是说a[1]~a[i]的元素都可以满足要求。那么在a[i]的右边的元素只可能比a[i]大或者小,如果比a[i]小,那么从该元素一直到队尾一定是递减的,才能满足题目要求。这样一来,问题就转化成:在队列a[i]中找到一个元素,使得a[1 阅读全文
posted @ 2011-05-27 17:23 liukee 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 问题鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为(i,j)的网格移向(i-1, j),(i+1, j),(i,j-1),(i,j+1)四个网格,机器人不能走出整个n*n的网格。游戏开始时,你可以自由选定机器人的初始位置。现在你知 阅读全文
posted @ 2011-05-17 12:07 liukee 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 问题给你一个n个节点的图,让你将该图分成两部分,使得两部分之间的边的权值和最大。分析一开始看以为是图论,但是算法比较高级。再看数据范围只有20,所以只需根据题意枚举一侧的节点即可。用dfs,其实就是生成组合数。注意状态表示和更新的方法,记下当前一共找到了几个点,最后一个点的位置,和当前得到的值。每次新加入一个节点,只需操作和加入的点有关的边即可。有两个剪枝:1.可行性:由于是组合数,只要搜到n div 2 个数即可确定全部情况。注意这句话要放在更新最值的后面。2.最优性:如果当前加入新点之后的值比加之前得到的值大,则继续向下搜索,注意这里不能和当前的最大值比较。(why)该搜索的实质就是找一个 阅读全文
posted @ 2011-05-07 17:39 liukee 阅读(355) 评论(0) 推荐(1) 编辑
摘要: 题目2010年辽宁OI选拔赛题目一、洪水我们知道,全球变暖使得海平面上升。OI小岛的岛主请OIer们解答水位达到多高时,该岛将会变成两个或更多的岛。输入文件“flood.in”给出小岛的高度网格数据:文件第一行为两个不超过100的正整数n和m,表示网格的维度。随后为n行数据,每行有m个不超过1000整数,表示网格节点的原始高度。网格最外圈的数据0及与其相邻的0表示最初的海平面。和外圈不相连的0是被高地包围的海平面高度。假定海洋最初围绕给定的网格,小岛初始时是连通的。输出文件“flood.out”Island splits when ocean rises f feet.或者Island nev 阅读全文
posted @ 2011-04-28 08:58 liukee 阅读(191) 评论(0) 推荐(0) 编辑