CSP-J模拟赛day3——试题

yjq的小人快跑

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

题意

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

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

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

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

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

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

输入格式

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

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

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

  2. 之后 m m m个选项。格式是 + x +x +x(加), − x -x x(减), × 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 ≤ 1000 1\le n \le 1000 1n1000 $ 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 − 8 10 + 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 大致的值: 13 4 \cfrac{13}{4} 413
以上过程被称为一次推导 13 4 \cfrac{13}{4} 413被称为 10 \sqrt{10} 10 一级估算值
现在,对于任意的 x x x,请计算出 x \sqrt{x} x n n n级估算值

输入格式

1行,2个整数,分别是 x , n x,n x,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 ≤ 3 1\le n\le 1000,1 \le n \le 3 1n1000,1n3

yjq的奶茶

题意

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

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

此时站在 t i t_i ti号节点的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 ≤ 1000 1\le n\le 1000000,1\le q\le1000 1n1000000,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算法,希望在最短的时间内打开这把密码锁,现在他把这个问题交给你,请你帮他算出开锁的最短时间。

输入格式

第一行输入一个整数 n n n
第二三行,分别输入 a a a b b b

输出格式

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

Samples

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

Limitation

1 ≤ n ≤ 1 0 5 1 \le n \le 10^5 1n105

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值