翻转硬币(思维题,巧用bitset)

0翻转硬币 - 蓝桥云课

 

#include <bits/stdc++.h>
using namespace std;
bitset<200000001> t;
int main()
{
  int n;cin>>n;
  int ans=1;
  t[1]=1;
  int tot=n-1;
  for(int i=2;i<=n;i++){
    if(t[i]) continue;
    int j=i;
    ans++;
    while(j<=n){
      t[j]=!t[j];
      if(t[j]) tot--;
      else tot++;
      j+=i;
    }
    if(!tot) break;
  }
  cout<<ans;
  return 0;
}

这段代码中,bitset<200000001> t; 是一个非常关键的声明,它定义了一个名为 tbitset 对象,大小为 200,000,001 位(即 200,000,001 个布尔值)。bitset 是 C++ 标准库中的一个模板类,用于高效地存储和操作位(bit)序列。

在 C++ 中,bitset 的大小是固定的,必须在编译时确定。因此,bitset<200000001> 中的 200000001 是必须明确指定的,它表示 bitset 的大小为 200,000,001 位。如果不写这个大小,编译器会报错,因为 bitset 的大小是必须的。

1. bitset 的作用

bitset 是一种特殊的容器,它将每一位存储为一个布尔值(01)。它非常适合用于处理大规模的布尔状态数组,因为它的存储效率非常高,每一位只占用一个比特(bit)的空间,而不是一个字节(byte)。

在这个代码中,t 用于记录每个数字的状态。具体来说:

  • 如果 t[i]1,表示数字 i 被标记为“已处理”或“已翻转”。

  • 如果 t[i]0,表示数字 i 未被处理。

