牛客网-2018 美团 CodeM 编程大赛-初赛 B 轮-3-低位值_美团编程大赛决赛牛客网-程序员宅基地

技术标签: 数学相关  规律  贪心  

ACM模版

描述

这里写图片描述

题解

一个规律题。默认, l l 0 ,考虑取 r r ,首先,如果有非最高位 1 存在 x x 个,有第二个部分公式得答案加上 x ,然后根据第三个公式得答案加 1 1 并且获取一个新的二进制串 r (全是 1 1 ),以此类推,直到 r = 0

对于 r r 我们需要考虑两种情况,因为上述循环的第一次取的 r 不一定全是 1 1 。如果 n 二进制存在至少两个一,例如 100100110 100100110 … ,那么从高位开始查找到第二个 1 1 ,假如说第一个 1 的权值是 2k 2 k ,第二个 1 1 的权值是 2 k ,然后取 r r 2 k + 2 k 1 ,此时二进制是 100011111 100011111 … ,也就是说初始存在 x=k x = k 个非最高位 1 1 ,这是第一种情况;我们还需要考虑一下 r n n 的情况,计数有多少个非最高位 1 ,然后在这两种情况中取最优。这样我们就处理完第一轮的运算了,后续的类推,都保证是全 1 1 二进制,所以我们可以通过预处理来确定不同长度的全 1 二进制通过多少次运算可以得到 r=0 r = 0 的状态。

这个题仔细模拟一下,很容易找到规律的,一开始以为是数论题,着实有些虚。

代码

#include <iostream>
#include <string>

using namespace std;

const int MAXN = 2e4 + 10;

string num;
long long temp[MAXN] = {
   0, 1, 1};

void init()
{
    for (int i = 3; i < MAXN; i++)
    {
        temp[i] = temp[i - 1] + i - 1;
    }
}

