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

牛客小白月赛79


 

给定一个数字n,你可以对它进行接下来的操作——

  • 选择数字中任意一个数位删除

例如对10​24选择操作百位,数字则变成了124;对1​024选择操作千位,数字则变成了024
我们称一个数字是干净的,当且仅当数字满足以下任意一种情况:

  • 这个数字是偶数且不含前导零
  • 这个数字为空

请问最少需要进行多少次操作,使得数字nnn变成干净

输入描述:

 

第一行包含一个整数  (1≤n≤10^9),表示这个数字的大小
输入的数字保证不含前导零

输出描述:

 

输出最少需要的操作次数。

注意,因为一定能使得数字删成空,所以当前数字一定能变成干净的

示例1

1024

输出

0

说明

当前数字无需操作便满足条件

 想复杂了,我就说别人做这么快。

直接判断最后一位的偶数就行。

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
signed main()
{
    cin>>s;
    
    int sz=s.size();
    
    int pos=-1;
    
    for(int i=sz-1;i>=0;i--)
    {
        int x=s[i]-'0';
        if(x%2==0)
        {
            pos=i;
            break;
        }
    }
    if(pos==-1)
    {
        cout<<sz<<"\n";
    }
    else
    {
        int pos1=0;
        int ans=0;
        for(int i=0;i<=pos;i++)
        {
            int x=s[i]-'0';
            if(x==0)
            {
                ans++;
            }
            else
            {
                break;
            }
        }
        cout<<ans+sz-1-pos<<"\n";
    }
    return 0;

B、

有n个正整数,现在,你可以选择将其中一些数放进灵异背包中,使得背包里面所有数的总和为偶数且最大,求能得到的最大值是多少?

注意:如果你不将任何数放进灵异背包,此时背包总和为0

输入描述:

第一行包含一个正整数  (1≤n≤10^5),表示数字的数量
接下来n行包含n个正整数 a1,a2...,an ​ (1≤ai​≤2×10^4),表示数字的大小

输出描述:

输出一个整数,表示灵异背包所有数的总和为偶数且最大是多少

示例1

输入

3
2
5
6

输出

8

说明

当灵异背包里面有(2,5,6),此时总和为2+5+6=13,为奇数,不满足条件
当灵异背包里面有(2,6),此时总和为2+6=8,为偶数,且为最大值

示例2

输入

1
3

输出

0

说明

选择的灵异背包为空,总和为0

 

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int n;
int a[N];
int b[N],cnt;
signed main()
{cin>>n;int sum=0;fp(i,1,n){cin>>a[i];if(a[i]&1){b[++cnt]=a[i];}else{sum+=a[i];}}if(cnt&1){sort(b+1,b+1+cnt);fp(i,2,cnt){sum+=b[i];}}else{fp(i,1,cnt){sum+=b[i];}}cout<<sum<<"\n";return 0;
} 

 C、
 

给你一个长度为n的数列。求这个数列中连续区间的mex乘gcd⁡的最大值是多少?

示例1

输入

5
0 1 2 1 4

输出

3
#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int n;
int a[N];
int b[N];
signed main()
{cin>>n;int cnt=0;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]==0)cnt++;b[a[i]]++;}if(cnt==n){cout<<0<<"\n";return 0;}int mmax=0;for(int i=1;i<=n;i++){if(a[i]==0){mmax=max(mmax,a[i-1]);mmax=max(mmax,a[i+1]);}} for(int i=0;i<=n;i++){if(b[i]==0){mmax=max(mmax,i);break;}}cout<<mmax<<"\n";return 0;
} //这个区间是最少需要1个0 
//如果这个区间有1   结果为区间的mex值 
//如果这个区间没有1 结果为区间的gcd值 

 gcd(0,0)=0 qwq

D、

长途是ACM大陆一只快乐的小男孩。今天,他在cf战场上历练,遭遇了TTT波丧尸

长途快被丧尸咬死啦!幸好他手中的两把武器都还有20^{20^{20^{20}}}枚子弹,一枚子弹可以击中一个丧尸

  • 武器1——【AC】:每次射击可以发射一枚子弹
  • 武器2——【AK-47】:每次射击可以同时朝当前每个丧尸均发射一枚子弹

然而,丧尸有种特殊的能力,每次击中并不会死掉,反而会立刻复制出一个新的丧尸