2. 为什么选择 bitset

  • 内存效率bitset 的内存占用非常小,因为它直接操作位,而不是使用更大的数据类型(如 boolint)。对于大规模数据(如 200,000,001 个数字),使用 bitset 可以显著减少内存占用。

  • 操作效率bitset 提供了高效的位操作方法,例如翻转、设置、清除等操作,这些操作的时间复杂度为 O(1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/971901.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全等级保护测评(等保测评):全面指南与准备要点

等保测评&#xff0c;全称为“网络安全等级保护测评”&#xff0c;是根据《网络安全法》及《网络安全等级保护条例》等法律法规&#xff0c;对信息系统进行安全等级划分&#xff0c;并依据不同等级的安全保护要求&#xff0c;采用科学方法和技术手段&#xff0c;全面评估信息系…

blackbox.ai 一站式AI代理 畅享顶级模型

最近Deepseek火遍大江南北&#xff0c;一夜之间到处都能看到有人在体验AI技术。然而这也带来了一些困难&#xff1a;由于服务器压力过大&#xff0c;ds开始使用了一些限流的措施。 实际上这只是针对免费用户的限制手段&#xff0c;通过API付费方式的用户并没有这样的限制。所以…

ERP对制造业务有何价值?

ERP 的定义 在定义 ERP 之前&#xff0c;我们先从其首字母缩写说起&#xff0c;ERP 代表企业资源规划。我们可以将 ERP 定义为一种企业软件&#xff0c;它帮助组织管理日常业务。从根本上讲&#xff0c;ERP 将客户管理、人力资源、商业智能、财务管理、库存以及供应链功能整合…

(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意&#xff1a;ESP-01sWIFI模块&#xff0c;去搜了一下这个小东西很有玩点&#xff0c;远程控制LED啥的&#xff0c;然后我就想…

详解 本机安装多个MySQL服务【为后续大数据量分库分表奠定基础,以mysql8.0为例,附有图文】

本机安装多个mysql 在电脑上新建mysql8文件夹&#xff0c;然后在mysql8文件下新建mysql3391文件夹。然后找到自己原本mysql的安装目录&#xff0c;我的是E:\software\mysql\one&#xff0c;如图所示&#xff1a; 将次目录下的所有文件全选复制粘贴在mysql3391文件夹下。 然后…

组学数据分析实操系列 |(四) 富集气泡图的绘制

前言:在上一篇中&#xff0c;我们介绍了利用Metascape零代码实现富集分析&#xff0c;但是Metascape的富集分析结果是以柱状图的形式展示的。文章中更常使用的富集结果可视化方式是气泡图。气泡图可以通过气泡的坐标、形状、颜色、大小等来展示更加丰富的富集分析结果&#xff…

浏览器开发者工具(F12)查看请求的响应体内容显示”无法加载响应数据: No resource with given identifier found“

背景 复习在 SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架中&#xff0c;点击登录请求后返回 JSON 格式的数据&#xff0c;出现只有登录失败的请求才有响应值&#xff0c;比如&#xff1a; {success: false, message: “没有此用户”, code: 400} 而成功的请求…

Deepseek 万能提问公式:高效获取精准答案

### **Deepseek 万能提问公式&#xff1a;高效获取精准答案** 在使用 Deepseek 或其他 AI 工具时&#xff0c;提问的质量直接决定了答案的精准度和实用性。以下是一个万能的提问公式回答&#xff1a; --- ### **1. 明确背景&#xff08;Context&#xff09;** - **作用**…

从月牙定理看古希腊数学的奇妙突破

文章目录 每日一句正能量前言古希腊人的 “化圆为方” 之梦&#xff08;一&#xff09;几何作图的基本规则&#xff08;二&#xff09;化圆为方问题的起源与发展&#xff08;三&#xff09;化圆为方的意义 月牙面积定理的诞生&#xff08;一&#xff09;希波克拉底的生平与成就…

Linux操作系统--信号

目录 1.信号产生 概念&#xff1a; core vs Term 信号产生的5种条件 从软硬件理解信号的保存 软件&#xff0c;如何理解信号处理&#xff1f; 硬件中断 2、信号捕捉 3、信号阻塞 信号其他相关常见概念 1.信号产生 概念&#xff1a; 什么是信号&#xff1f;信号一种用…

太空飞船任务,生成一个地球发射、火星着陆以及下一次发射窗口返回地球的动画3D代码

import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from mpl_toolkits.mplot3d import Axes3D# 天体参数设置&#xff08;简化模型&#xff09; AU 1.5e8 # 天文单位&#xff08;公里&#xff09; earth_orbital_radius …

sql注入之python脚本进行时间盲注和布尔盲注

一、什么是时间盲注和布尔盲注&#xff1f; 答&#xff1a;时间盲注是攻击者通过构造恶意sql语句利用sleep()等延迟函数来观察数据库响应时间差异来进行推断信息和条件判断。如果条件为真&#xff0c;数据库会执行延时操作&#xff0c;如果为假则立即返回。响应时间较短。 SELE…

Python .py文件打包成.exe可执行程序,带托盘图标的可执行文件

Python .py文件打包成.exe可执行程序&#xff0c;带托盘图标的可执行文件 安装pyinstalle 查看是否安装了pyinstaller 已安装 C:\Users\Administrator>pip show pyinstaller Name: pyinstaller Version: 6.12.0 Summary: PyInstaller bundles a Python application and a…

可信数据空间 X 大模型,实践场景案例分享

近期&#xff0c;国家数据局发布《可信数据空间发展行动计划&#xff08;2024—2028年&#xff09;》&#xff0c;这是国家层面首次针对可信数据空间这一新型数据基础设施进行前瞻性的系统布局。可信数据空间&#xff0c;是一类全新的数据流通利用基础设施&#xff0c;同时也是…

Java-数据结构-(HashMap HashSet)

一、Tree和Hash的区别 在上一篇文章中&#xff0c;我们讲到了"TreeMap"和"TreeSet"&#xff0c;但当我们刷题的时候却会发现&#xff0c;实际应用Map和Set时&#xff0c;却常常都只会用"HashMap"和"HashSet"&#xff0c;这是为什么呢…

DeepSeek在linux下的安装部署与应用测试

结合上一篇文章&#xff0c;本篇文章主要讲述在Redhat linux环境下如何部署和使用DeepSeek大模型&#xff0c;主要包括ollama的安装配置、大模型的加载和应用测试。关于Open WebUI在docker的安装部署&#xff0c;Open WebUI官网也提供了完整的docker部署说明&#xff0c;大家可…

ShenNiusModularity项目源码学习(9:项目结构)

ShenNiusModularity源码主要有11个project&#xff08;其实还有officialweb、test两个文件夹&#xff0c;大致有4、5个project&#xff0c;但看着跟主要项目代码没太大关系&#xff0c;暂时不管&#xff09;&#xff0c;这11个project的依赖关系如下图所示&#xff0c;其中最下…

用deepseek学大模型08-cnn残差网络

残差网络 参考&#xff1a;https://blog.csdn.net/2301_80750681/article/details/142882802 以下是使用PyTorch实现的三层残差网络示例&#xff0c;包含三个残差块和完整的网络结构&#xff1a; import torch import torch.nn as nnclass BasicBlock(nn.Module):expansion…

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。pri…

#渗透测试#批量漏洞挖掘#Apache Log4j反序列化命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 Apache Log4j反序列化命令执行漏洞 一、…