int main(int argc, const char * argv[])
{
    init();

    cin >> num;

    long long ans = 0;
    for (int i = 1; i < num.length(); i++)
    {
        if (num[i] == '1')
        {
            ans = (num.length() - 1) - i;
            break;
        }
    }

    long long cnt = 0;
    for (int i = 1; i < num.length(); i++)
    {
        if (num[i] == '1')
        {
            cnt++;
        }
    }

    ans = max(ans, cnt);
    ans += temp[num.length()];

    cout << ans << '\n';

    return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f_zyj/article/details/80792391

智能推荐

uCosii从任务的建立到运行_ucosii用户任务中都有参数初始化,先执行哪个-程序员宅基地

文章浏览阅读823次。μC/OS-Ⅱ从任务的建立到运行提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、任务建立到运行整体流程二、分步功能实现1.μC/OS-Ⅱ初始化2.读入数据总结前言最近在学习ucosii实时操作系统,记录下学习过程,以待日后查阅.tips:本文所用ucosii版本为V2.86,硬件平台为STM32.一、任务建立到运行整体流程μC/OS-Ⅱ任务从建立到运行的整体流程如下所述:1. μC/OS-Ⅱ初始化: OSInit();2. 创建任务: Create_T_ucosii用户任务中都有参数初始化,先执行哪个

【燃料电池】燃料电池并网以最大额定功率运行研究(Simulink实现)_如何实现燃料电池大规模并网-程序员宅基地

文章浏览阅读260次。控制和电流谐振控制方法,增强了系统的稳定性,提高了供电质量。部分文献针对风力发电、太阳电池并网系统的小干扰稳定性进行研究,对燃料电池发电系统稳定性分析具有一定指导意义。文献[6,7]则分别建立太阳电池和风力发电系统的小信号模型,利用特征值分析法对系统的小干扰稳定性进行分析。文献[8]在光伏发电系统控制器参数进行全局优化以提高系统稳定性,但只考虑特征值作为单一优化目标,没有考虑阻尼比对系统稳定的影响,影响了控制参数的优化效果。在该模型中,燃料电池连接到电网,并由基于功率的控制器控制。行百里者,半于九十。_如何实现燃料电池大规模并网

AGI要闻:斯坦福李飞飞首次创业,瞄准“空间智能”;OpenAI下周发布搜索产品挑战谷歌;新的开源 AI 眼镜来了|钛媒体AGI | 最新快讯

她的专业领域是计算机视觉和认知神经科学。对于这家新的初创公司介绍,一位消息人士提到,上个月,李飞飞在温哥华 TED 大会上演讲中表示,最前沿的 AI 研究涉及一种算法,这种算法可以合理地推断出图像和文字在三维环境中的样子,并根据这些预测采取行动,这种算法使用的概念叫做“空间智能”。让机器狗在瑜伽球上保持平衡是很有挑战的任务,在没有大语言模型之前需要人去调整参数,但现在像 GPT-4 这样的大语言模型,因为本身就具备了丰富的物理知识,所以大语言模型可以代替人类去调整参数,并根据反馈的结果进行推理和参数调整。

Pytorch加载本地自己整理好的cifar10或cifar100数据集,并进行训练_cifar100 pytorch-程序员宅基地

文章浏览阅读6.7k次,点赞11次,收藏49次。Pytorch加载本地自己整理好的cifar10数据集,并进行训练这里写自定义目录标题1.下载数据集2.解压3.复制移动4.修改tv.datasets.CIFAR10源码使用pytorch在线下载cifar10数据集时,经常报错,而且很慢,倘若下载cifar100,那等待时间可想而知了。为了不浪费时间等待,可以将数据集先下载到本地,在自行加载,下面介绍一种修改源码简单的方法。1.下载数据集(随意下载,官网地址:http://www.cs.toronto.edu/~kriz/cifar-10-pytho_cifar100 pytorch

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

这些问题标志着我后续研究的重点方向,需要我继续深入学习AVFoundation框架的使用,特别是其控制摄像头的具体方法,并探索如何将这些控制整合到机械臂的运动调整中,以确保最终拍摄出的视频质量符合预期。尽管目前市场上有许多稳定设备如平衡环架(gimbal)来辅助拍摄,以求达到稳定和多角度的拍摄效果,但在此篇文章中,我将探索一种独特的解决方案:通过将手机安装在机械臂的末端来进行拍摄,以实现那些传统方法难以捕捉的特殊视角。随着人工智能技术的不断进步和普及,AI与机器人的结合无疑将成为未来技术发展的重要趋势。

【计算机毕业设计】springboot党员之家服务系统小程序-程序员宅基地

文章浏览阅读342次,点赞6次,收藏8次。党员之家服务系统小程序的功能已基本实现,主要包括首页、个人中心、学生管理、教师管理、任务信息管理、报名信息管理、任务排名管理、学习资料管理、每日打卡管理、交流信息管理、回复信息管理、积极分子管理、党员信息管理、交流论坛、系统管理等。论文主要从系统的分析与设计 、数据库设计和系统的详细设计等几个方面来进行论述,系统分析与设计部分主要论述了系统的功能分析、系统的设计思路,数据库设计主要论述了数据库的设计,系统的详细设计部分主要论述了几个主要模块的详细设计过程。

随便推点

深度学习框架Caffe简介(1)_cafeact是用什么语言写的-程序员宅基地

文章浏览阅读1k次。来源于油管上的讲解视频由伯克利大学开发,代码是用C++编写的,但是提供了python和matlab的接口,可以用这两个编程语言实现;在训练和微调前馈模型时效果很好。bolb:将data和label封装在blob里面;layer:对应网上的层,比如hidden layer\inputlayer等;Net:整个网络构成;Solver:进行梯度更新的。不用写一个代码就可以训练网络!!但是,需要做的事情是:1、转换数据(对输入数据做一系列预处理,转换成我们需要的格式,Caffe支持多种数据格式_cafeact是用什么语言写的

RocketMQ学习教程:07.RocketMQ消息查询【云图智联】_failed to query message by id:-程序员宅基地

文章浏览阅读1.3k次。在实际开发中,经常需要排查一条消息是否成功发送到底层MQ中,或者查看MQ中消息的内容,以及如何将消息发送给指定的/所有的消费者组重新消费。本文对RocketMQ提供到的查询机制和背后原理进行深入的介绍。文章主要包括4个部分: 消息查询介绍:介绍消息查询中使用到的Message Key 、Unique Key、Message Id 的区别 消息查询工具:分别介绍命令行工具、管理平台、客户端API这三种工具的详细用法,以及如何让消费者重新消费特定的消息。 核心实现原理:介绍Messag_failed to query message by id:

人工智能_大杂烩-程序员宅基地

文章浏览阅读74次。杂谈,一些看到有用的点的记录

我是如何从测试转为产品的_测试如何转产品-程序员宅基地

文章浏览阅读4.2k次,点赞5次,收藏7次。自我介绍先简单说下自己,我是参加了小强老师的课程之后大概过了不到一年的时间转成产品的。自己之前一直干的是测试的工作。男性一枚。自己能转型成功靠的是两点,一点是自己足够的坚持和突破,愿意破釜沉舟;二点是在老师的班里学到了很多东西,这个东西不是大家说的知识,而是思维,考虑问题解决问题的思维,这是让我在工作中最最最最受益匪浅的!感谢老师!为什么我会转产品之前也咨询过小强老师的意见,老师..._测试如何转产品

rsync+inotify实现NFS实时同步数据以及压力测试_centos6.5 rsync ino-程序员宅基地

文章浏览阅读1.2k次。1第一步:搭建NFS服务器关于NFS服务器的搭建请参考http://blog.csdn.net/qq_30256711/article/details/78463940第二步:rsync同步实现关于rsync同步请参考http://blog.csdn.net/qq_30256711/article/details/78539342第三步:inotify结合rsync实现实时同步_centos6.5 rsync ino

第11章 软件工程

2.可重复级:建立了基本的项目管理过程和实践来跟踪项目费用,进度,功能特性。5.优化级:加强了定量分析,通过过程质量反馈,新观念,新技术的反馈。1.初始级:软件过程杂乱无章,没有明确定义的步骤,英雄式核心人物。定量管理(CL4):已定量管理的过程的制度化。已管理(CL2):已管理的过程的制度化。已定义(CL3):已定义的过程的制度化。3.已定义级:过程文档化,标准化。4.已管理级:软件过程和产品质量。定量管理的:已度量和控制。优化的:集中于过程改进。已管理的:为项目服务。已定义的:为组织服务。

推荐文章

热门文章

相关标签