长途有点绝望。幸好他发现当前这波的所有丧尸都处在一个特殊的圆盘上!这个圆盘被称为圆神,当丧尸的数量是2202^{20}220的倍数时,可以选择启动这个装置,消灭当前这波的全部丧尸!!!
值得注意的是,一共有TTT大波丧尸,只有当一波的丧尸被全部消灭后,下一波的丧尸才会出现,并且手中武器的子弹数也会恢复
情况很紧急,长途请你帮帮他。对于每一波丧尸,最少需要射击多少次才能消灭这一波的所有丧尸。若消耗完所有的子弹都无法消灭这一波的所有丧尸,请输出−1-1−1

输入描述:

第一行包含一个整数TTT,表示长途遭遇了 T (1≤T≤10^5) 波丧尸
对于每波丧尸:
仅输入一行,包含一个正整数 (1≤n≤10^9),表示当前这波的丧尸数

输出描述:

对于每波丧尸:
仅输出一行,若消耗完所有的子弹都无法消灭这一波的所有丧尸,输出−1;否则输出消灭当前这波的所有丧尸所需要的最少射击次数

示例1

输入

3
1048575
1048576
1

输出

1
0
20

我不理解我写的为什么错了

错误代码

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int x=1048576;
int a[N];
void solve()
{int n;cin>>n;if(n%x==0){cout<<0<<"\n";return;}int mmin=20;for(int i=n;i<=n+20;i++){int cnt=20;int x=i;while(x%2==0){x/=2;cnt--;}mmin=min(mmin,cnt+i-n);}cout<<mmin<<"\n";
}
signed main()
{int T;cin>>T;while(T--){solve();}return 0;
} //这个区间是最少需要1个0 
//如果这个区间有1   结果为区间的mex值 
//如果这个区间没有1 结果为区间的gcd值 

 正确代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int x=1048576;
int a[N];
void solve()
{int n;cin>>n;if(n%x==0){cout<<0<<"\n";return;}int mmin=20;n%=x; for(int i=n;i<=n+20;i++){int cnt=20;int x=i;while(x%2==0){x/=2;cnt--;}mmin=min(mmin,cnt+i-n);}cout<<mmin<<"\n";
}
signed main()
{int T;cin>>T;while(T--){solve();}return 0;
} //这个区间是最少需要1个0 
//如果这个区间有1   结果为区间的mex值 
//如果这个区间没有1 结果为区间的gcd值 

我后来用的代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int x=1048576;
int a[N];
void solve()
{int n;cin>>n;if(n%x==0){cout<<0<<"\n";return;}int mmin=20;for(int i=0;i<=20;i++){int g=0;int N=n+i;while(N%x!=0)N<<=1,g++;mmin=min(mmin,i+g);}cout<<mmin<<"\n";
}
signed main()
{int T;cin>>T;while(T--){solve();}return 0;
} //这个区间是最少需要1个0 
//如果这个区间有1   结果为区间的mex值 
//如果这个区间没有1 结果为区间的gcd值 

E、

丧尸涌入ACM大陆,幸好宁小夏同学在厕所里面研制出了时光机回到过去,给ACM大陆的封印之门设置了密码锁

  • 这个密码锁很特别,密码锁上只有六个按钮,分别是"@" "q" "." "c" "o" "m"(不包含引号)
  • 密码长度是给定的,当输入的密码后缀(即密码的最后七位)是"@qq.com"时才会被解锁
  • 若输入的密码错误,将需要重新输入密码

例如:我们给定密码的长度是11,如果丧尸有一次输入的密码是"com@qq.comc",则密码错误;如果丧尸有一次输入的密码是"comc@qq.com",则密码正确。即当输入的密码满足"****@qq.com"的格式我们才认为密码是正确的

幸好丧尸十分的笨拙,每一秒钟会等概率随机按下一个按钮,当输入密码错误,需要重新输入密码,它会继续一直按下去,周而复始……直至输入正确

