牛客周赛 Round 112

news/2025/10/9 16:18:04/文章来源:https://www.cnblogs.com/alij/p/19131354

(0条未读通知) 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

国庆中秋玩后第一场vp,选择了一个比较简单的周赛,兴许是想挑软柿子捏🤭,写了5题还行,做个总结,一步一步恢复状态。

这场的D是个典题,位运算贪心,每一位贡献独立,贪心从高位,在兼顾前面高位的选择下添加新的位的贡献,是否能够满足条件。

A题

模拟

给定总队伍数\(n\)和排名\(k\),问能拿那个牌子。

题解:规定金奖数量为\(d=\lceil \frac{x}{10}\rceil\),银牌数量为\(2\times d\),铜牌数量为\(3\times d\),也就是\([1,d]\)为金奖,\([d+1,3\times d]\)为银奖,\([3\times d+1,6\times d]\)为铜奖,剩下的就打铁啦。那我们看\(k\)在那个区间就好。

B题

贪心

小苯有\(n\)张带点数的卡牌,第\(i\)张的卡牌点数为\(a_i\),小苯现在要选一张去和小红比大小,他想选一张尽可能大的牌,现在小苯可以选择以下操作任意次:

  • 任意地选择 \(k\ (1 \leqq k \leqq |a|)\) 张牌(不能超过当前的牌总数)弃掉,同时获得一张点数为 \(k\) 的牌。

现在求小苯能够获得的最大的牌的点数是多少。

题解:我们考虑小苯能够获得的牌,因为弃牌是会新增加一张牌,对剩下的牌的点数没有影响,所以我们考虑使用操作和不使用操作能够获得的最大点数就好,在二者取\(max\)

C题

思维

小红给了小苯一个长度为 \(n\)\(01\) 串,一开始所有的字符均为黑色,小红希望小苯将所有的字符均涂成红色。
为此小苯可以做以下操作任意次:
$\hspace{23pt}\bullet\ $ 选择一个非空的子序列(可以不连续),满足子序列中所有的字符均为黑色,且此子序列是一个回文的字符串,将这个子序列的所有字符均涂红。

现在找到达到小红要求的最小操作次数。

题解:很容易可以看出答案上限为2,也就是我们单独操作1和0,这样一定2次就可以。然后我们考虑什么时候可以一次就行,发现只有当给定的01串为回文串,那么一次就行。用一个双指针判断一下就好。

时间复杂度为\(O(n)\)

D题

贪心,位运算

小苯在研究一种特殊的数字配对问题。给定 \(2\times n\) 个正整数 \(a_1,a_2,...,a_{2n}\),需要将它们恰好平分成 \(2\) 组,每组的"配对值"定义为每组 \(n\) 个数的按位与(\(\rm AND\))。

定义两个组的"总和谐度"为两组"配对值"的最大值。

现在小苯想知道,在所有可能的分组方式中,能够获得的最大总和谐度是多少?

题解:我们从答案入手,从高到底考虑答案的每一位二进制,有\(ans_i=1\),当且仅当\(\sum_{j=1}^{2\times n}{a_{j,i}=1}\geq n\)\(a_{j,i}\)表示\(a_j\)的二进制第\(i\)位。由于每一位的贡献是独立的,且高位的贡献大于所有低位贡献和,所以从高位贪心一定是对的,每次我们检查在保证高位成立的情况下,新添加的位也能满足条件,那么将新添加的位的贡献加入答案,这里判断条件即为上面那个式子。

时间复杂度为\(O(n\log{V})\)

void solve() {int n;cin >> n;vector<int> a(2*n+1);for(int i=1;i<=2*n;i++){cin >> a[i];}auto check=[&](int mid)->bool{int cnt=0;for(int i=1;i<=2*n;i++){if((a[i]&mid)==mid) cnt++;}return cnt>=n;};int ans=0;for(int i=31;i>=0;i--){if(check(ans|1<<i)){ans|=1<<i;}}cout << ans << endl;
}

E题

数学,容斥原理

由于经常做不出 \(\gcd\) 题,因此小苯不喜欢 \(\gcd\),所以小苯认为:数组的 \(\gcd\) 不存在于数组中的话,则该数组是美丽的。

他现在有一个长度为 \(n\) 的序列 \(a\),请你帮他算一算,\(a\) 中有多少个非空子序列(不要求连续)是美丽的数组吧。

