总结 2016.12.10

来源:互联网 发布:流程图描述KMP算法 编辑:程序博客网 时间:2024/06/09 21:52

题目描述

过年了,N个学生站成一圈,按顺时针方向依次编号为1N,等待他们的糖果。老师按照以下方法来分配糖果:

首先老师给1号和2号学生各一块糖果,然后他沿着圆圈按照顺时针方向继续分发,跳过一个学生(3),给下一个学生(4)一块糖果;继续行走,跳过2个学生(5号和6)给下一个学生(7)一块糖果,如此反复进行。

问能否保证每个学生都能至少得到一块糖果?

输入

     输入有多组测试数据,每个测试数据是一个正整数N(2<=N<=1000000000)

输出

    对于每组测试数据输出:“YES”或者“NO

样例输入

234

样例输出

YESNOYES

数据范围限制

题目描述

个人要参加国际象棋比赛,该比赛要进行K场对弈。

每个人最多参加两场对弈,最少参加零场对弈。每个人都有一个与其他人都不相同的等级(用一个正整数来表示)。

在对弈中,等级高的人必须用黑色的棋子,等级低的人必须用白色的棋子。

每一个人最多只能用一次黑色的棋子和一次白色的棋子。

为了增加比赛的可观度,观众希望K场对弈中双方的等级差的总和最小。

比如有7个选手,他们的等级分别是30, 17, 26, 41, 19, 38, 18要进行3场比赛。最好的安排是Player 2 vs Player 7, Player7 vs Player 5 , Player 6 vs Player 4,此时等级差的总和等于(18-17) + (19-18) + (41-38) = 5达到最小。

输入

第一行两个正整数K

接下来有行,第i行表示第i . 1个人等级。

输出

在第一行输出最小的等级差的总和。

样例输入

7 3 30 17 26 41 19 38 18 

样例输出

5

数据范围限制

提示

【数据范围】

90%的数据中, N  3000

100%的数据中, N  100000

保证所以输入数据中等级的值小于108  K  N-1

题目描述

给一个正整数X,一个长度为mX-因子链是指这样一个序列:X0=1X1X2,。。。,Xm=X满足:Xi<Xi+1同时Xi|Xi+1(Xi+1能被Xi整除)

要求X-因子链的最大长度Len和长度为LenX-因子链的数量。

输入

     一个正整数X(X <231)

输出

     一行,两个整数,分别表示最大长度和该长度链的种数。

样例输入

100

样例输出

4 6

数据范围限制

题目描述

在众多的数据结构中,二叉树是一种特殊而重要的结构,有着广泛的应用。二叉树或者是一个节点,或者有且仅有一个节点位二叉树的根,其余节点被分成两个互不相交的子集,一个作为左子集,另一个作为右子集。每个子集又是一个二叉树。

遍历一棵二叉树就是按某条搜索路径巡访其中每个节点,使得每个节点均被访问一次,而且仅被访问一次。最常用的有三种遍历方式:

1)前序遍历:若二叉树为空,则空操作;否则先访问根节点,接着前序遍历左子树,最后前序遍历右子树。

2)中序遍历:若二叉树为空,则空操作;否则先中序遍历左子树,接着访问根节点,最后再中序遍历右子树。

3)后序遍历:若二叉树为空,则空操作;否则先后序遍历左子树,接着后序遍历右子树,最后再访问根节点。


例如图1所示的二叉树前序遍历的顺序是ABCD,中序遍历的顺序是CBAD,后序遍历的顺序是CBDA

对一棵二叉树,如果给出前序遍历和中序遍历的节点访问顺序,那么后序遍历的顺序是唯一确定的,也很方便地求出来。但如果现在只知道前序遍历和后序遍历的顺序,中序遍历的顺序是不确定的,例如:前序遍历的顺序是ABCD,而后序遍历的顺序是CBDA,那么就有两棵二叉树满足这样的顺序,见图1和图2

现在的问题是给定前序遍历和后序遍历的顺序,要求出总共有多少棵不同形态的二叉树满足这样的遍历顺序。

输入

整个输入有两行,第一行给出前序遍历的访问顺序,第二行给出后序遍历的访问顺序。

二叉树的节点用一个大写字母表示,不会有两个节点标上相同字母。输入数据不包含空格,且保证至少有一棵二叉树符合要求。

输出

输出一个整数,为符合要求的不同形态的二叉树的数目。

样例输入

ABCDCBDA

样例输出

2

数据范围限制






2016.12.10
考试思路:
T1
找规律,得出只要是2的乘方就是可以的,其他都不行,然后就判断一下咯,就可以了。
T2
比赛时一时脑抽,居然没想出正解,打了个爆搜,结果0分。
T3
看懂了题但没有什么想法,直接弃了。
T4
没有什么思路和想法,就打了个表。


正确思路:
T1
同上。
T2
因为对于每个人来说,最接近自己等级的就是排个序之后旁边的嘛,所以给每个人等级排个序,算出相邻两个的差,再拿差排个序,累加前k个小的就可以了。
T3
就是算出x的质因数的每种元素有多少个,然后看看全排列的总方案数,对于样例100来说,质因数里就有两个2和两个5,质因数总数是4个,然后利用排列公式ans=4!/2!/2!。
T4
就很简单嘛,在前序遍历那里两个两个的倒过来,再看看后序遍历那有没有一样的,有就答案乘2。

2 0
原创粉丝点击