首页 > 其他分享 >【题解】洛谷 P9532 [YsOI2023] 前缀和

【题解】洛谷 P9532 [YsOI2023] 前缀和

时间:2023-08-14 11:36:51浏览次数:49  
标签:洛谷 前缀 YsOI2023 int 题解 long P9532

原题链接

【LGR-151-Div.2】洛谷 8 月月赛 II & YsOI2023 T1

解题思路

设有一序列 a,其中 a= a2,第 k( ≥ 3) 项为前 k-1 项的前缀和。可以发现前 q 项分别为第一项的 2倍,2倍,2倍,2倍,2倍…2q-3 倍,2q-2 倍。

扩展到整个序列中,可得第 i( ≥ 3) 项一定为 2i-2a1。要保证 a尽量小,就可以让 x 出现的位置尽量靠后。

那么可以让 i 从 n-2 开始枚举,每次减1。如果 x 能被 2i 整除,说明 x 最后也只能是序列中第 i+2 个数(前面多减了一个2);再从 i+3 开始循环到 n,依次乘2,乘到 n 次就是 a的最小值了。当然,如果 n = 2,则直接输出 x 就好啦。

注意:乘起来的结果可能会很大,要开 long long。

代码实现

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int T;
 4 int main() {
 5     for (cin >> T; T --;){
 6         int n;
 7         long long x;
 8         cin >> n >> x;
 9         if (n == 2){
10             cout << x << endl;
11             continue;
12         }
13         for (int i = n - 2; ; i --)
14             if (!(x % (1 << i))){
15                 for (int j = i + 3; j <= n; j ++)
16                     x <<= 1; // 左移1,相当于乘2
17                 cout << x << endl;
18                 break;
19             }
20     }
21     return 0;
22 }

标签:洛谷,前缀,YsOI2023,int,题解,long,P9532
From: https://www.cnblogs.com/vectorSpace-blog/p/17628163.html

相关文章

  • 【LSOIT1】秒速,五厘米 ----题解
    【LSOIT1】秒速,五厘米----题解题目传送门【明里。】【贵树君。】【明年,也能一起看樱花吗?】【昨天,我做了一个梦,在梦里,我们都才十三岁。那是覆盖着厚厚的一层白雪的田园。】【民家的灯火遥不可及,只能看到零星的两点。】很显然,这是一道签到题,出题人非常良心。题目大意:从......
  • 【LSOIT2】言叶之庭 ---题解
    【LSOIT2】言叶之庭---题解题目传送门【你肯定怀疑我有问题吧。】【没有。】【我不介意呀,反正人类,多多少少有点不正常的。】【我知道这不正常,但真的很喜欢设计鞋子,当然,水平还不够。】【不知不觉,我都在期待雨天。晴天里,总觉得被困在孩子气里的世界,焦虑无比。】【在我看来......
  • 【LSOIT3】天气之子 ---题解
    【LSOIT3】天气之子---题解题目传送门【我叫阳菜。请多关照,帆高。】【她一直不断的祈祷着,一边不断地穿过那个鸟居。】【我做了个梦,初见你时,就像是迷途的小猫一样。】【而你却帮我找到了存在的意义。】【呐,马上要开始放晴了哦。】这个题其他做法不知道怎么搞,暴力的话也不......
  • 洛谷P9533 区间翻转区间异或和 题解
    原题:洛谷P9533一道性质题不难发现,区间翻转操作是没有用的(虽然比赛的时候想了好久www)首先,区间翻转要想对答案有贡献,一定是下边这种情况:三个连续的区间:\(A~|~B~|~C\)满足:\(B\oplusC=0,A\oplusC=0\)。将\(B∪C\)这个灵异区间进行翻转,使\(A\)和\(C\)合并到一起,会增加一......
  • 2023年多校联训NOIP层测试7+【LGR-149-Div.3】洛谷基础赛 #2 & qw Round -1
    2023年多校联训NOIP层测试7,集训欢乐赛,绝对欢乐,童叟无欺赛时在回家的路上+睡觉,所以没打。\(T1\)近似ybtOJ2049:【例5.19】字符串判等本题少了对空格的判断,水题。PS:题面和题解中都写了文件输入输出,测评时没有文件输入输出是几个意思,艹。#include<bits/stdc++.h>usingname......
  • 【题解】Educational Codeforces Round 146(CF1814)
    而且怎么感觉E,F比D要简单很多,大概是因为比较套路吧[惊恐]A.Coins题目描述:本题一共有\(t\)组数据。每组数据包含两个整数\(n\)和\(k\),如果存在两个非负整数\(x,y\),满足\(2\timesx+k\timesy=n\),输出YES,否则输出NO(yes,Yes,NO,nO均可)。题目分析:注意到\(y\)可......
  • CF992E 题解
    CF992E题解传送门更好的阅读体验简化题意:单点修改,设序列的前缀和序列是$s_i$,查询是否存在一个$i$满足$a_i=s_{i-1}$。思路:观察满足条件的数的个数。在不考虑$0$的情况下,如果一个$a_i$满足条件,那么对于一个比他小的满足条件的数$a_j$,一定会有$a_j=s_{j-1}$,而$......
  • AtCoder Beginner Contest 314 A - Ex题解
    AtCoderBeginnerContest314A-3.14嗯,你可以用string存小数点后的...B-Roulette对于每一个金额,用个vector存pair<>存一个人赌了多少,以及是哪一个人。C-RotateColoredSubsequence每种数用个双向链表记下来。D-LOWER我们观察到,对于2,3操作,只有最后一次有用,且......
  • 杂题题解
    UOJ21缩进优化题目链接记\(M=\max(a_i)\)从反面考虑,考虑\(x\)让答案减小的量。即为$\sum_{i=1}^n\lfloor\frac{a_i}{x}\rfloor\times(x-1)=(x-1)\sum_{i=1}^n\lfloor\frac{a_i}{x}\rfloor$。只需要快速计算$S=\sum_{i=1}^n\lfloor\frac{a_i}{x}\rfloor$。可以......
  • ABC 314 F 题解
    原题传送门题意有n支队伍进行比赛,起初,第i支队伍只有选手i一个人。总共要进行n-1场比赛,每次给出p和q,意为让p所在的队伍与q所在的队伍进行比赛(数据保证此时p和q不在同一支队伍),设p所在的队伍有\(siz_p\)个人,q所在的队伍有\(siz_q\)个人,则此次比赛中p......