CSP-J 第二轮模拟题3

三目运算

题目描述

三目运算是一种比较特殊的运算,功能类似于 if 语句,其语法格式如下:

条件?数值1:数值2,三目运算得到的结果也是数值。当条件成立时得到的结果是数值 1,不成立时得到的结果为数值 2。

例如,x>5?8:6 就是一种三目运算表达式(也是分段常数表达式,见下文)。当 x = 7 x=7 x=7 时,该表达式的结果为 8 8 8,而 x = 3 x=3 x=3 时,该表达式的结果为 6 6 6


本题中,称满足下列条件中至少一条的字符串 S S S分段常数表达式

  • 十进制正整数 a a a,如 243,是分段常数表达式。
  • 如果 a a a 为一个十进制正整数, p , q p,q p,q 为两个分段常数表达式,则 x> a ? p : q \texttt{x>}a\texttt{?}p\texttt{:}q x>a?p:q 是分段常数表达式。
  • 如果 a a a 为一个十进制正整数, p , q p,q p,q 为两个分段常数表达式,则 x< a ? p : q \texttt{x<}a\texttt{?}p\texttt{:}q x<a?p:q 是分段常数表达式。

(后两条条件中, x > a x>a x>a x < a x<a x<a 是条件, p , q p,q p,q 为数值,该表达式是三目运算表达式。)

例如,x>154?220:x<37?16:10 是一个分段常数表达式,因为 220x<37?16:10 都是分段常数表达式,从而整个表达式由第 2 条规则也是分段常数表达式。


给出一个分段常数表达式 S S S,保证出现的正整数均不超过 m m m

yummy 有 q q q 个询问,每次给出一个自然数 x x x 的值,希望你求出分段常数表达式的值。

输入格式

输入的第一行有两个正整数 m , q m,q m,q,分别表示表达式出现数字的最大可能值和询问个数。

第二行有一个字符串 S S S,表示这个分段常数表达式。

之后有 q q q 行,每行有一个自然数 x x x,表示一次询问。

输出格式

对于每个询问输出一行一个正整数,表示表达式的结果。

样例 #1

样例输入 #1

20 5
x>12?x<15?4:10:x<12?14:7
15
12
14
7
1000000

样例输出 #1

10
7
4
14
10

样例 #2

样例输入 #2

参见 expr/expr2.in

样例输出 #2

参见 expr/expr2.ans

样例 #3

样例输入 #3

参见 expr/expr3.in

样例输出 #3

参见 expr/expr3.ans

样例 #4

样例输入 #4

参见 expr/expr4.in

样例输出 #4

参见 expr/expr4.ans

提示

【样例 1 解释】

如果我们进行适当的换行和缩进可以得到:

x>12?    //如果 x>12
  x<15?  //那么判断 x<15 是否成立
    4    //如果是则得到 4
    :10  //如果不是则得到 10
  :x<12? //否则(如果 x<=12) 判断 x<12 是否成立
    14   //如果是则返回 14
    :7   //如果不是则返回 7

按照这个思路模拟即可得到样例输出。

【样例 2 解释】

该样例满足测试点 6 6 6 的性质。

【样例 3 解释】

该样例满足测试点 10 10 10 的性质。

【样例 4 解释】

该样例满足测试点 19 19 19 的性质。

【数据范围】

n n n S S S 中三目运算符的个数。(选手可以通过 n n n 来估计 S S S 的串长。)

对于全体数据,保证 0 ≤ n ≤ 1 0 5 0\le n\le 10^5 0n105 1 ≤ m ≤ 1 0 5 1\le m\le 10^5 1m105 1 ≤ q ≤ 1 0 5 ​ 1\le q\le 10^5​ 1q105 1 ≤ x ≤ 1 0 9 1\le x\le 10^9 1x109,且 S S S 是分段常数表达式。

测试点编号 n ≤ n\le n m ≤ m\le m q ≤ q\le q
1 1 1 0 0 0 1 0 5 10^5 105 10 10 10
2 2 2 1 1 1 1 0 5 10^5 105 10 10 10
3 ∼ 5 3\sim 5 35 100 100 100 9 9 9 10 10 10
6 ∼ 9 6\sim 9 69 100 100 100 1 0 5 10^5 105 10 10 10
10 ∼ 12 10\sim 12 1012 1 0 5 10^5 105 9 9 9 10 10 10
13 ∼ 16 13\sim 16 1316 1 0 5 10^5 105 1 0 5 10^5 105 10 10 10
17 ∼ 18 17\sim 18 1718 1 0 5 10^5 105 9 9 9 1 0 5 10^5 105
19 ∼ 25 19\sim 25 1925 1 0 5 10^5 105 1 0 5 10^5 105 1 0 5 10^5 105

附件下载
https://www.luogu.com.cn/fe/api/problem/downloadAttachment/hgrjxro5?contestId=200686

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值