CSP-J模拟赛day3——试题

yjq的小人快跑

时间限制:1ms/空间限制:512MB

题意

"小人快跑"是一个非常有趣的游戏。在该游戏中有nnn个关卡,每个关卡有若干个选项,每个选项上有一系列操作运算。操作有:+x+x+x−x-xx×x\times x×x÷x\div x÷x%x\% x%x一共5种。

在游戏的一开始有ttt个人,这些小人会按照顺序经过nnn个关卡。yjq可以控制这些小人经过某个关卡,要求:

  • 目前的小人必须从同一个选项中通过。
  • 不可以跳过任何一个关卡

在经过这一个关卡后,小人的数量会按照操作,或+x+x+x,或−x-xx,或×x\times x×x,或÷x\div x÷x,或%x\% x%x(计算中的答案向下取整)

游戏规则规定,最后剩下的人越多,得分越多。所以yjq找到了聪明又智慧的你,让你帮忙算出最后最多能得多少分。

特殊约定:经过某一个关卡后,小人的个数小于或等于0时,那么游戏立即结束,并输出0##

输入格式

第1行,2个整数,分别表示n,tn,tn,t

之后nnn行,每行的格式如下:

  1. 开头一个整数mmm,表示该关卡的选项数量

  2. 之后mmm个选项。格式是 +x+x+x(加),−x-xx(减),×x\times x×x(乘),÷x\div x÷x(除),%x\% x%x(取模)

    所有内容之间用空格分隔

输出格式

1行,1个整数,表示游戏结束时,可能的最大人数,

输入
2 3
3 *2 -5 +2
2 +4 *5
输出
30

数据范围

对于所有数据,题目保证:1≤n≤10001\le n \le 10001n1000 $ 1\le t \le 10$ 每个关卡最多50个选项

yjq的开根号

时间限制:1ms/空间限制:512MB

题意

yjq发现了一种可以快速手算一个整数的正的平方根的方法。

10\sqrt{10}10为例。先把10\sqrt{10}10向上取整,得到4。我们发现:

0≤4−10<1 0 \le 4-\sqrt{10} <1 0410<1

所以:

0≤(4−10)2=16−810+10<1 0 \le (4-\sqrt{10})^2=16-8\sqrt{10}+10 < 1 0(410)2=16810+10<1

忽略不等式右端的1,可以得到10\sqrt{10}10大致的值: 134\cfrac{13}{4}413
以上过程被称为一次推导134\cfrac{13}{4}413被称为10\sqrt{10}10一级估算值
现在,对于任意的xxx,请计算出x\sqrt{x}xnnn级估算值

输入格式

1行,2个整数,分别是x,nx,nx,n

输出格式

输出分为两种情况

  1. 如果x\sqrt{x}x是一个整数,输出一行,一个整数表示x\sqrt{x}x
  2. 如果x\sqrt{x}x不是一个整数,输出一行,两个整数表示答案(以最简假分数形式

样例

输入

10 1

输出

4 13

限制

对于100%的数据,1≤n≤1000,1≤n≤31\le n\le 1000,1 \le n \le 31n1000,1n3

yjq的奶茶

题意

yjq决定前往奶茶店喝点东西,于是他打开了手机地图并开始搜索前往附近的奶茶店的路线。
他惊讶地发现他附近的地图可以看做一个包含n个节点和n-1条边的连通图,每条道路都可看做一条连接两个节点的单向边,并且方向是从编号小的点走向编号大的点。图上节点编号为从1到n的连续正整数。它当前位于编号为1的节点,所有没有出度的节点上均有一家奶茶店,有出度的节点上均没有奶茶店。
不幸的是,附近正在修路,地图数据显示,对于每个节点i(1≤i≤n1\le i \le n1in)都有一个权值aia_iai,表示它们通向出度节点的道路中有aia_iai条因为修路导致路况瘫痪阻塞,从而无法到达该节点。

然而愚蠢的Dijkstra算法无法告诉愚蠢的yjq那些地图被阻塞,yjq只能在到达某个节点时才能得知该节点的具体路况。

此时站在tit_iti号节点的yjq想问:从当前点出发,是否在被阻塞的道路任意的情况下,他都能找到一条前往某个奶茶店的路径呢?

愚蠢的Dijkstra算法无法告诉愚蠢的 yjq答案,于是他想到了聪明有智慧的你,请你写个程序解决这个问题。

输入格式

第一行,2个整数,表示n,q

第二行,n个整数,表示从第i个节点出发被堵塞的道路数量。

之后n-1行每行两个整数x和y,表示有一条从x节点通向y节点的边。题目保证x<y。

之后一行,q个整数,其中第i个整数是t。

输出格式

q行,每行一个字符串。

第i行的输出对应t的输出:输出YES表示从t出发一定可以走到一家奶茶店,否则输出NO。

样例1
8 7
0 1 0 1 0 1 0 0
6 7
1 2
1 4
4 5
2 8
2 6
2 3
8 1 4 2 1 6 8
YES
YES
NO
YES
YES
NO
YES
样例2
7 5
0 1 0 1 0 1 0
6 7
1 2
1 4
4 5
2 6
2 3
1 4 2 1 6
NO
NO
NO
NO
NO
样例3
9 7
0 3 1 0 2 0 0 0 0
1 2
2 7
3 4
2 9
1 3
5 6
5 8
2 5
8 4 3 1 2 9 3
YES
YES
NO
NO
NO
YES
NO

数据范围

1≤n≤1000000,1≤q≤10001\le n\le 1000000,1\le q\le10001n1000000,1q1000

yjq的密码锁

题目描述

yjq有一辆自行车,上面使用密码锁。

密码锁的工作原理是这样的:密码锁从左到右一共有n个拨盘,每个拨盘上面有0-9,10个数字,并且9的后面是0。每个拨盘可以双向拨动,只有n个数字全部和密码一致的时候,密码锁才能开启。

yjq发现,他在1秒的时间里,可以拨动1个或者2个拨盘,例如转动1个拨盘将1234转动成1235,1233,1224,1244等情况;转动两个拨盘将0789转动成0790,9689等情况。

yjq的密码锁的密码是b,他把密码锁的密码拨乱成ayjq急着去机房讲KMP算法,希望在最短的时间内打开这把密码锁,现在他把这个问题交给你,请你帮他算出开锁的最短时间。

输入格式

第一行输入一个整数nnn
第二三行,分别输入aaabbb

输出格式

1行,1个整数,表示yjq能够打开密码锁的最短时间。

Samples

样例1
4
0000
1234
6
样例2
4
000000
123456
11
样例3
4
00
12
6

Limitation

1≤n≤1051 \le n \le 10^51n105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值