首页 > 代码库 > 浙江理工大学2016年新生赛 暨全国新生邀请赛

浙江理工大学2016年新生赛 暨全国新生邀请赛

Problem A: Save the Princess

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

Once upon time there was a cute princess called JWliving in a castle. One day, the princess had been kidnapped by the robbers. The prince called BHbecame worried, he wanted to save the princess. So the prince BHand a soldier called LYFwent to save the princess. 
There were N people standing in a row, including the princess and N-1 robbers,numbered 1 to N from left to right. You already know the princess’ number is K. BH and LYF must kill robbers before meeting the princess. BH and LYF were both very powerful, they took turns killing the robbers. On each turn, a man could kill the left most robber or kill the right most robber. The massacre would end until there was a man to save the princess. The princess would marry the man who saved her first. Assume that BH and LYF kill optimally and LYF kill first, determine the princess would be married to who.

Input

The first line of the input contains an integer T(T <= 500) which means the number of test cases.
For each test case, there are two integers n(3 <= n <= 1000000000) and k(1 < k < n) which mean the number of robbers and the princess’ position.

Output

Output a single line: if the princess would be married to the prince, print ”BH”(without quote), otherwise print ”LYF”(without quote).

Sample Input

5

3 2

4 3

5 2

6 4

6 5

Sample Output

BH

LYF

BH

LYF

LYF

HINT

Problem B: 巴比伦花园

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

巴比伦花园在前6世纪由新巴比伦王国的尼布甲尼撒二世(Nebuchadnezzar)在巴比伦城为其患思乡病的王妃安美依迪丝(Amyitis)修建的。园中种植各种花草树木,远看犹如花园悬在半空中。当然这个伟大的奇迹现在已经不存在了,但幸运的是我们仍能从流传于后世的故事中窥看到它的蛛丝马迹。

据说花园被建造的时候,花园的座落处有一块巨大的石头,聪明的工匠决定把它打造成一个天然的阶梯,因为这块石头原本就凹凸不平的,形如:h, h2, h3 ……, hn。但是局限于当时的技术条件,工匠们只能把一段连续的区间:hi, hi+1, hi+2, ……, h加工成:

fi, fi+1, fi+2, ……, f,并且要满足三个条件:

1. fi+1 = fi + k,

2. fi>= 1,

3.f<= hi.

Input

第一行有个整数T, 表示测试组数。T≦10。

接下来每个测试组,第一行给出两个数n,k, Q,表示区间的个数和相邻的两个阶梯的高度差和询问次数。

接下来一行有n个数,第i个数表示改区间的高度hi

接下来Q行,每一行有两个数l r : 表示求[l , r]这个区间所能得到的最长合法阶梯的长度。

1 <= l <= r <= n, 1 <= n <= 100000, 1 <= k <= 1e7,  1 <= hi <= 1e15

Output

请对每个询问都输出一行。

Sample Input

1

5 1 3

1 3 2 4 3

1 3

2 4

5 5

Sample Output

2

3

1

HINT

Problem C: 极差

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

给出n个数,请求出它们的极差。

极差的定义是:用来表示统计资料中的变异量数(measures of variation),其最大值与最小值之间的差距,即最大值减最小值后所得之数据。

Input

第一行有个整数T,表示测试组数T<=10.
接下来有T个测试组,每个测试组的第一行有整数n,表示有n个数。
接下来1行有n个数,第i个数ai ,0<=ai<=100000》
n<=1000

Output

对每组测试数据输出极差

SampleInput

1

5

1 5 2 3 4

SampleOutput

4

HINT

 

 

 

Problem D: 圣杯战争

Time Limit: 10 Sec  Memory Limit: 128 MB

Description

KI为了参加圣杯战争,决定向魔术师CS请教,CS为了测试KI身为御主的潜力,决定进行一场模拟圣杯战争:

CS召唤了n个实验怪兽,第i号怪兽在i这个位置出。并把KI召唤出的第i位从者安排在pos(i)处,总共有m位从者。

第i只怪兽有战斗力atk(i), 而i号从者的体力为AP(i)。如果从者想要移动,他必须战胜他当前位置处的怪兽,战胜的条件为AP>=atk, 然后该从者的AP会减少atk, 注意从者只能从i移动到i+1,或移动到i-1处,注意一旦开始移动就只能向一个方向移动了。

