首页 > 其他分享 >「题解」二进制与一

「题解」二进制与一

时间:2025-01-20 20:21:49浏览次数:1  
标签:二进制 题解 ll long 操作 define lld

传送门:水滴洛谷


题目大意:给定一个正整数 $n$,给出操作次数 $p$。每次操作让 $n$ 加上一个非负整数 $x$,使得 $n$ 的第 $k$ 位为 $0$(从右往左数)。如果本身为 $1$ 就不用操作。且每次操作 $n + x$ 回影响后续操作。问 $x$ 的和是多少。

首先我们要知道,判断 $n$ 的第 $k$ 位是否为 $0$,就要用 $n$ 来与上 $1 << (k - 1)$ 来判断。如果为 $0$ 就过,否则就设 $x$ 为 $n % (1 << (k - 1))$,发现 $n$ 加上 $(1 << (k - 1)) - x$ 时,$n$ 的第 $k$ 位为 $1$,且 第 $k \sim 1$ 位都为 $0$,这种构造是最优的。

数据范围很大,要开 $long long$。

code

#include <bits/stdc++.h>
#define pii pair<int, int>
#define ull unsigned long long
#define ll long long
using namespace std;

const int maxn = 1e5 + 5;

ll n, q, k, ans, x;

signed main() {
	scanf("%lld%lld", &n, &q);
	while (q--) {
		scanf("%lld", &k);
		if (!(n & (1ll << (k - 1)))) {
			x = n % (1ll << (k - 1));
			ans += (1ll << (k - 1)) - x;
			n += (1ll << (k - 1)) - x;
		}
	}
	printf("%lld", ans);
	return 0;
}

标签:二进制,题解,ll,long,操作,define,lld
From: https://www.cnblogs.com/Aelt/p/18682460

相关文章

  • 题解:CF580B Kefa and Company
    CF580BKefaandCompany前言。其实本题与这道题极为相似,所以建议降橙。思路因为输入顺序不影响就结果,所以可以先给\(a\)按照工资从小到打排序一下序(这里\(a\)使用MAP)。然后再使用尺取法,只要\(a_{r+1}\)的值减\(a_l\)的值\(\ltk\)就将\(r\)加\(1\)。然后发现每......
  • [BZOJ3160] 万径人踪灭 题解
    首先正难则反,想到答案即为满足第一条要求的回文子序列数量,减去回文子串数量。回文子串数量\(hash+\)二分即可,考虑前半部分。假如我们将一个回文子序列一层层剥开,就会发现它其实是由多个相同的字母对拼成的。那么容易想到把字母\(a\)和字母\(b\)的贡献分开计算。那第一条要......
  • PKUWC 2025 题解
    本人太菜,实在不会T3,所以只有T1,T2的题解。注:考场上只做出来了Day1T1,其他题参考了其他人的题解。Day1T1电池检测题面有\(a\)个有电的电池和\(b\)个没电的电池,每次只能选择两个电池放进手电筒,只有这两个电池全有电才能让手电筒启动。问最坏情况下最少可以让手电筒启......
  • AT_abc389_f [ABC389F] Rated Range 题解
    题目传送门前置知识Treap|线段树解法考虑将询问的\(x\)离线下来在升序排序后一起处理。观察到每次操作只有\(+1\),即其之间的相对大小关系不会发生变化,此时就只需要支持将值在\([l,r]\)内的数加一,可以记录懒惰标记。线段树上二分找到端点或直接FHQ-Treap分裂出合法......
  • [ABC389C] Snake Queue题解
    前情题意:问题陈述有一个(蛇)队列。最初,队列是空的。你会得到\(Q\)个查询,这些查询应按给出的顺序处理。查询有三种类型:类型\(1\):以1l的形式给出。一条长度为\(l\)的蛇会被添加到队列的末尾。如果添加前队列为空,则新添加的蛇的头部位置为\(0\);否则,它就是队列中最后......
  • Atcoder ABC389E Square Price 题解 [ 绿 ] [ 二分 ] [ 贪心 ]
    SquarePrice:垃圾卡精度,垃圾卡精度,垃圾卡精度,傻逼出题人,傻逼出题人,傻逼出题人,傻逼出题人,傻逼出题人,傻逼出题人,傻逼出题人。把ll改__int128前WA*22,改__int128直接AC了,难评。抛开卡精度这题还是挺好的。暴力先考虑暴力思路,显然暴力应该这么打:把所有物品全丢进优先队列......
  • 【鱼皮大佬API开放平台项目】Spring Cloud Gateway HTTPS 配置问题解决方案总结
    问题背景项目架构为前后端分离的微服务架构:前端部署在8000端口API网关部署在9000端口后端服务包括:api-backend(9001端口)api-interface(9002端口)初始状态:前端已配置HTTPS(端口8000)后端服务未配置HTTPS通过Nginx进行反向代理遇到的问题第一阶段:400Ba......
  • uniapp获取元素高度不准确问题解决
    uniapp通过boundingClientRect获取的元素高度和实际高度差了不少,下面是复现和解决过程:我的代码: 得到的结果: 高度只有105用工具量一下: 实际有240px,遂gpt问下: 注意到了缩放比这个之前没想到的点,往下面看gpt更多的回复内容: 先获取系统缩放比,再乘以拿到的......
  • [BZOJ3451] Normal 题解
    这题分三步:葺网(期望)、淀粉质(点分治)、蓉翅(容斥),再佐以芬芳团(FFT),一道巨难无比的luogu黑题就诞生了。期望先考虑在淀粉树上,\(i\)点在\(j\)点的子树里的概率。实际上这个问题的每种情况相当于是\(n\)个点的各种排列方式。这也就相当于,我们在选择\(j\)点之前,没有选择路径\((......
  • PKUWC 2025 题解
    本人太菜,实在不会T3,所以只有T1,T2的题解。注:考场上只做出来了Day1T1,其他题参考了其他人的题解。Day1T1题面有\(a\)个有电的电池和\(b\)个没电的电池,每次只能选择两个电池放进手电筒,只有这两个电池全有电才能让手电筒启动。问最坏情况下最少可以让手电筒启动的尝试次......