AT_agc039_c.[AGC039C] Division by Two with Something
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
现在给你一个整数N和一个二进制数X,对0∼X之间的每个整数K在返回到其原始值之前,需要执行多少次下面的操作:
如果K是奇数
K=(K−1)÷2
如果K是偶数
K=(K÷2)+2N−1
当 K 不可能返回原始值不计入操作次数。
输入格式
第一行输入一个整数N,第二行输入一个N位的整数X。
输出格式
一个整数,表示0∼X之间的每个整数K在返回到其原始值之前,需要执行的操作次数的总和。
由于答案可能过大,请对最终答案mod 998244353。
输入输出样例
输入#1
3 111
输出#1
40
输入#2
6 110101
输出#2
616
输入#3
30 001110011011011101010111011100
输出#3
549320998
说明/提示
- 1≤N≤2×105
- 0≤X<2N
- X是一个长度为N的二进制数(X的数位不足N时用前导0补齐)
- 所有数字都是整数
例如,K=3时,操作为:1,0,4,6,7,3,所以K=3时答案是6。
输入解题思路,AI测评打分。不知道怎么写?