首页 > 其他分享 >题解 正妹吃月饼

题解 正妹吃月饼

时间:2023-09-01 21:44:06浏览次数:48  
标签:lenb 月饼 int 题解 ++ 正妹 ans sb sa

题目链接

由于每个质量的月饼只有一个,并且质量恰好是2的整数倍,所以考虑将一个质量看成一个二进制位。

那么也就是说,我们要构造一个二进制数 \(x\),使得 \(x\) 的 \(1\) 的个数最多,且满足 \(a\le x \le b\)。

那么这就可以用类似数位 \(DP\) 的思路来做,从高位往低位看,若 \(a_i=b_i=1\),那么这一位只能填 \(1\);若 \(a_i=b_i=0\),这一位只能填 \(0\);若 \(a_i=0,b_i=1\),我们在这一位填 \(0\),之后的每一均填 \(1\) 即可满足约束条件。

点击查看代码
#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
LL a,b;
int lena,lenb;
int sa[100],sb[100];

int main() {
    cin>>a>>b;
    vector<int> s1,s2;
    while(a) {s1.push_back(a%2); a/=2;}
    while(b) {s2.push_back(b%2); b/=2;}
    for(int x:s1) sa[++lena]=x;
    for(int x:s2) sb[++lenb]=x;
    int ans=0;
    for(int i=lenb;i>=1;i--) {
        if(sa[i]==1&&sb[i]==1) ans++;
        if(sa[i]==0&&sb[i]==1) {
            ans+=i-1;
            break;
        }
    }
    cout<<ans;

    return 0;
}

标签:lenb,月饼,int,题解,++,正妹,ans,sb,sa
From: https://www.cnblogs.com/zhangyuzhe/p/17672900.html

相关文章

  • NOIP2012提高组初赛易错题解析
    一.3. 错误原因:忘记了解析:Intel是全球最大的CPU厂商,AMD是世界上首个研发出7纳米CPU的厂商 6.错误原因:忘记了解析:ENIAC是世界上首台计算机,属于第一代计算机,即电子管计算机 10.错误原因:选项理解错误解析:A由蝙蝠,发明雷达是正确的,B因特网的发明与蜘蛛网无关,只是形......
  • NOIP2011提高组初赛易错题解析
    一.7.错误原因:不知道解析:快速排序在理论上最低的时间复杂度为O(n),但实际最低的时间复杂度为O(nlogn) 二.1.错误原因:漏项了解析:这棵树最少有12层,但题目是问可能是几层,所以还可能是2011层 5.错误原因:漏了一种情况解析:这道题的树有两种,所以答案也有两种 ......
  • 牛客小白月赛77 C题解 | 小Why的商品归位
    原题链接先不考虑车子的容量问题,因为结束位置保证是在起始位置之后的,那我们从前往后扫,发现是可以知道每个点时的车内的商品。但是现在有了容量限制,我们怎么办呢,如果对于一段,k都是大于每个点的货物量时,可以一趟装完,但是如果大于k就需要不知一次,可以发现所需的其实是该段的最大......
  • CF1626F A Random Code Problem 题解
    题意给定长度为\(n\)的数组\(a\)和一个整数\(k\),执行下面的代码:longlongans=0;//定义一个初始值为0的长整型变量for(inti=1;i<=k;i++){ intidx=rnd.next(0,n-1);//生成一个介于0到n-1的随机数(含0和n-1) //每个数被选中的概率是相同的 an......
  • Maximum Diameter 题解
    MaximumDiameter题目大意定义长度为\(n\)的序列\(a\)的权值为:所有的\(n\)个点的第\(i\)个点的度数为\(a_i\)的树的直径最大值,如果不存在这样的树,其权值为\(0\)。给定\(n\),求所有长度为\(n\)的序列的权值和。思路分析\(n\)个点的树的边数为\(n-1\),总度数......
  • 【题解】Harbour.Space Scholarship Contest 2023-2024 D,E,F(CF1864)
    D.MatrixCascade题目描述:有一个大小为\(n\timesn\)的矩阵,由0和1组成。行的编号从上到下依次为\(1\)到\(n\),列的编号从左到右依次为\(1\)到\(n\)。第\(x\)行与第\(y\)列交叉处的单元格记为\((x,y)\)。水月想把矩阵的所有元素都变成0。她可以一步完成以下操作:选择任意......
  • kde桌面“屏幕边缘”无法触发问题解决
    鼠标放到屏幕边缘无法触发效果,搜索后是设置问题。解决办法:系统设置——硬件——显卡与显示器——显示特效合成器,勾选允许应用阻止显示特效合成,然后右下角点击应用参考:https://www.cnblogs.com/pipci/p/14870650.html......
  • CF1864D 题解
    CF1864DMatrixCascade题解Links洛谷CodeforcesDescription给定一个\(n\timesn\)的01矩阵。定义一次操作为:选择矩阵上第\(i\)行第\(j\)列的格子\((i,j)\),将其取反,并取反所有满足\(x>i,x-i\ge|y-j|\)的位置\((x,y)\)。其中,“取反”的意思为:把\(0\)......
  • CF1712F Triameter 题解
    Description你有一棵有\(n\)个点的树,树上的每条边权值都为\(1\)。现在有\(q\)次询问,每次询问一个整数\(x\),并将叶子结点全部相连上权值为\(x\)的边(操作不会保留)。问每次操作后图的直径是多少。图的直径定义为\(\underset{1\lequ<v\leqn}{\max}d(u,v)\)。\(3\leqn\le......
  • springcloud 跨域问题解决
    问题原因跨域本质是浏览器基于同源策略的一种安全手段同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能所谓同源(即指在同一个域)具有以下三个相同点协议相同(protocol)主机相同(host)端口相同(port)反之非同源请求,也就是协议、端口、主机其中一项不相同的......