第 19 场 强者挑战赛

第 19 场 强者挑战赛

1 敲打骷髅兵

不难发现,设 f i f_i fi 表示击败血量为 i i i 所需要的敲打次数。

f 1 = 1 f_1=1 f1=1 , f i = 2 f i − 1 + 1 f_i=2f_{i-1}+1 fi=2fi1+1

打表找规律即可。

void solve(){ int n, t = 1;cin >> n;while(t <= n) t <<= 1;cout << t - 1 << '\n';
}

2 净化王胖子

设房间 i i i 与 房间 i + 1 i+1 i+1 之间的通道编号为 i i i ,则一共 1 ∼ n − 1 1\sim n-1 1n1 个通道。

每次从 x → y x\rightarrow y xy ,就是经过了 [ x , y ) [x,y) [x,y) 这些通道。

用线段树维护每个通道通过次数之后,贪心处理即可。

#include<bits/stdc++.h>
using namespace std;
#define int long longint const N = 2e5 + 10;#define lc u << 1
#define rc u << 1 | 1// 维护端点, 线段和, 加法懒标记
struct treeNode{int l, r, sum, add;
}tr[N * 4];// 向上更新
void pushup(int u){tr[u].sum = tr[lc].sum + tr[rc].sum;
}// 向下更新
void pushdown(int u){if(tr[u].add){tr[lc].sum += tr[u].add * (tr[lc].r - tr[lc].l + 1);tr[rc].sum += tr[u].add * (tr[rc].r - tr[rc].l + 1);tr[lc].add += tr[u].add;tr[rc].add += tr[u].add;tr[u].add = 0;}
}void buildTree(int u, int l, int r){tr[u] = {l, r, 0, 0};if(l == r) return ; // 是叶子结点则返回int mid = l + r >> 1; // 不是叶子结点就分裂buildTree(lc, l, mid);buildTree(rc, mid + 1, r);pushup(u);
}// 区间加 (区间减也是区间加)
void segmentAdd(int u, int l, int r, int x){if(l <= tr[u].l && r >= tr[u].r){ // 覆盖则修改tr[u].sum += (tr[u].r - tr[u].l + 1) * x;tr[u].add += x;return ;}int mid = tr[u].l + tr[u].r >> 1; // 不覆盖就分裂pushdown(u);if(l <= mid) segmentAdd(lc, l, r, x);if(r > mid) segmentAdd(rc, l, r, x);pushup(u);
} // 区间求和
int askSegmentSum(int u, int l, int r){if(l <= tr[u].l && r  >= tr[u].r){ // 覆盖则返回return tr[u].sum;}int mid = tr[u].l + tr[u].r >> 1;pushdown(u);int sum = 0;if(l <= mid) sum += askSegmentSum(lc, l, r);if(r > mid) sum += askSegmentSum(rc, l, r);return sum;
}int n, k;
int p[N];void solve(){cin >> n >> k;buildTree(1, 1, n - 1);for(int i = 1; i <= n; i ++){int x;cin >> x;p[x] = i;}for(int i = 1; i < n; i ++){int l = p[i], r = p[i + 1];if(l > r) swap(l, r);segmentAdd(1, l, r - 1, 1);}vector<int> vc;for(int i = 1; i < n; i ++){vc.push_back(askSegmentSum(1, i, i));}sort(vc.begin(), vc.end(), [&] (auto &a, auto &b){return a > b;});// for(auto &x : vc) cout << x << ' ';if(accumulate(vc.begin(), vc.end(), 0LL) < k){cout << "-1";}else{for(int i = 0; i < vc.size(); i ++){k -= vc[i];if(k <= 0){cout << i + 1;return; }}}
}signed main(){ios::sync_with_stdio(false);cin.tie(0), cout.tie(0); solve();return 0;
}

3 云顶天宫

f i , 0 f_{i,0} fi,0 表示考虑 1 ∼ i 1\sim i 1i 这些圆盘,从未出现过 m m m 的方案数。

f i , 1 f_{i,1} fi,1 表示出现过 m m m 但是不以 m m m 结尾, f i , 2 f_{i,2} fi,2 表示出现过 m m m 且以 m m m 结尾。

以上三个状态保证 m m m 不相邻。

实际上,存在 m m m 并且 m m m 不相邻一定可以构造答案,否则不能。

所以答案是 f n , 1 + f n , 2 f_{n,1}+f_{n,2} fn,1+fn,2

constexpr int P = 998244353;
using Z = MInt<P>;int const N = 1100;int n, m;Z f[N][3];void solve(){cin >> n >> m;f[1][0] = m - 1;f[1][1] = 0;f[1][2] = 1;for(int i = 2; i <= n; i ++){f[i][0] = f[i - 1][0] * (m - 1);f[i][1] = (m - 1) * (f[i - 1][1] + f[i - 1][2]);f[i][2] = f[i - 1][0] + f[i - 1][1];}cout << (f[n][1] + f[n][2]) << '\n'; 
}

4 古墓机关

一开始想复杂了,实际上就是一道球盒模型。

相当于 n n n 个有编号的球,放进 m m m 个盒子,允许为空。

答案就是 ( n + m − 1 m − 1 ) n+m-1 \choose m-1 (m1n+m1)

数据不严格,费马小定理处理阶乘逆元即可。

int fact[N], infact[N];void init(){fact[0] = 1;infact[0] = 1;for(int i = 1; i < N; i ++){fact[i] = fact[i - 1] * i % mod;infact[i] = ksm(fact[i], mod - 2, mod);}
}int C(int n, int m){return fact[n] * infact[m] % mod * infact[n - m] % mod;
}void solve(){int n, m; // n 个球放进 m 个盒子, 盒子可以为空cin >> n >> m;cout << C(n + m - 1, m - 1) << '\n';
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

系统设计,如何设计一个秒杀功能

需要解决的问题 瞬时流量的承接防止超卖预防黑产避免对正常服务的影响兜底方法 前端设计 利用 CDN 缓存静态资源&#xff0c;减轻服务器的压力在前端随机限流按钮防抖&#xff0c;防止用户重复点击 后端设计 Nginx 做统一接入&#xff0c;进行负载均衡与限流用 sentinel 等…

工具 | 红队大佬亲测5款推荐的Burpsuite插件

*免责声明&#xff1a;* *本文章仅用于信息安全技术分享&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作…

【LeetCode-热题100-128题】官方题解好像有误

最长连续序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-consecutive-sequence/?envTypestudy-plan-v2&envIdtop-100-liked 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的…

LLM大模型学习精要系列(一):掌握基础,开启大模型之旅

1.前言 1.1 基础模型研究 2023 年&#xff0c;随着 LLM 技术的发展&#xff0c;中国模型研究机构的开源模型迎来了爆发式的增长&#xff1a; 2023 年 3 月&#xff0c;智谱 AI 首先在魔搭社区发布了 ChatGLM-6B 系列&#xff0c;ChatGLM-6B 是一个开源的、支持中英双语问答的…

如何只修改obsidian图片链接为markdown

如何只修改obsidian图片链接为markdown 前言插件配置 使用注意 前言 适合有一定了解obsidian用法和插件市场&#xff0c;还有相对路径的人 插件 在obsidian插件市场搜索—开梯子 配置 首先使用ctrlp打开命令面板&#xff0c;也可以在左侧通过图标打开命令面板&#xff0c…

车载电子电气架构--- 车载诊断DTC全覆盖分类

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

智能制造的人机料法环的内涵

在生产和管理领域,有个很重要的概念叫 “人、机、料、法、环”。 “人” 就是参与其中的人员,他们的技能、态度、责任心等对事情的结果影响很大; “机” 指的是机器设备和工具等,就像干活要用的家伙事儿,好不好用、正不正常直接关系到工作的效率和质量; “料” 呢,就…

MathType软件7.9最新版本下载超实用指南

嗨&#xff0c;各位学霸、研究僧还有教育界的大佬们&#xff01;&#x1f44b; 今天我要给你们安利的不是一道数学题&#xff0c;也不是一本教科书&#xff0c;而是一款让你分分钟爱上数学的神器——MathType软件&#xff01;&#x1f389; #### &#x1f4da; **MathType是什…

DataX+Crontab实现多任务顺序定时同步

DataX+Crontab实现多任务顺序定时同步 前言 DataX 是一款支持在异构数据源之间离线同步数据的工具, DataX 通过输入一些命令执行 json 配置文件,这样使用起来并不是很方便, DataX 也不支持定时任务调度,它仅支持一次性同步任务。所以 DataX 的这些特点造成了它无法完成一些…

S7-200 SMART Modbus RTU常见问题

1.S7-200 SMART 是否支持 Modbus ASCII 通信模式&#xff1f; STEP 7-Micro/WIN SMART 软件未提供Modbus ASCII 通信模式指令库。S7-200 SMART CPU若用于Modbus ASCII 通信时&#xff0c;则需要用户使用自由口通信模式进行编程。 2.S7-200 SMART CPU 集成的RS485 端口&#xf…

YOLOv10改进,YOLOv10添加CA注意力机制,二次创新C2f结构,助力涨点

改进前训练结果: 二次创新C2f结构训练结果: 摘要 在本文中,提出了一种新的移动网络注意力机制,将位置信息嵌入到信道注意力中称之为“协调注意力”。与渠道关注不同通过 2D 全局池将特征张量转换为单个特征向量,坐标注意力因子将通道注意力转化为两个 1D 特征编码过程…

STAR数据集:首个用于大型卫星图像中场景图生成大规模数据集

2024-06-12&#xff0c;在遥感图像领域&#xff0c;由武汉大学等机构联合创建的STAR数据集&#xff0c;标志着场景图生成技术在大规模、高分辨率卫星图像中的新突破。 一、研究背景&#xff1a; 场景图生成(Scene Graph Generation, SGG)技术在自然图像中已取得显著进展&#…

[C语言]指针和数组

目录 1.数组的地址 2.通过指针访问数组 3.数组和指针的不同点 4.指针数组 1.数组的地址 数组的地址是什么&#xff1f; 看下面一组代码 #include <stdio.h> int main() { int arr[5] {5,4,3,2,1}; printf("&arr[0] %p\n", &arr[0]); printf(&qu…

个人网站,怎么操作才能提升个人网站的流量

运营个人网站以提升流量是一个综合性的过程&#xff0c;涉及内容优化、技术调整、用户体验提升以及外部推广等多个方面。以下是一些专业建议&#xff0c;旨在帮助个人网站运营者有效提升网站流量&#xff1a; 1.精准关键词研究与优化 -关键词研究&#xff1a;利用工具如谷歌…

【YOLO学习】YOLOv3详解

文章目录 1. 网络结构1.1 结构介绍1.2 改进 2. 训练与测试过程3. 总结 1. 网络结构 1.1 结构介绍 1. 与 YOLOv2 不同的是&#xff0c;YOLOv3 在 Darknet-19 里加入了 ResNet 残差连接&#xff0c;改进之后的模型叫 Darknet-53。在 ImageNet上 实验发现 Darknet-53 相对于 ResN…

数据结构与算法篇(树 - 常见术语)

目录 一、什么是树&#xff1f; 二、相关术语 根结点 边 叶子结点 兄弟结点 祖先结点 结点的大小 树的层 结点的深度 结点的高度 树的高度 斜树 一、什么是树&#xff1f; 树是一种类似于链表的数据结构&#xff0c;不过链表的结点是以线性方式简单地指向其后继结…

ORB-SLAM复现时遇到的问题(复现失败,切莫当做教程)

背景 本人的环境&#xff1a;使用ubuntu20.04&#xff0c;opencv4 问题 进行Build DBoW2. Go into Thirdparty/DBoW2/ and execute:时&#xff0c;运行make时出错 我安装的opencv4&#xff0c;在 OpenCV 3 和更高版本中&#xff0c;头文件的路径可能已更改。例如&#xff0…

[单master节点k8s部署]32.ceph分布式存储(三)

基于ceph rbd生成pv 在集群中认证ceph 用下面代码生成ceph的secret .创建 ceph 的 secret&#xff0c;在 k8s 的控制节点操作&#xff1a; 回到 ceph 管理节点创建 pool 池&#xff1a; [rootmaster1-admin ~]# ceph osd pool create k8stest 56 pool k8stest created [rootm…

免费音频剪辑软件大揭秘:让声音创作更轻松

在精神娱乐越发丰富的现在&#xff0c;音频内容的创作和编辑变得越来越重要。无论是专业的音乐制作人&#xff0c;还是自媒体创作者&#xff0c;都可能需要一款功能强大且易于使用的音频剪辑软件来处理音频素材。今天我们一同来探讨有什么好用的免费音频剪辑软件吧。 1.福昕音…

golang gin入门

gin是个小而精的web开发框架 官方文档 安装 go get -u github.com/gin-gonic/gin最简单的起手代码 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/ping", func(c *gin.Context) {c.JSON…