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

牛客小白月赛98 (个人题解)(补全)

前言:

  昨天晚上自己一个人打的小白月赛(因为准备数学期末已经写烦了),题目难度感觉越来越简单了(不在像以前一样根本写不了一点,现在看题解已经能看懂一点了),能感受到自己在不断进步,希望在暑假能更努力一点吧,,少打点游戏,多学学算法,还有web的学习也要抓起来了,这几天不是在看高数就是在打游戏,感觉好堕落。

正文:

 链接:(1条未读私信) 牛客小白月赛98_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A 骰子魔术:

#include<bits/stdc++.h>
using namespace std;
int a[10005];
int main(){int n,x;cin>>n>>x;for(int i=1;i<=n;i++){int d;cin>>d;a[d]++;}if(a[x])cout<<"YES";else cout<<"NO";return 0;
}

桶排秒了。

B 最少剩几个?:

#include<bits/stdc++.h>
using namespace std;
int main(){int n,res=0,ans=0;cin>>n;int o=n;while(o--){int x;cin>>x;if(x%2==1)res++;}int z=n-res;if(z>=res){ans=n-2*res;}else{ans=n-2*z-((res-z)/2)*2;}cout<<ans<<endl;return 0;
}

因为奇数加偶数一定是奇数,奇数乘奇数一定为奇数,分两种情况讨论,当偶数数量大于奇数的时候直接用总数减奇数数量的两倍;当奇数大于偶数的时候先减去偶数的两倍在考虑剩下的奇数即可。

C 两个函数:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=998244353;
ll quickmod(ll a, ll b, ll c)
{ll ans = 1;a = a % c;while(b){if(b&1) ans = (ans * a) % c;b = b >> 1;a = (a * a) % c;}return ans;
}
int main(){int n;cin>>n;while(n--){ll a,x,ans;cin>>a>>x;if(x==1)ans=a*x%mod;else{ans=(((a*a)%mod)*((x)*(x-1)/2%mod))%mod;}cout<<ans<<endl;}return 0;
}

我们可以将公式转化为

g(x)=ax......x=1

g(x)=a^{2}(\sum (n-1))=a^{2}(\frac{x(x-1)}{2})..........x>1

最后直接一边算一遍取模即可。