作为优秀的御主,必须要有杰出的判断力,所以CS会给出Q次询问,每次给出一个区间[l, r]: 要求KI只能派出一个从者,并能打败这个区间中尽可能多的怪物,求能打败的最大怪物数。

CS: “我会想办法强制在线(。-`ω′-)”

KI: “。。。。”

据说acmer身上都有成为御主的资质,那么请帮助KI通过测试吧。

Input

第一行有个数T,表示测试组数,T<=10.

接下来每个测试组的第一行有3个数n m Q, 分别表示怪物数,从者数和询问次数。

第二行有n个数,第i个数表示第i只怪物的战斗力atk(i).

第三行有m个数,第i个数表示第i位从者的位置pos(i).

第四行有m个数,第i个数表示第i位从者的体力值AP(i).

接下来有Q行,每行有两个数pl pr:

你要先对他们进行如下操作:

pl=pl^ans,   pr=pr^ans,  If (pl > pr) swap(pl,pr);

(ans为上次询问的答案,而对于每个测试组的第一个询问ans=0,数据保证pl,pr合法)

然后请求出只派出一位从者的情况下在[pl,pr]这个区间中所能战胜的最大怪物数。

1<= n <= 200000, 1 <= m <= 50000, 1 <= Q <= 100000, 1 <= ai,i <= n, 0 <= pl, pr, AP(i),g(i) <= 1e9

Output

对于每个询问,请在一行中输出对应的答案。

Sample Input

1

6 2 2

2 3 4 1 1 1

2 5

5 3

1 3

0 4

Sample Output

2

2

 

 

 

Problem E: 校庆

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

2017年10月28日是zstu的120周年校庆,撒花,撒花。为此KI决定设计一个程序,来庆祝我们的校庆:
   给出某一天的日期year-month-date, 求这一天到2017-10-28还差几天。

Input

第一行有个整数T, 表示测试组数。T≦100。
接下来每个测试组,给出三个数year month date。(1900 <=year <=2017 ), 保证每个日期均合法,并且小于2017-10-28。

Output

对于每个测试组,请输出对应的答案。

Sample Input

1

2017 10 1

Sample Output

27

HINT

 


 

Problem F: 牛吃草

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

农夫有一个长满草的(x0, y0)为圆心,r为半径的圆形牛栏,他要将一头牛栓在坐标(x1, y1)栏桩上,但只让牛吃到一半草,问栓牛鼻的绳子应为多长?

Input

输入一个T,表示T组测试数据
下面T行每行五个整数 x0, y0, x1, y1, r 所有数据的绝对值小于1e5

Output

每组测试数据输出绳子长度,保留4位小数

Sample Input

2

0 0 0 0 2

0 0 10 10 2

Sample Output

1.4142

14.1892

HINT

 


 

Problem G: 众数

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

给出n个数,求这n个数的众数。
众数的定义是:是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。

Input

第一行有个整数T,表示测试组数T<=10.
接下来有T个测试组,每个测试组的第一行有整数n,表示有n个数。
接下来1行有n个数,第i个数ai ,0 < ai <= 1000
n<=1000

Output

对于每个测试组,请把答案在一行中输出,如果有多个众数,则按照从小到大的顺序把他们输出。

Sample Input

1

5

3 3 2 2 4

Sample Output

2 3

HINT

 


 

Problem H: KI的斐波那契

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

KI十分喜欢美丽而优雅的斐波那契数列,最近他新认识了一种斐波那契字符串,定义如下

f (0) = b, f (1) = a,

f (2) = f (1) + f (0) = ab,

f (3) = f (2) + f (1) = aba,

f (4) = f (3) + f (2) = abaab,

......

KI想知道 f (n) 中的第 m 位是什么,你可以帮他解决这个问题吗?

Input

第一行有一个整数 T ,表示测试组数。

接下来的每个测试组包含两个数 n, m 。

数据范围: T≤ 1000, 0 ≤ n ≤ 90, 1 ≤ m ≤ 1e18

Output

对于每个测试组,输出’a’或者’b’

Sample Input

5

4 1

5 3

10 22

22 233

66 2333333333333

Sample Output

a

a

a

b

a

HINT

 


 

Problem I: 萌新吃果果

Time Limit: 1 Sec  Memory Limit: 128 MB

 

Description

开学第一天,萌新要排排坐吃果果啦,KI要求萌新们坐成一排。
现在萌新们必须要按KI的秩序表一个一个地就坐。
萌新中包括男孩子、女孩子和扶她。
男孩子会毫不犹豫地坐到当前已经坐好的人的后一个座位,女孩子在入座时会和前面的**男孩子**的隔一个座位坐,而扶她会观察前面连续坐的人数,若人数大于等于心理容忍度$k$,那么扶她会隔一个座位坐,否则直接坐到当前的后一个座位。
那么问题来了,KI想知道至少需要多少把椅子,才能让这些萌新正好坐成一排。

Input

第一行有一个整数$T$,表示测试的组数。
接下来每一个测试组第一行输入$n, k$,表示总人数,和扶她的心理容忍度。
第二行输入一个长度为$n$的字符串,表示KI的秩序表。字符串仅由$a, b, c$三种字符串组成,分别指代男孩子、女孩子和扶她。

数据范围:T <= 50, 1 <= n,k <=100000

Output

对于每个测试组输出一行,表示最少需要的椅子数量。

Sample Input

2

6 2

aaabcc

8 3

abbccbaa

Sample Output

8

10

HINT

例如样例中的第一组数据,aaabcc, 且 k = 2,最后的座位坐法如下,需要8个座位

aaa_bc_c

 


 

Problem J: 萌新的旅行

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

zstu的萌新们准备去自助旅行,他们租了一辆吉普车,然后选择了n个城市作为游览地点。然后他们惊喜的发现他们选择的城市刚好绕城一个环。

也就是说如果给所有城市按照0,1,2,……,n-1编号,0号城市和n-1号城市是相邻的,并且只能从i号城市去(i+1)%n号城市。

已知每个城市可以充油gas(i),从 i 到 (i+1)%n 城市耗油 cost(i)。

假设这辆吉普车没有的油箱一开始是空的,并且没有上限。

没有油的话自然就不能继续旅行了,这个问题让萌新们非常困扰。作为优秀的acmer,请你帮他们找到一个出发城市,使得萌新们能游览尽可能多的城市(注意最多游览n个城市)。如果有多个可选择的出发城市,那么请把他们按照编号从小到大输出。

Input

第一行有个整数T, 表示测试组数。T≦10。

接下来的每个测试组第一行有个数n, 表示游览的城市数, 2 <= n <= 100000。

第二行有n个数, 第i个数表示在i号城市能充油gas(i),0 <= i <= n-1。

第三行有n个数,第i个数表示从i号城市到(i+1)%n号城市会耗油  cost(i), 0 <= i <= n-1,  0 <=  gas(i), cost(i) <= 10000。

Output

对于每个测试组,请在一行中输出可以选择的出发城市编号,并按照编号从小到大输出。

Sample Input

2

2

4 4

5 3

2

2 3

3 4

Sample Output

1

0 1

HINT

 


 

Problem K: KI的目标

Time Limit: 2 Sec  Memory Limit: 128 MB

Description

KI给自己制定了最近制定了一些学习目标,因为有些大目标的达到要先完成一些小目标,所以KI就下意识的把这些目标连成了一棵树,以1号目标为根。

KI是个很谨慎的人,于是他请他的朋友们对这棵树上的每条边评估了一个努力值cost(i),并对每个目标评估了一个

价值val(i)。

然后KI决定去掉树上的一些不可行的目标,他判断的依据是:

假设目标v属于以u为根的子树,如果dis(u,v)<val(u)-val(v),那么以v为根的整棵子树都会被去掉。(dis(u,v)从节点u到节点v所有边的边权和)

请帮KI计算一下最后他还剩下几个目标。

Input

第一行有个整数T, 表示测试组数。T≦101。

接下来每个测试组,第一行给出一个数n, 表示当前这棵树的节点数。

接下来n-1行,每行有两个数x y cost:表示x个节点和y节点间有条边, 这条边的努力值为cost。

接下来一行,有n个数,第i个数表示val(i)。

1 <= x,y <= n <= 100000, -1e9 <= try(i),val(i) <= 1e9

Output

对于每个测试组,把对应的答案在一行中输出。

Sample Input

1

6

1 2 1

2 3 5

2 4 -10

1 5 3

5 6 4

6 5 4 5 3 6

Sample Output

5

HINT

 

浙江理工大学2016年新生赛 暨全国新生邀请赛