题解:一个子序列\(A\),其\(g=\gcd_{v\in A}{(g,v)}\notin A\),我们称这样的子序列为美丽的。那么我们正面去找美丽子序列并不好维护,相反我们不美丽的子序列非常好找,我们枚举\(A\)\(g\),然后所有\(g\mid v\)\(v\)显然都可以在\(A\)集合中,且\(A\)集合至少包含一个\(g\),那么就保证了\(A\)\(gcd=g\),因为值域并不大,这样是可行的。

根据容斥原理:\(美丽子序列数量=2^n-1-不美丽子序列数量\),那么问题转化为求不美丽的子序列数量,我们按照上面的分析可以写出下面公式:

\[ans=2^n-1-\sum_{g=1}^{mx}{f(g)},其中f(g)=(2^{cnt_g}-1)\times(2^{sum_g-cnt_g})\\cnt_g表示值为g的数量,sum_g表示为g的倍数的数的数量 \]

\(sum_g\)可以用因数分解求出,时间复杂度为\(O(n\sqrt{n})\),每次求\(2^k\)用快速幂时间复杂度为\(O(n\log{n})\),最后总时间复杂度为为\(O(n\sqrt{n}+n\log{n})\)

#include <bits/stdc++.h>
using namespace std;
#define inf 1e18
#define endl '\n'
#define int long long
typedef  long long ll;
typedef pair<int, int> pii;
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
const int N = 2e5 + 9, M = 2e5 + 9, mod = 998244353;
int ksm(int b,int p){int res=1;while(p){if(p&1) res=res*b%mod;b=b*b%mod;p>>=1;}return res;
}
void solve() {int n;cin >> n;int mx=0;vector<int> a(n+1),vis(n+1);for(int i=1;i<=n;i++){cin >> a[i];vis[a[i]]++;mx=max(mx,a[i]);}
//	sort(a.begin()+1,a.end(),greater<int>());vector<int> cnt(n+1);for(int i=1;i<=n;i++){for(int j=1;j*j<=a[i];j++){if(a[i]%j==0){cnt[j]++;if(a[i]/j*a[i]/j!=a[i]) cnt[a[i]/j]++;}}}int ans=ksm(2,n)-1;for(int g=1;g<=mx;g++){if(vis[g]){ans=(ans-(ksm(2,vis[g])-1)*ksm(2,cnt[g]-vis[g])%mod+mod)%mod;}}cout << ans << endl;
}
/*
分解每个数的因数,然后统计gcd为g的每个子序列个数
*/
signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/933674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业级在线教育架构管理系统源码|SpringBoot+微信小脚本+MyBatis架构+MySQL数据库【完整版】

企业级在线教育架构管理系统源码|SpringBoot+微信小脚本+MyBatis架构+MySQL数据库【完整版】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

Flutter 中运用 Color 的最优方案

Flutter 中运用 Color 的最优方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

竞争自适应重加权采样(CARS)算法在光谱数据变量选择中的解决方案

一、算法原理与流程 1. 核心思想 CARS算法模拟达尔文进化论的"适者生存"机制,通过蒙特卡洛采样和自适应重加权筛选对模型预测贡献最大的特征变量。其核心步骤包括:指数衰减权重选择:基于PLS回归系数绝对值…

2025 最新超声波清洗机厂家推荐排行榜:工业 / 精密 / 实验室等多场景适配厂商权威榜单全自动/大型/工业/单槽/多槽超声波清洗机厂家推荐

在工业制造精密化、医疗检测严格化、电子产业微型化的趋势下,超声波清洗机已成为决定产品品质的核心设备。但市场现存三大痛点:技术门槛参差不齐,多数产品难以满足半导体、医疗等领域的微米级清洁需求;行业适配性不…

AI元人文构想的新启发:从自动驾驶困境到通用价值智能的构建

AI元人文构想的新启发:从自动驾驶困境到通用价值智能的构建 自动驾驶的困境犹如一场精心设计的压力测试,在有限领域内验证了智能系统的本质缺陷。这场测试清晰地宣告了纯粹逻辑计算的局限性,并为下一代通用智能——…

Word通过宏统一设置样式

Word通过宏统一设置表格样式、图片样式、标题和正文样式、更新目录。Sub A表格格式化_增强版()On Error Resume NextApplication.ScreenUpdating = FalseDim tbl As tableDim counter As Integer: counter = 1Dim resp…

2025 年金属线槽厂家最新推荐排行榜:覆盖不锈钢 / 铝合金 / 防火 / 大跨距 / 喷塑类型,帮您选优质厂家企业

