牛客小白月赛107(A~E)
文章目录
- A Cidoai的吃饭
- 思路
- code
- B Cidoai的听歌
- 思路
- code
- C Cidoai的植物
- 思路
- code
- D Cidoai的猫猫
- 思路
- code
- E Cidoai的可乐
- 思路
- code
牛客小白月赛107
A Cidoai的吃饭
思路
签到题,按题意模拟即可
code
void solve(){int n,a,b,c;cin >> n >> a >> b >> c;int ans=0;ans+=n/a;n%=a;ans+=n/b;n%=b;ans+=n/c;n%=c;cout << ans << endl;return ;
}
B Cidoai的听歌
思路
通过模拟不难发现,这个序列操作的次数和最终的数字跟这个序列的最小值和最大值有关
如果这个序列的最大值为mx,最小值为mn,假设最终的数字为x
那么它所需的操作次数就为 ( m x − x ) + ( x − m n ) = m x − m n (mx-x)+(x-mn)=mx-mn (mx−x)+(x−mn)=mx−mn
既然这个数字x跟mx和mn有关,那么数字x取到这两个数的平均值显然是最优的
由于操作是先+1后-1,显然这个平均值要向上取整
code
void solve(){int n;cin >> n;for(int i=1;i<=n;++i) cin >> a[i];int mx=0,mn=inf;for(int i=1;i<=n;++i){mx=max(mx,a[i]);mn=min(mn,a[i]);}cout << mx-mn << " " << (mx+mn+1)/2 << endl;return ;
}
C Cidoai的植物
思路
考点:读题???(不是):模拟优化
(这题赛时看了好久才看懂的,服啦)
显然,如果纯模拟这题会超时 O ( n k ) > 1 e 8 O(nk)>1e8 O(nk)>1e8
那么我们就需要考虑如何优化这个 n n n
对于操作1,我们只需要将 i i i 行没有植物的数填上x
那么我们就可以用树的思想去优化,即用一个动态二维数组e,让列数存储行数
如果当前动态数组 e [ i ] e[i] e[i]不为空,遍历这个数组,将x填进去,然后让 e [ i ] e[i] e[i]清空
对于操作2,我们将行数b存储列数a,即 e [ b ] . p u s h _ b a c k ( a ) e[b].push\_back(a) e[b].push_back(a)
这样就可以将时间复杂度压缩成 O ( m k ) O(mk) O(mk),可以过这道题了
code
const int N=2e4+5;
unsigned n,m,k,seed;
int p[N][210];
vector<int> e[210];
unsigned rnd(){int ret=seed;seed^=seed<<13;seed^=seed>>17;seed^=seed<<5;return ret;
}
void solve(){cin >> n >> m >> k >> seed;for(int j=1;j<=m;++j)for(int i=1;i<=n;++i){e[j].push_back(i); }for(int t=1;t<=k;++t){int op=(rnd() % 2) + 1;if(op==1){int I=(rnd() % m) + 1;int x=(rnd() % (n*m)) + 1;if(e[I].empty()) continue;for(auto i : e[I]){p[i][I]=x;}e[I].clear();}else{int a=(rnd() % n) + 1;int b=(rnd() % m) + 1;p[a][b]=0;e[b].push_back(a);}}int ans=0;for(int i=1;i<=n;++i)for(int j=1;j<=m;++j){ans^=p[i][j]*((i-1)*m+j);}cout << ans << endl;return ;
}
D Cidoai的猫猫
思路
对于超过 k k k 的连续子串,我们让这个子串的个数变为 k k k
接着考虑如何将 O ( n 2 ) O(n^2) O(n2) 优化成 O ( n ) O(n) O(n)
我们可以倒着遍历,如果当前下标为 i i i 时,有连续子串的长度为 i i i
那么我们用一个sum累加这个连续子串 i i i,在用一个num统计可变的子串个数
显然对于每一个 i i i来说,它最小长度为 s u m − n u m ∗ i sum-num*i sum−num∗i
最后按题意求出ans即可
code
const int N=5e6+5;
int cnt[N],ans[N];
void solve(){int n;cin >> n;string s;cin >> s;s+=' ';int len=1;for(int i=1;i<=n;++i){if(s[i]==s[i-1]) len++;else{cnt[len]++;len=1;}}int sum=0,num=0;for(int i=1;i<=n;++i) ans[i]=n;for(int i=n;i>=1;--i){ans[i]-=sum-num*i;sum+=cnt[i]*i;num+=cnt[i];}int res=0;for(int i=1;i<=n;++i){res^=i*ans[i];}cout << res << endl;return ;
}
E Cidoai的可乐
思路
这题非常的简单(赛时根本没看QAQ)
每个节点的度就是它拥有的子树个数
对于 n n n个节点,我们只需要连 n − 1 n-1 n−1 条线即可
我们每次挑选一个节点,显然每次用权值最小的节点来建树是最优的
将权值从小到大排序,将权值最小的节点的度全填满,接着连权值第二小的节点,循环往复,直到连接 n − 1 n-1 n−1条线
最后统计一个它的权值即可
code
PII a[N];
bool cmp(PII x,PII y){return x.fi<y.fi;
}
void solve(){int n;cin >> n;for(int i=1;i<=n;++i) cin >> a[i].fi;for(int i=1;i<=n;++i) cin >> a[i].se;sort(a+1,a+1+n,cmp);int ans=0,k=n-1;for(int i=1;i<n;++i){if(a[i].se<k){ans+=a[i].fi*a[i].se;k-=a[i].se;}else{ans+=k*a[i].fi;break;}}cout << ans << endl;return ;
}
相关文章:
牛客小白月赛107(A~E)
文章目录 A Cidoai的吃饭思路code B Cidoai的听歌思路code C Cidoai的植物思路code D Cidoai的猫猫思路code E Cidoai的可乐思路code 牛客小白月赛107 A Cidoai的吃饭 思路 签到题,按题意模拟即可 code void solve(){int n,a,b,c;cin >> n >> a &g…...
批量DWG文件转换低版本(CAD图转低版本)——c#插件实现
此插件可实现指定路径下所有dwg文件(包含子文件夹内dwg)一键全部转为低版本(包含2004、2007、2018版本,也可定制指定版本)。效果如下: (使用方法:命令行输入 “netload” 加载插件&…...
安装Python库
安装Python库 一、pip安装参数--no-deps 更换下载源,一劳永逸 二、conda下载 一、pip安装 换源安装并且信任该下载源 pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com参数 –no-deps 有些 packages 会依赖一些其它的 p…...
智慧政务数据中台建设及运营解决方案
数据中台:政府数字化转型的引擎 数据中台作为政府数字化转型的核心驱动力,起源于美军的作战体系,强调高效、灵活与强大。它不仅促进了政府决策的科学性,还推动了政府服务的精细化与智能化。 数据中台的应用场景:数字…...
陪玩系统小程序源码/游戏陪玩APP系统用户端有哪些功能?游戏陪玩小程序APP源码开发
多客陪玩系统-游戏陪玩线下预约上门服务等陪玩圈子陪玩社区系统源码 陪玩系统源码,高质量的陪玩系统源码,游戏陪玩APP源码开发,语音陪玩源码搭建: 线上陪玩活动组局与线下家政服务系统的部署需要综合考虑技术选型、开发流程、部署流程、功能实…...
米哈游大数据面试题及参考答案
怎么判断两个链表是否相交?怎么优化? 判断两个链表是否相交可以采用多种方法。 一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指…...
使用Hydra库简化配置管理
使用Hydra库简化配置管理 简介 在现代软件开发中,配置管理是至关重要的。应用程序的灵活性和可维护性很大程度上取决于其如何处理配置。Hydra是一个由Facebook AI Research (FAIR) 开发的Python库,它旨在简化复杂应用的配置过程。Hydra使得开发者可以轻…...
二维数组和函数
文章目录 1、课程代码 #include <bits/stdc.h> using namespace std;//定义函数 /*函数名的命名规则和变量是一致的 函数的返回值数据类型 函数名(形式参数){函数体 } */ //自己写乘方pow这个函数 pow(2,3) int p(int a,int b); int p(int a,int b){int s1;for(i…...
如何在 Ubuntu 终端中打开当前文件夹的图形界面
文章目录 1. 简介2. 方法一:使用 Nautilus 文件管理器3. 方法二:使用通用命令 xdg-open4. 方法三:使用其他文件管理器5. 推荐方案6. 参考资料 1. 简介 在日常使用 Linux 系统时,我们常常会在终端中执行各种操作。有时,…...
基于SpringBoot的嗨玩旅游网站:一站式旅游信息服务平台的设计与实现
摘要 在旅游需求日益增长的今天,一个全面、便捷的旅游信息服务平台显得尤为重要。嗨玩旅游网站正是为了满足这一需求而设计的在线平台,它提供了包括景点信息、旅游线路、商品信息、社区信息和活动推广等在内的丰富旅游目的地信息,旨在帮助用…...
Opencv之图像梯度处理和绘制图像轮廓
一、梯度处理的sobel算子函数 处理示意 Sobel 算子是一种常用的图像边缘检测方法,结合了一阶导数和高斯平滑,用于检测图像的梯度信息。 1、功能 Sobel 算子用于计算图像在 x 和 y 方向的梯度,主要功能包括: 强调图像中灰度值的…...
vue3的watch一次性监听多个值用法
vue3的watch一次性监听多个值 1、监听单个值 watch(() > route.params.keyword, (newValue, oldValue) > {console.log(监听值变化, newVal, oldVal)state.a newValue});2、监听多个值 watch(() > [route.params.id, route.params.keyword], (newValue, oldValue) &g…...
Electron和C/C++开发桌面应用对比
Electron和C/C开发桌面应用对比 1. Electron 的特点 优点 跨平台支持: Electron 基于 Chromium 和 Node.js,可以轻松构建跨平台应用(Windows、macOS、Linux)。开发者只需编写一套代码,即可在多个平台上运行。 使用 …...
Q学习(Q-Learning)详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
【前端】 canvas画图
一、场景描述 利用js中的canvas画图来画图,爱心、动画。 二、问题拆解 第一个是:canvas画图相关知识。 第二个是:动画相关内容。 三、知识背景 3.1 canvas画图相关内容 canvas画图的基本步骤 获取页面上的canvas标签对象获取绘图上下文…...
超标量处理器设计笔记(10) 寄存器重命名过程的恢复、分发
重命名 寄存器重命名过程的恢复使用 Checkpoint 对 RAT 进行恢复使用 WALK 对 RAT 进行恢复使用 Architecture State 对 RAT 进行恢复总结 分发(Dispatch) 寄存器重命名过程的恢复 当发生异常、分支预测失败时,指令占用 RAT、ROB 和 Issue …...
硬件设计-电源轨噪声对时钟抖动的影响
目录 定义 实际案例 总结 定义 首先了解抖动的定义,在ITU-T G.701中有关抖动的定义如下: 数字信号重要瞬间相对于其理想时间位置的短期非累积变化。 抖动是时钟或数据信号时序的短期时域变化。抖动包括信号周期、频率、相位、占空比或其他一些定时特…...
geeCache 一致性hash
目标:解决当自身结点没有改缓存时,从哪个结点获得这个缓存的问题 一、普通的hash算法 hash(Tom)%结点数量 缺点:缓存雪崩 缓存雪崩是指在某一时刻,大量缓存同时失效或宕机,导致大量请求直接访问数据库,从…...
【我的开源】ESCurlGen 一款 ElasticSearch curl 命令生成器
由于经常编写复杂的 Elasticsearch 查询,并通过代码生成查询条件,我发现每次使用 curl 请求 Elasticsearch 时,手动复制配置信息并构建 curl 命令的过程非常繁琐,尤其是在管理多个环境的情况下更为不便。因此,我利用 A…...
Python库NetworkX介绍
NetworkX 是一个用于创建、操作和研究复杂网络结构的 Python 库。它特别适用于图论和网络分析,提供了丰富的图形数据结构和许多常用的算法。无论是学术研究、数据科学还是实际应用,NetworkX 都是分析图网络和复杂关系的强大工具。 1. NetworkX的基本概述…...
Sen2Cor批处理实战:从L1C到L2A,如何确保你的大气校正结果不受处理基线影响?
Sen2Cor批处理实战:处理基线对L2A大气校正结果的影响解析 第一次用Sen2Cor处理完200景Sentinel-2数据后,我发现同一地区的NDVI值在不同时期竟然出现了断崖式下跌——不是植被变化,而是处理基线在作祟。这个教训让我意识到,批量大气…...
2025最权威的AI辅助写作平台推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能工具在学术写作范畴,已然成了提高效率的关键辅助,以下推举五…...
SVG-Morpheus实战教程:10个实用技巧打造惊艳UI动画
SVG-Morpheus实战教程:10个实用技巧打造惊艳UI动画 【免费下载链接】SVG-Morpheus JavaScript library enabling SVG icons to morph from one to the other. It implements Material Designs Delightful Details transitions. (THIS PROJECT IS NOT MAINTAINED ANY…...
Vue Flow实战:如何为你的AI应用设计一个可嵌套循环的工作流节点?
Vue Flow高级实战:构建支持嵌套循环的AI工作流编辑器 在AI应用开发中,复杂业务流程往往需要可视化编排能力。想象一个场景:当用户输入触发多个条件判断时,系统需要循环执行某些操作直到满足特定条件,同时允许在循环内部…...
Tacview自定义模型全攻略:从3D建模到实战应用(附F-500案例文件)
Tacview自定义模型全攻略:从3D建模到实战应用(附F-500案例文件) 当你在Tacview中看到那些精准还原的飞行器轨迹时,有没有想过如何将自己的3D模型融入这个强大的分析工具?本文将带你从零开始,完整掌握Tacvie…...
量化入门-用Python筛选爆量上涨的股票
思路爆量上涨通常意味着资金关注度突然提升,可能是主力进场或者利好消息刺激。我的筛选逻辑:选股条件:沪深主板,排除ST风险票流通市值200-2000亿(盘子适中,避免庄股,太小风险高)年利…...
火灾现场的无人机防御系统
2026年,XPrize参赛团队将继续角逐,力争防控灾害于萌芽阶段。在外行人眼中,眼前这架Alta X无人机要完成的似乎并不是一项特别复杂的任务。这架翼展超2米的黑色大型四旋翼无人机停在草坪上,起落架两个撑脚之间挂着一个注满水的红色气…...
为你的项目量身定制,基于快马ai生成openclaw实战集成安装方案
最近在做一个图像处理相关的项目,需要在Ubuntu服务器上集成OpenClaw来处理图像数据,同时还要和OpenCV协同工作。整个过程踩了不少坑,今天就把我的实战经验分享给大家,特别是如何利用InsCode(快马)平台来快速生成定制化的安装方案。…...
OpenClaw技能扩展指南:安装Qwen3-4B驱动的内容处理模块
OpenClaw技能扩展指南:安装Qwen3-4B驱动的内容处理模块 1. 为什么需要技能扩展? 上周我整理项目文档时,面对十几个Markdown文件的手动合并操作,突然意识到:OpenClaw的默认能力可能无法满足深度内容处理需求。这正是技…...
3个步骤实现Windows直接运行安卓应用:开发者与玩家的跨平台解决方案
3个步骤实现Windows直接运行安卓应用:开发者与玩家的跨平台解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为手机应用无法在电脑上运行而困扰…...