留给ACMer的时间不多了!现在已知密码的长度,大家都想知道丧尸破解密码的期望时间是多少(注:期望时间四舍五入取整数部分

长途同学经过周密的计算,终于得到了四舍五入后丧尸破解密码的期望时间!同时他使用了mmm个在cf战场上获得的道具——【be-jiangly】,这个道具能够使得当前丧尸破解密码的期望时间变成平方。也就是说,设当前丧尸破解密码的期望时间为xxx,使用单个道具后期望时间变为了x^2

他激动地拿着最终丧尸破解密码的期望时间的草稿纸去找教练,结果被刚从厕所出来的宁小夏同学一不小心弄脏了草稿纸上的第一个数字(个位),/(ㄒoㄒ)/~~记性不好的长途已经忘记了被弄脏的数字是什么了,你能帮帮他吗?

问:被弄脏的个位数字是什么,如果丧尸破解密码的时间趋于正无穷,请输出−1

输入描述:

输入两个整数  n (1≤n≤10^9), (0≤m≤10^9),分别表示密码的长度和使用道具的数量

输出描述:

若丧尸破解密码的时间趋于正无穷,请输出−1;否则请输出被弄脏的数字是什么

示例1

输入

7 1

输出

4

说明

可怜巴巴的长途已经忘记怎么算出来的结果了,所以没有样例解释……
#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define fp(i,a,b) for(int i=a;i<=b;++i)
#define PII pair<int,int>
const int N=2e5+10;
const int mod=1e9+7;
const double eps=1e-5;
typedef double db;
string s; 
int x=1048576;
int n,m;
void solve()
{cin>>n>>m;if(n<7){cout<<-1<<"\n";return;}int ans=279936;ans*=n;ans%=10;m=min(m,2ll);while(m--){ans=ans*ans%10;}cout<<ans<<"\n";return;
}
signed main()
{solve();return 0;
} //这个区间是最少需要1个0 
//如果这个区间有1   结果为区间的mex值 
//如果这个区间没有1 结果为区间的gcd值 

 如果完成一件事情的概率是 1/7,那么完成该事情的期望时间可以通过期望的概念计算得出。

几何分布描述了进行一系列独立试验,直到成功为止所需的试验次数。对于成功概率为 1/7 的几何分布,其期望值可以通过公式 E(X) = 1/p 来计算,其中 X 是完成该事情所需的时间,p 是完成该事情的概率。

因此,完成一件事情的期望时间为 E(X) = 1 / (1/7) = 7。

所以,完成一件事情的期望时间是 7。

可以类推到本题。

相关文章:

牛客小白月赛79

给定一个数字n&#xff0c;你可以对它进行接下来的操作—— 选择数字中任意一个数位删除 例如对10​24选择操作百位&#xff0c;数字则变成了124&#xff1b;对1​024选择操作千位&#xff0c;数字则变成了024 我们称一个数字是干净的&#xff0c;当且仅当数字满足以下任意一种…...

面试算法31:最近最少使用缓存

题目 请设计实现一个最近最少使用&#xff08;Least Recently Used&#xff0c;LRU&#xff09;缓存&#xff0c;要求如下两个操作的时间复杂度都是O&#xff08;1&#xff09;。 get&#xff08;key&#xff09;&#xff1a;如果缓存中存在键key&#xff0c;则返回它对应的值…...

如何处理前端SEO(搜索引擎优化)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...

Leetcode—2529.正整数和负整数的最大计数【简单】

2023每日刷题&#xff08;四&#xff09; Leetcode—2529.正整数和负整数的最大计数 遍历法实现代码 int maximumCount(int* nums, int numsSize){int i;int neg 0, pos 0;for(i 0; i < numsSize; i) {if(nums[i] < 0) {neg;}if(nums[i] > 0) {pos;}}return (neg…...

数据结构-- 并查集

0. 引入 并查集是来解决等价问题的数据结构。 离散数学中的二元关系。 等价关系需满足自反性、对称性、传递性。 a ∈ S , a R a a R b & b R a a R b ∩ b R c > a R c a \in S, aRa \\ aRb \& bRa \\ aRb \cap bRc >aRc a∈S,aRaaRb&bRaaRb∩bRc>a…...

优维产品最佳实践第12期:IT资源管理首页丰富

​ 背 景 当我们进入平台后&#xff0c;默认跳转至IT资源管理首页&#xff0c;因此该页面的优化与丰富将极大的提高平台使用者的体验和效率。优化后的首页可以更好地展示常用模型、小产品、外部系统、以及保存的所有关系查询和快速查询条件&#xff0c;使用户能够更快捷、方便…...

【Nginx34】Nginx学习:安全链接、范围分片以及请求分流模块

Nginx学习&#xff1a;安全链接、范围分片以及请求分流模块 又迎来新的模块了&#xff0c;今天的内容不多&#xff0c;但我们都进行了详细的测试&#xff0c;所以可能看起来会多一点哦。这三个模块之前也从来都没用过&#xff0c;但是通过学习之后发现&#xff0c;貌似还都挺有…...

PO模式在selenium自动化测试框架的优势

大家都知道po模式可以提高代码的可读性和减少了代码的重复&#xff0c;但是相对的缺点还有&#xff0c;今天通过本文一起学习下PO模式在selenium自动化测试框架的优势&#xff0c;需要的朋友可以参考下 PO模式简介 1.什么是PO模式 PO模型是:Page Object Model的简写 页面对象…...

Java操作Elasticsearch(新增数据)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

Android中级——MVVM

MVVM MVVM是什么&#xff1f;MVVM实现前提ModelViewModelView MVVM是什么&#xff1f; Model-View-ViewMode架构&#xff0c;可看作MVP改进版&#xff0c;将此前Presenter的逻辑操作交给ViewMode中的Binder去处理 Mode&#xff1a;封装数据存储及相关操作逻辑&#xff0c;与MV…...

AIGC:引领人工智能和游戏产业融合的里程碑

目录 引言&#xff1a; 一、AIGC简介 二、AIGC的意义和作用 三、AIGC的未来展望 四、AIGC的影响和成果 五、结论 引言&#xff1a; 人工智能技术的快速发展在过去几年中引起了全球范围内的广泛关注和热议。其中&#xff0c;AIGC&#xff08;Artificial Intelligence and G…...

ubuntu安装rust教程

参考【Rust】Linux上安装Rust开发环境 sudo apt-get install curl# 注意&#xff0c;不开代理很可能下不到&#xff0c;一直报403 export RUSTUP_DIST_SERVERhttps://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOThttps://mirrors.ustc.edu.cn/rust-static/rustu…...

iOS UIWebView与WKWebView 那些事

一、前言介绍 UIWebView 是 iOS 2 中推出的网页容器,UIWebView是最占内存的控件;直到 iOS 8 以后,苹果推出了 WebKit 框架,其中 WKWebView 正式被推出来接替 UIWebView 的位置;iOS 12 中,苹果正式弃用 UIWebView,要求开发者用 WKWebView 全面替换 UIWebView,apple 官方…...

wps/word 之 word中的两个表格 如何合并成为一个表格(已解决)

第一步&#xff1a;新建两个表格&#xff1a; 如何实现上面的两个表格合并呢&#xff1f; 分别选定每个表格&#xff0c;然后鼠标右键---》表格属性 在表格属性中的 表格---》选择 无文字环绕。 第二个表格按照同样的方法 设置 无文字环绕。 然后将中的文本行删去即可以了。选…...

02HTML功能元素

1.功能元素 1.1.列表标签 ​ 列表标签的作用: 给一堆数据添加列表语义, 也就是告诉搜索引擎告诉浏览器这一堆数据是一个整体 - HTML中列表标签的分类 ​ 无序列表(最多)(unordered list) ​ 有序列表(最少)(ordered list) ​ 定义列表(其次)(definition list) 1.1.1.无序列…...

并发编程-延时队列DelayQueue

数据结构学习网站&#xff1a; Data Structure Visualization 思维导图 DelayQueue &#xff08;延时队列&#xff09; DelayQueue 是一个支持延时获取元素的阻塞队列 &#xff0c; 内部采用优先队列 PriorityQueue 存储元素&#xff0c;同时元素必须实现 Delayed 接口&#x…...

Python之哈希表-遍历和有序性

Python之哈希表-遍历和有序性 有序性 字典元素是按照key的hash值无序存储的。 但是&#xff0c;有时候我们却需要一个有序的元素顺序&#xff0c;Python 3.6之前&#xff0c;使用OrderedDict类可以做到&#xff0c;3.6开 始dict自身支持。 d1 {b:33, c:True, d:[1], f:234…...

Oracle数据库完整卸载的完整步骤

时间&#xff1a;2023-03-15来源&#xff1a;系统城装机大师作者&#xff1a;佚名 1、停止所有Oracle服务 进入计算机管理&#xff0c;在服务中&#xff0c;找到oracle开头的所有服务&#xff0c;右击选择停止。 快捷键&#xff1a;ctrlshiftesc打开任务管理器 文章来源 Or…...

HP OfficeJet Pro 8020 如何更换碳粉盒

环境&#xff1a; HP OfficeJet Pro 8020 问题描述&#xff1a; HP OfficeJet Pro 8020 如何更换碳粉盒 解决方案&#xff1a; 更换碳粉盒 更换所有墨水不足的碳粉盒或空碳粉盒。 1.打开前挡盖&#xff0c;然后提起碳粉盒检修门。 打开打印机门 2.等待笔架停止后再继续操作…...

【Javascript】基础数据类型

目录 基础数据类型 1.number 字面量声明 数字对象方式声明 整数判断 指定返回小数位数 NaN-表示非数字值 浮点精度 解决误差 String 字面量声明 数字对象声明 连接运算符 获取长度 大小写转换 转换成大写 转换成小写 ​编辑 移除空白 获取单字符 ​编辑 截…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...