您的位置:首页 > 其它

NOIP 提高组问题求解合集(2009-2012)

2015-10-10 15:09 288 查看
自己做的或者从网上找到了这些题的题解 做成一个题集 分享一下~

**

2009

**

问题求解(共2题,每空5分,共计10分)

1.拓扑排序是指将有向无环图G中的所有顶点排成一个线性序列,使得图中任意一对顶点u和v, 若 u,v ∈E(G),则u在线性序列中出现在v之前,这样的线性序列成为拓扑序列。如下的有向无环图,对其顶点做拓扑排序,则所有可能的拓扑序列的个数为_



**由题意可知8,9可插入1到7中的任意节点中,那么我们讨论8,9并在一起插入和分开插入两种情况,7个节点有8个个空位,则有C(8,1)+c(8,2)种情况; 根据拓扑排序原理,我们在讨论删除一个节点1后的情况,5节点从2,3,4,6,7中分离开,那么我们将节点5插入2,3,4,6,7中,则有c(6,1)种情况,然后我们再继续删除节点, 由于删除节点3的时候有3,4,6;3,7,6两条路径情况

综上所诉,该排序一共有(c(8,1)+c(8,2))c(6,1)*2=432种情况*

2.某个国家的钱币面值有1, 7, 72,73共计四种,如果要用现金付清10015元的货物,假设买卖双方各种钱币的数量无限且允许找零,那么交易过程中至少需要流通_张钱币。

**这是一道贪心题,我们先把(10015)10转化为7进制数为(41125)7,因为该国只有7^0,7^1,7^2,7^3四种钱币,我们先用贪心得到得到的钱币数为:(4*7+1)+1+2+5=37 张钱币

又因为有条件‘假设买卖双方各种钱币的数量无限且允许找零’,我们讨论个位数的5元情况我们发现可以多用一张7元钱币再找回两张1元钱币这种情况比原先决策2+1<5更优;

综上所诉,该国这次交易至少需流通(4*7+1)+1+2+(1+2)=35张钱币**

**

2010

**

问题求解(共2题,每空5分,共计10分)

1.LZW编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用于后继信息的编码。

举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。初始词典只有3个条目,第一个为x,编码为1;第二个为y,编码为2;第三个为空格,编码为3;于是串“xyx”的编码为1-2-1(其中-为编码分隔符),加上后面的一个空格就是1-2-1-3。但由于有了一个空格,我们就知道前面的“xyx”是一个单词,而由于该单词没有在词典中,我们就可以自适应的把这个词条添加到词典里,编码为4,然后按照新的词典对后继信息进行编码,以此类推。于是,最后得到编码:1-2-1-3-2-2-3-5-3-4。

我们可以看到,信息被压缩了。压缩好的信息传递到接受方,接收方也只要根据基础词典就可以完成对该序列的完全恢复。解码过程是编码过程的逆操作。现在已知初始词典的3个条目如上述,接收端收到的编码信息为2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6,则解码后的信息串是“ ”。

这个是不是普及组的题啊……就不说了……吧……

2.无向图G有7个顶点,若不存在由奇数条边构成的简单回路,则它至多有_ _条边。



画一个图只要保证一个回路包含4、6、8……这样的偶数条边就可以了 。共12条

3.记T为一队列,初始时为空,现有n个总和不超过32的正整数依次入列。如果无论这些数具体为何值,都能找到一种出队的方式,使得存在某个时刻队列T中的数之和恰好为9,那么n的最小值是[b]_[/b]。

本题可用抽屉原理求解。设 为各正整数值,则T的队列顺序为 a1,a2,a3… an,设bi为前i项数之和,则 b0=0,b1=a1 ,b2=a1+a2 ,b3=a1+a2+a3 …。如队列T中的数之和恰好为9,实际上即是找到某个bj和bi ,使得 bj-bi=9。由题意可知bi取值范围为1-32,现将这32个数构造为集合{1,10}, {2,11}, …, {8,17}, {18,27}, {19,28},…,{23,32} ,{24},{25},{26},这17个集合中的任一个集合不能包含两个或两个以上的 ,否则它们的差为9。例如设n=17时,队列T为 11111111 10 11111111,即 b1=1, b2 =2,… b8=8, b9 =18, b10=19, b11=20… b17=26,它们中没有任意两个数是在同一集合内的,所以不存在数之和恰好等于9。故根据抽屉原理可得,当n=18时,至少存在两个 在同一个集合,即它们的差为9。因此,答案为n=18。

**

2011

**

1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。4个顶点的平面图至多有6条边,如右图所示。那么,5个顶点的平面图至多有 _条边。



这个尽力画 反正五个点都是对称的

2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要__次操作。

****DACHEBGIF中最长的正序串为ACEGI,还剩下3个字符。

所以最少需少3次操作。**

**

2012

**

1.本题中,我们约定布尔表达式只能包含p,q,r三个布尔变量,以及“与”(∧)、“或”(∨)、“非”(?)三种布尔运算。如果无论p,q,r如何取值,两个布尔表达式的值总是相同,则称它们等价。例如,(p∨q)∨r和p∨(q∨r)等价,p∨?p和q∨?q也等价;而p∨q和p∧q不等价。那么,两两不等价的布尔表达式最多有___个。

对于p、q、r三个变量,每个变量可取0,1两种取值,共有8种组合。 对于每种组合,代入表达式只有0和1两种答案。 因此两两不等价的表达式只有2^8=256种

2.对于一棵二叉树,独立集是指两两互不相邻的节点构成的集合。例如,图1有5个不同的独立集(1个双点集合、3个单点集合、1个空集),图2有14个不同的独立集。那么,图3有___个不同的独立集。

**树形dp

1.如果包含该根结点,则它左右孩子结点都应该不包含在独立集内(由独立集定义可知),所以总数为f(i)=g(左子树)*g(右子树)

2.如果不包含该根结点,则左右孩子可以包含在内或不包含在内因此g(i)=(f(左子树)+g(左子树))*(f(右子树)+g(右子树))

3.最后总数=g(树根)+f(树根)**
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: