2016.07.18【初中部 NOIP普及组 】模拟赛题目

来源:互联网 发布:交换机端口绑定ip地址 编辑:程序博客网 时间:2024/05/16 12:41

题解链接:http://blog.csdn.net/fengyingjie2/article/details/51945564

                                                                                  1、骰子

题目描述

让我们一起来看下,一个放在桌面上的骰子,如图1 所示:


   图1 初始方位
数字1在上方,数字2在South(南)方位,数字3在East(东)方位。每一对相反方位的数字之和是7,按照上述规则,数字5在North(北)方位,数字4在West(西)方位, 数字6在下方,如图1 所示,数字4,5,6在图1中是看不到的。
骰子的初始位置如图1所示,按照下列6条规则旋转骰子,规则如图2和图3所示:


图2:旋转规则North(北)、 East(东) 、West(西)、 South(南)
图2中所示的4条旋转规则是将骰子按照规则指定的方位旋转90度。
图3中所示的2条旋转规则是将骰子沿水平方向分别向Left(左)或Right(右)方位旋转90度。


图3:旋转规则Left(左)、Right(右)
你的任务是编写一个程序,从图1所示的方位开始,根据给定的一系列规则连续的旋转骰子,程序要求输出旋转骰子过程中位于上方的数字之和(其中包括图1所示的初始方位上方的数字1)。

输入

第一行输入一个整数n(n<=1000),表示执行旋转的总步数。
    第2——n+1行分别输入6条旋转规则中6个方位中的一个

输出

最后一行输出旋转过程中位于骰子上方的数字之和。

样例输入

5NorthNorthEastSouthWest

样例输出

21






























































                                                                                     2、约数和

题目描述

给你一个数N,需要你算出这个数所有约数的和。(N的约数指能整除N的正整数),例如12的约数有1,2,3,4,6,12。所以约数和为1+2+3+4+6+12=28

输入

本题有多组数据,第一行一个T,表示有T组数据,下面T行,每行一个正整数N表示要处理的数。

输出

T行,每行一个正整数表示输入中对应的数的约数和。

样例输入

112

样例输出

28

数据范围限制

提示

【数据范围】

对于20%的数据, T=1.

对于50%的数据: T<=5000;

对于80%的数据 T<=50000;

对于100%的数据 T<=500000;N<=5000000;

最后两个点时限1.5秒。
                                                            3、旅行

题目描述

你要进行一个行程为7000KM的旅行,现在沿途有些汽车旅馆,为了安全起见,每天晚上都不开车,住在汽车旅馆,你手里现在已经有一个旅馆列表,用离起点的距离来标识,如下:
0, 990, 1010, 1970, 2030, 2940, 3060, 3930, 4060, 4970, 5030, 5990, 6010, 7000
但在出发之前可能还要增加一些旅馆。
现在旅行社为了节约成本要求每天至少行驶A公里,国家旅行社为了安全起见要求每天最多只能行驶B公里。
你想知道一共有多少种旅行方案。

输入

    第一行输入A,第二行输入B,第三行输入N(0<=N<=20),表示在出发之前又新增N个汽车旅馆,接下来N行,每行一个整数m,表示旅馆离起点的距离(0<m<7000)。注意没有任意两个旅馆在同一位置。

输出

    输出一共有多少种旅行方案。

样例输入

15000

样例输出

0






























                                                                              4、逆序统计

题目描述

我们说(i,j)是a1,a2,…,aN的一个逆序对当且仅当i<j 且ai>aj。例如2,4,1,3,5 的逆序对有3个,分别为(1,3),(2,3),(2,4)。现在已知N 和K,求1..N 的所有特定排列,这些排列的逆序对的数量恰好为K。输出这些特定排列的数量。
例如N=5,K=3 的时候,满足条件的排列有15个,他们是
1,2,5,4,3    1,3,4,5,2   1,3,5,2,4    1,4,2,5,3    1,4,3,2,5   
1,5,2,3,4    2,1,4,5,3   2,1,5,3,4    2,3,1,5,4    2,3,4,1,5 
2,4,1,3,5    3,1,2,5,4   3,1,4,2,5    3,2,1,4,5    4,1,2,3,5

输入

从文件COUNT.IN输入。输入第一行有两个整数N 和K。其中(N<=100,K<=N*(N-1)/2)

输出

将1..N 的逆序对数量为K的特定排列的数量输出到文件COUNT.OUT。为了避免高精度计算,请将结果mod 10000以后再输出!

样例输入

5 3

样例输出

15


























0 0
原创粉丝点击