打卡信奥刷题(239)用Scratch图形化工具信奥P9532[普及组][YsOI2023] 前缀和

[YsOI2023] 前缀和

题目背景

Ysuperman 模板测试的试机题。

小心立秋,小心秋丽。

题目描述

立秋有一个长度为 n n n 的数组 a a a,所有数字都是正整数,并且除了其中第一个数字以外其它数字都等于前面所有数字的和。

例如,数组 [ 1 , 1 , 2 , 4 , 8 , 16 ] [1,1,2,4,8,16] [1,1,2,4,8,16] 就有可能是立秋有的一个数组,因为除了第一个数字 1 1 1,后面的每个数字都是前面数字的和,例如:

  • 第二个数字 1 = 1 1=1 1=1
  • 第三个数字 2 = 1 + 1 2=1+1 2=1+1
  • 第四个数字 4 = 1 + 1 + 2 4=1+1+2 4=1+1+2
  • 第五个数字 8 = 1 + 1 + 2 + 4 8=1+1+2+4 8=1+1+2+4
  • 第六个数字 16 = 1 + 1 + 2 + 4 + 8 16=1+1+2+4+8 16=1+1+2+4+8

现在立秋告诉了秋丽数字 x x x 存在于这个数组中,秋丽希望知道 a n a_n an 最小会是多少,或者说整个数组最后一个数字最小有多少。

输入格式

本题有多组测试数据。

输入第一行一个数字 T T T 表示测试数据组数。

接下来 T T T 行每行两个正整数 n , x n,x n,x

输出格式

输出共 T T T 行,分别表示每组测试数据的答案。

对于某组数据 n , x n,x n,x,输出一行一个正整数表示可能的最小的 a n a_n an

样例 #1

样例输入 #1

3
2 2
3 2
4 2

样例输出 #1

2
2
4

样例 #2

样例输入 #2

3
3 1
3 2
3 4

样例输出 #2

2
2
4

样例 #3

样例输入 #3

3
2 6
3 6
4 6

样例输出 #3

6
6
12

样例 #4

样例输入 #4

3
3 3
3 6
3 12

样例输出 #4

6
6
12

提示

样例 1 解释
  • 第一组数据只有唯一可能的数组 [ 2 , 2 ] [2,2] [2,2],所以答案为 2 2 2
  • 第二组数据有两种可能的数组,分别是 [ 2 , 2 , 4 ] [2,2,4] [2,2,4] [ 1 , 1 , 2 ] [1,1,2] [1,1,2],所以答案为 2 2 2
  • 第三组数据有两种可能的数组,分别是 [ 2 , 2 , 4 , 8 ] [2,2,4,8] [2,2,4,8] [ 1 , 1 , 2 , 4 ] [1,1,2,4] [1,1,2,4],所以答案为 4 4 4
样例 2 解释
  • 第一组数据只有唯一可能的数组 [ 1 , 1 , 2 ] [1,1,2] [1,1,2],所以答案为 2 2 2
  • 第二组数据有两种可能的数组 [ 1 , 1 , 2 ] [1,1,2] [1,1,2] [ 2 , 2 , 4 ] [2,2,4] [2,2,4],所以答案为 2 2 2
  • 第三组数据有两种可能的数组 [ 2 , 2 , 4 ] [2,2,4] [2,2,4] [ 4 , 4 , 8 ] [4,4,8] [4,4,8],所以答案为 4 4 4
数据范围

对于前 30 % 30\% 30% 的数据,满足 x x x 不能被 2 2 2 整除,或者说 2 2 2 不是 x x x 的一个因数,或者说 x x x 是奇数。

另有 30 % 30\% 30% 的数据,满足 x x x 可以被 2 n − 2 2^{n-2} 2n2 整除,或者说 2 n − 2 2^{n-2} 2n2 x x x 的一个因数。

另有 20 % 20\% 20% 的数据,满足 x ≤ 1000 x\le 1000 x1000,可以证明在这个数据范围下答案可以使用一个 int 类型变量存储。

对于 100 % 100\% 100% 的数据,满足 1 ≤ T ≤ 1 0 4 1\le T\le 10^4 1T104 2 ≤ n ≤ 20 2\le n\le 20 2n20 1 ≤ x ≤ 1 0 9 1\le x\le 10^9 1x109

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值