D 切割 01 串 2.0:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int dp[1000][1000];
int pre[N],suf[N];
int main(){int t = 1;while(t --){int n,l,r; cin >> n >> l >> r;string s; cin >> s;s = "#" + s;// 区间dp// dp[a][b] = dp[a][k] + dp[k+1][b] + 1;for(int i = 1; i <= n ; i ++){if(s[i] == '0') pre[i] = pre[i - 1] + 1;else pre[i] = pre[i - 1];}for(int i = 1 ; i <= n ; i ++){if(s[i] == '1') suf[i] = suf[i - 1] + 1;else suf[i] = suf[i - 1];}for(int len = 2 ; len <= n ; len ++){for(int i = 1 ; i <= n - len + 1; i ++){int j = i + len - 1;for(int k = i ; k < j ; k ++){int q0 = pre[k] - pre[i - 1];int q1 = suf[j] - suf[k];int res = abs(q0 - q1);if(res >= l && res <= r)dp[i][j] = max(dp[i][j],dp[i][k] + dp[k + 1][j] + 1);}}}cout << dp[1][n];}
}

比赛时这题一直想用递归,根本没去想是dp,甚至是我练过的区间dp,导致我用递归一直暴内存,怎么优化都过不了。其实细想想这题确实就是区间dp,因为从小区间推导到大区间就免去了对一次切割产生两个子段进行·递归的过程,详情可以见代码。

 E and xor or:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e5+5;
ll a[N];
ll n,k1,k2;
ll work(int x){ll ans=0,cnt=0;for(int i=1;i<=n;i++){bool flag=true;for(int j=x;j<=60;j++){int u=a[i]>>j&1;int v=a[i-1]>>j&1;if(u!=v){flag=false;}}if(flag)cnt++;else{ans+=cnt*(cnt+1)/2;cnt=1;}}ans+=cnt*(cnt+1)/2;return ans;
}
int main(){cin>>n>>k1>>k2;for(int i=1;i<=n;i++){cin>>a[i];}cout<<work(k2)-work(k1)<<endl;return 0;
}

看了题解发现这题还挺简单,

利用前缀和的思想,用所有结果小于 2^k2的子数组个数 - 所有结果小于2^k1的子数组个数,即为答案。

发现这个  2^k 刚好只有一位(二进制下),要结果小于它,则必须满足在二进制中 k ~ 60 位中不能有 1。 根据题目条件,满足不能有 1 即这个子数组元素在k ~ 60位的每一位不能同时存在 1 和 0。

F 绝妙的手法:

看了下题解的代码直接给我吓跑了,代码量还挺大的。

2024.7.12补:

出题人出来说这题出错了,所以不用补了。这又何尝不是另一种补完呢(

后记:

  话说后天就考高数了我还一道题没写是不是有点不务正业了(

相关文章:

牛客小白月赛98 (个人题解)(补全)

前言&#xff1a; 昨天晚上自己一个人打的小白月赛&#xff08;因为准备数学期末已经写烦了&#xff09;&#xff0c;题目难度感觉越来越简单了&#xff08;不在像以前一样根本写不了一点&#xff0c;现在看题解已经能看懂一点了&#xff09;&#xff0c;能感受到自己在不断进步…...

Ubuntu压缩解压各类型文件

在Ubuntu系统中&#xff0c;解压不同格式的压缩文件可能需要安装不同的工具。以下是一些常见的压缩格式和相应的安装命令&#xff1a; ZIP文件&#xff1a; 工具&#xff1a;unzip 安装命令&#xff1a; sudo apt install unzip 解压命令 unzip filename.zip 如果需要保留目录…...

昇思学习打卡-20-生成式/GAN图像生成

文章目录 网络介绍生成器和判别器的博弈过程数据集可视化模型细节训练过程网络优缺点优点缺点 网络介绍 GAN通过设计生成模型和判别模型这两个模块&#xff0c;使其互相博弈学习产生了相当好的输出。 GAN模型的核心在于提出了通过对抗过程来估计生成模型这一全新框架。在这个…...

javafx、node js、socket、OpenGL多线程

机器学习、算法、人工智能、汇编&#xff08;mips、arm、8086&#xff09;、操作系统、数据挖掘、编译原理、计算机网络、Arena软件、linux xv6、racket、shell、Linux、PHP、Haskell、Scala、spark、UML、mathematica、GUI、javafx、node js、socket、OpenGL、多线程、qt、数据…...

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(七)-通过无人机实现无线接入的独立部署

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…...

模糊综合评价

对多因素影响的事务的评价&#xff08;如人才&#xff0c;方案&#xff0c;成果&#xff09;&#xff0c;有时难以给出影响的确切表达&#xff0c;此时可以采取模糊综合评价的方法。 该方法可以对人&#xff0c;事&#xff0c;物进行比较全面而又定量化的评价。 实例1&#xff…...

系统测试-白盒测试学习

目录 1、语句覆盖法&#xff1a; 2、判定覆盖法&#xff1a; 3、条件覆盖法&#xff1a; 4、判定条件覆盖&#xff1a; 5、条件组合的覆盖&#xff1a; 6、路径覆盖&#xff1a; 黑盒&#xff1a;需求 白盒&#xff1a;主要用于单元测试 1、语句覆盖法&#xff1a; 程序…...

UI设计工具选择指南:Sketch、XD、Figma、即时设计

在数字产品设计产业链中&#xff0c;UI设计师往往起着连接前后的作用。产品经理从一个“需求”开始&#xff0c;制定一个抽象的产品概念原型。UI设计师通过视觉呈现将抽象概念具体化&#xff0c;完成线框图交互逻辑视觉用户体验&#xff0c;最终输出高保真原型&#xff0c;并将…...

Pycharm 导入 conda 环境

使用时经常在此处卡壳&#xff0c;在此做个记录。 这个位置选择 conda 安装路径下的 python.exe 文件即可...

Vue封装Tooltip(提示工具)

<template> <div class"tooltip" mouseover"showTooltip" mouseleave"hideTooltip"> <slot></slot> <!-- 使用slot来接收传入的内容 --> <span class"tooltiptext" v-if"visible">{…...

Go 1.19.4 函数-Day 08

1. 函数概念和调用原理 1.1 基本介绍 函数是基本的代码块&#xff0c;用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能&#xff0c;逻辑上每个函数执行的是指定的任务。 函数声明告诉了编译器函数的名称&#xff0c;返回类型&#xff0c;和参…...

Docker-Nvidia(NVIDIA Container Toolkit)

安装NVIDIA Container Toolkit工具&#xff0c;支持docker使用GPU 目录 1.NVIDIA Container Toolkit 安装1.1 nvidia-docker安装1.2 验证1.2.1 验证安装1.2.2 额外补充 1.NVIDIA Container Toolkit 安装 1.1 nvidia-docker安装 NVIDIA/nvidia-docker Installing the NVIDIA …...

Mongodb 3.6 数据恢复操作

一、安装MongoDB 忽略 二、创建账号和授权 在新的MongoDB上创建用户管理员。先切换到admin库&#xff0c;然后通过命令创建数据库管理员账号和密码。最后再验证账号密码是否创建成功&#xff01; use admin db.createUser({user:"root",pwd:"123456Ab",…...

C++ | Leetcode C++题解之第238题除自身以外数组的乘积

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();// L 和 R 分别表示左右两侧的乘积列表vector<int> L(length, 0), R(length, 0);vector<int> answer(l…...

挂耳式蓝牙耳机什么牌子好?这五款综合表现遥遥领先

为什么这几年开放式耳机受到了越来越多消费者的喜爱&#xff1f;我想是因为它全方位的弥补了入耳式耳机堵塞耳朵、不够安全健康的缺陷&#xff0c;真正做到了安全性与舒适性兼得。那么刚入坑开放式耳机的小白该如何挑选一款品质较高的开放式耳机呢&#xff1f;挂耳式蓝牙耳机什…...

防火墙-NAT策略和智能选路

一、背景技术 在日常网络环境&#xff0c;内部网络想要访问外网无法直接进行通信&#xff0c;这时候就需要进行NAT地址转换&#xff0c;而在防火墙上配置NAT和路由器上有点小区别&#xff0c;思路基本一致&#xff0c;这次主要就以防火防火墙配置NAT策略为例&#xff0c;防火墙…...

一键优雅为Ubuntu20.04服务器挂载新磁盘

itopen组织1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源&#xff0c;拥抱国产化 一、小于2T磁盘挂载方式 1.1 安装磁盘到电脑后启动系统 1.2 查找未分区的磁盘 打…...

踩坑日记 | 记一次流程图问题排查

踩坑日记&#xff1a;记一次流程图问题排查 标签&#xff1a; activiti | 流程 引言 今天排查了一个流程图问题&#xff0c;耗时2个小时终于解决&#xff0c;记录下来 现象 流程审批驳回报错&#xff1a;Unknown property used in expression: ${xxxx} 使用的是 activiti …...

数据建设实践之大数据平台(四)安装mysql

安装mysql 卸载mysql [bigdatanode101 ~]$ sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps 上传安装包到/opt/software目录并解压 [bigdatanode101 software]$ tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql_lib/ 到mysql_lib目录下顺序安装 …...

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...