当前位置: 首页 > wzjs >正文

文山网站开发代理小企业网站建设

文山网站开发,代理小企业网站建设,制作网页心得,台州做网站电话题目链接:https://codeforces.com/problemset/problem/1615/B 位运算之前没怎么写过,所以不会写。留一份题解,作为复习使用。 题解:按位与的结果不为0,则至少有一列全为1.要求删除的数最少,即要求该列原本…

题目链接:https://codeforces.com/problemset/problem/1615/B

位运算之前没怎么写过,所以不会写。留一份题解,作为复习使用。

题解:按位与的结果不为0,则至少有一列全为1.要求删除的数最少,即要求该列原本含有的1最多。则统计每一位的1的个数,找出个数最大值,用数组数字的总数,减去1的个数,即需要删除的个数。

第一版写的是枚举每一个数,对每一个数的每一位用&(1<<j)判断是不是1,用一个数组来统计每一位的结果。然而是TLE...

第二版,借助AI工具,发现了从0开始到某一位的数据的二进制排列规律,用前缀和求解可得。

背景知识

在二进制表示中,每一位(bit)会以固定的周期出现 0 和 1。例如:

  • 第 0 位(最低位):0, 1, 0, 1, 0, 1, ...,周期为 2。
  • 第 1 位:0, 0, 1, 1, 0, 0, 1, 1, ...,周期为 4。
  • 第 2 位:0, 0, 0, 0, 1, 1, 1, 1, ...,周期为 8。

我们可以直接计算某一位为 1 的数量,而不需要逐个遍历每个数字。


公式解释

1. 完整周期的贡献

对于第 j 位:

  • 每 (1 << (j + 1)) 个数字中,第 j 位会有连续 (1 << j) 个 1。
  • 例如:
    • 第 0 位:每 2 个数字中有 1 个 1。
    • 第 1 位:每 4 个数字中有 2 个 1。
    • 第 2 位:每 8 个数字中有 4 个 1。

完整的 (1 << (j + 1)) 块的数量为:(r  + 1)/(1 << (j + 1))     +1是因为0也要算进去

这些完整块中,第 j 位的 1 的总数为:(r  + 1)/(1 << (j + 1)) * (1 << j)

2. 剩余部分的贡献

可能还有一部分数字不足一个完整的 (1 << (j + 1)) 块,这部分的长度为  (r + 1) % (1 << (j + 1))

在这部分中,第 j 位为 1 的数量为:

  • 如果剩余部分长度大于 (1 << j),那么第 j 位会有 (r + 1) % (1 << (j + 1)) - (1 << j)个 1。
  • 如果剩余部分长度小于等于 (1 << j),那么第 j 位会有 0 个 1。
3. 总计第 j 位的 1 的数量

将完整周期和剩余部分的贡献相加

代码如下:

#include <bits/stdc++.h>
using namespace std;void count(int r,int*arr)
{for(int i=0;i<20;i++){int num=0;int period=(1<<(i+1));int full_p=(r+1)/period;int remain=(r+1)%period;if(remain>(1<<i)){num=full_p*(1<<i)+remain-(1<<i);}else{num=full_p*(1<<i);}arr[i]=num;}
}int main()
{int t;cin>>t;int ans[t];int k=0;while(t--){int l,r;cin>>l>>r;int arr_l[20];int arr_r[20];count(l-1,arr_l);count(r,arr_r);int max=0;for(int i=0;i<20;i++){if((arr_r[i]-arr_l[i])>max){max=arr_r[i]-arr_l[i];}}ans[k++]=r-l+1-max;}for(int i=0;i<k;i++){cout<<ans[i]<<"\n";}return 0;
}

http://www.dtcms.com/wzjs/591262.html

相关文章:

  • 用动态和静态设计一个网站十大房产网站排行榜
  • js跳转到别的网站今天国际新闻大事
  • wifi扩展器做网站泰安seo优化
  • 做佩戴护身符的厂家网站富阳网站
  • 做外贸比较好的网站怎么制作网站
  • 区域城市分站网站怎么做wordpress 数据库清理
  • logo网站设计素材效果图工作室
  • 网站html5自适应南京网站建设优化
  • 如何做京东优惠券网站网上商城网站设计
  • 情侣建站的wordpress主题东圃手机网站建设
  • 网站建设流程和方法松原做网站的公司
  • 猪八戒上面还是淘宝上做网站技术好中国建设银行网站的社保板块在哪里
  • 克隆网站首页做单页站几个文件网站建设职业发展前景
  • 兰州网站seo公司建设工程施工合同专属管辖
  • 网页游戏网站斗地主百度知道网页版入口
  • 餐饮行业网站建设关于机关单位网站的建设
  • 网站推广的方法和途径免费的行情网站推荐下载安装
  • 长治网站制作一般需要多少钱做app 需要先做网站吗
  • 重庆市建设领域农民工工资专户网站wordpress 文章颜色
  • 开发网站需要什么技术2022网站建设与运维预算
  • 网站与网页的关系宁波做外贸网站建设
  • 天津圣辉友联网站建设网络广告形式
  • 专业提供网站建设服务重庆建设工程信息查询
  • 网站制作先做数据库还是前台wordpress国外图床
  • 有关建筑网站建设方案北京新增死亡病例详情
  • 天堂 最新版中文在线百色seo快速排名
  • 网站定制开发公司推荐代运营公司收费
  • 电子商务网站建设与管理相关论文软件开发流程ppt
  • 做产品的淘宝客网站wordpress页面和分类目录
  • 作风建设年活动网站网站后台用户名密码