在工业生产、建筑电气及数据中心建设飞速发展的当下,金属线槽作为线缆保护与管理的关键设施,市场需求日益增长,但行业乱象让采购者难以抉择。众多品牌混杂,部分产品质量不达标,抗腐蚀、抗冲击性能差,无法适应特殊…

2025电子行业隧道式烘干炉/PCB板固化炉设备厂家推荐品牌/汽车行业隧道式烤炉选择哪家/汽车喷涂固化炉设备厂家对比

上海柏毅试验设备有限公司于2010年在上海正式创立,总部位于安亭上海国际汽车城,生产基地总占地面积40余亩。是国内专注于环境试验设备研发、生产、销售与服务的专精特新、高新技术企业。十余年来,公司聚焦核心业务深…

基于蚁群算法的PID参数整定方法及MATLAB实现

一、算法原理与流程 1. 核心机制信息素更新:通过正反馈强化优质解其中ρ为挥发系数,\(Δτ_{ij}\)为路径增量路径选择概率:\(α\)(信息素重要度)、\(β\)(启发式因子重要度)2. 改进策略莱维飞行优化:引入\(Lvy…

2025 年电缆桥架厂家最新推荐排行榜:精选不锈钢 / 铝合金 / 热镀锌等多类型优质桥架厂家,助力精准选购热镀锌/热浸锌/托盘式/防火/喷塑电/防火喷塑电缆桥架厂家推荐

在现代建筑电气、工业自动化及数据中心等领域,电缆桥架作为核心基础设施,对线缆的承载、保护与管理起着关键作用。然而当前行业乱象频发,部分厂家用劣质原材料生产,导致桥架易腐蚀、断裂,埋下安全隐患;产品质量参…

Origin 2025b安装包下载及详细安装教程,附永久免费中文汉化破解版Origin安装包

一、Origin 2025b软件下载: 1、软件名称:Origin 2025b 2、软件大小: 2.17 GB 3、安装环境:Win 7及以上系统 4、下载链接:https://pan.quark.cn/s/1fd95311a29a 二、Origin 2025b安装教程 注意!!!开始解压安装前…

【完整源码+素材集+部署教程】法兰图像分割系统: yolov8-seg-C2f-REPVGGOREPA

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:python解析通达信dat与blk数据文件【附源码】

实用指南:python解析通达信dat与blk数据文件【附源码】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

nohup java按天输出日志

使用nohup命令运行时按天输出程序日志 nohup app p1 p2 > nohup_$(date +\%Y-\%m-\%d).log & 此方式不仅可以输出java程序打印的日志,也可以输出其它程序日期,如go或者C#程序的日志

st表模板

点击查看代码 #include <bits/stdc++.h>using namespace std;const int N = 2000001; const int logN = 21;int f[N][logN + 1], lg[N + 1]; //vector<int>可能会爆内存void pre(){lg[1] = 0;lg[2] = 1;fo…

【SPIE出版|往届已EI检索】第四届交通运输工程前沿国际学术会议(FTTE 2025)

第四届交通运输工程前沿国际学术会议(FTTE 2025)将于2025年10月31日-11月2日在中国桂林举行。本次会议主要围绕交通运输规划与系统优化、智能交通系统理论与应用技术、交通运输安全与可持续发展、交通基础设施设计与…

针对html字符串进行关键字高亮匹配

highlightKeyword(keyword, htmlString) {const str = keyword.trim().replace(/\s+/g, ,)const arr = str.split(,)const _arr = arr.map(val => {return val.replace(/[.*+?^${}()|[\]\\]/g, \\$&)})const r…

2025 年北京精品旅游旅行社联系方式推荐:北京汇通清源定制旅行与一站式服务解决方案解析

随着消费升级与旅游需求多元化,传统走马观花式旅游已难以满足游客需求,高品质、个性化的定制旅游成为市场新趋势。北京作为历史文化名城与旅游热门目的地,旅行社数量众多,但行业内仍存在行程同质化、强制购物、服务…

详细介绍:百度Qianfan-VL系列上线:推出3B/8B/70B三款视觉理解模型,覆盖不同算力需求

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CesiumGlobeAnchor

CesiumGlobeAnchor 是一个核心组件,用于将 Unreal Engine 中的 Actor(如模型、标记点、几何体等)精准绑定到地球表面的地理坐标,确保 Actor 在地球缩放、旋转或移动时始终保持在正确的地理位置上。