第四届辽宁省大学生程序设计竞赛(正式赛)A B H F M C

2023-11-07 07:45

本文主要是介绍第四届辽宁省大学生程序设计竞赛(正式赛)A B H F M C,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A题,签到。

print(27)

B题,注意精度问题。将d除以100后,需要保证前4位是相同的,因为四舍五入,所以第五位可能需要进位或舍去。那么fabs(d - v)应该要小于5e-5,这样就保证了四舍五入后仍然是对的。如果是乘100,用四舍五入判断可能更简单(

void solve() {double d; cin>>d; d /= 100;for(int i = 1; i <= 10000; ++i) {for(int j = 1; j <= i; ++j) {double v = (double) j / i;if(fabs(v - d) <=5e-5) {cout<<i;return ;}}}
}

H题,判奇偶。

n = int(input())
for _ in range(n):a,b,c = list(map(int, input().split(' ')))if c % 2 == 0: print("Bob")else: print('Alice')

F题,感觉很经典,找一个点的前面最优和后面最优结果,最后取个max。

void solve() {int n; cin>>n;vector<int> a(n + 1), pre(n + 1), suf(n + 1);for(int i = 1; i <= n; ++i) cin>>a[i];for(int i = 1; i <= n; ++i) {for(int j = 1; j < i; ++j) {pre[i] = max(pre[i], min(a[i], a[j]) * (i - j));}}for(int i = n; i >= 1; --i) {for(int j = n; j > i; --j) {suf[i] = max(suf[i], min(a[i], a[j]) * (j - i));}}int ans = 0;for(int i = 1; i <= n; ++i) {ans = max(ans, pre[i] + suf[i]);}cout<<ans<<endl;
}

M题,算期望。直接组合数麻烦,但是每次只考虑单个合法字符串的概率容易实现。

const int mod = 1e9 + 7;
LL inv(LL x, LL mod) {if(x == 0 || x == 1) return x;return (mod - mod/x) * inv(mod % x, mod) % mod;
}
void solve() {int a,b,n; cin>>a>>b>>n;if(n < 5) {cout<<'0'<<endl;return ;}int iv = inv(b,mod);int p1 = a * iv % mod;int p0 = (1 - p1 + mod) % mod;cout<< (n - 4) * p0% mod * p0%mod * p1%mod * p1%mod *p1%mod<<endl;
}

C题,范围有点小。

感觉是个dp,因为有很多类似题面的dp题。(不会做,看题解补,

看到了一个是用优先队列的,就补了一下这题。

首先考虑,手动打死的怪一定是除它之外所用的爆炸伤害之和还小于它的生命值的,因为不管怎么弄,最坏情况是其他都死了,产生的爆炸伤害之和都没有把其炸死,那么它一定是要手动打死的。同时,对于爆炸伤害相同的怪,优先让血量高的先手动打死,因为爆炸伤害相同,打死血量高的,那么产生的爆炸伤害可能将血量低的炸死,而打死血量低的,能把血量高的炸死那么一定可以把血量低的炸死。

我们用两个优先队列来优先记录血量和爆炸伤害,还需要一个vis数组来判断是否这个下标对应的怪在之前已经死了。

代码如下:

void solve() {int n; cin>>n;vector<array<int,2>> a(n); // a, bvector<int> vis(n);int sum = 0, now = 0,cnt = 0;for(auto &t: a) cin>>t[0]>>t[1], sum += t[1];// 优先队列:一个优先爆炸值,血量; 一个优先血量auto cmp1 = [&](auto pre, auto suf) {if(pre[1] == suf[1]) return pre[0] < suf[0];return pre[1] < suf[1];};priority_queue<array<int,3>, vector<array<int,3>>, decltype(cmp1)> atk(cmp1);auto cmp2 = [&](auto pre, auto suf) {return pre[0] > suf[0];};priority_queue<array<int,3>, vector<array<int,3>>, decltype(cmp2)> hp(cmp2);// 找除它之外的所有爆炸值之和仍小于其血量的,手动处理for(int i = 0; i < n; ++i) {if(sum - a[i][1] >= a[i][0]) {atk.push({a[i][0], a[i][1], i});hp.push({a[i][0], a[i][1], i});} else {cnt++; vis[i] = 1;now += a[i][1];}}// 先将血量低于当前爆炸值的给处理掉// 再进行手动处理while(atk.size() && hp.size()) {while(hp.size() && now >= hp.top()[0]) {if(!vis[hp.top()[2]]) now += hp.top()[1];vis[hp.top()[2]] = 1;hp.pop();}while(atk.size() && vis[atk.top()[2]]) atk.pop();if(atk.empty() || hp.empty()) break;cnt++;now += atk.top()[1];vis[atk.top()[2]] = 1;atk.pop();}cout<<cnt<<endl;
}

L题,莫队。待补…

这篇关于第四届辽宁省大学生程序设计竞赛(正式赛)A B H F M C的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362227

相关文章

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保

2024年全国大学生数学建模A题借鉴论文

问题  1: 舞龙队的动态位置与速度计算 1. **螺旋线的几何建模**:根据题目描述,舞龙队沿着等距螺旋线前进。螺旋线的螺距为 55 cm, 需根据极坐标公式确定每节板凳的位置。 -  极坐标螺旋线方程:\( r = a + b\theta \), 其中  \( b \)  是螺距, 可以利用该方程计算 每秒舞龙队的各个节数的坐标。 2. **速度计算**:给定龙头的行进速度为 1 m/s ,