大学生程序设计创新实践基地2022年冬季校赛(NPU ACM Winter Contest)

news2024/11/18 15:43:33

大学生程序设计创新实践基地2022年冬季校赛(NPU ACM Winter Contest)

总述

总体考察对于板子的熟练变换,以及考察离谱地使用python和对getchar()以及EOF的基础掌握程度。

B,D,E是防AK题目。

题解

A死锁

image

image

input

3 3
1 2 3
3 2 1
3 2 1
6 5 4
4 5 6
4 6 5
9 9 9
3 3
1 2 3
3 2 1
3 2 1
6 5 4
4 5 6
4 6 5
9 9 10

output

Dead Lock!
Yes!

思路

这是一个带模拟。

按照策略,如果一个程序使用目前的资源可以结束,那么就可以结束这一个进程,同时回收。如果对于所有的剩下的进程无法提供资源,那么就是死锁。

注意:是有多重输入,所以应该使用while(cin >> )形式

C 教科书般的亵渎

Problem Description

《炉石传说:魔兽英雄传》是一款由暴雪娱乐公司出品的策略类卡牌游戏,中国大陆地区的独家运营由网易公司代理。2014年3月13日全球同步正式运营,“酒馆战棋”模式于北京时间2019年11月6日凌晨2点国服开启抢先体验。

游戏背景设定于暴雪的魔兽系列,共十位魔兽中的角色作为十种不同的职业。而玩家要做的,就是根据己方现有的卡牌组建合适的卡组,指挥英雄,驱动随从,施展法术,与游戏好友或素不相识的对手一决高下。

在炉石传说游戏中,你需要控制随从来为你赢得战斗。有时,你需要及时处理对手的随从。你当然可以使用你的随从来攻击对手的;但是,当对手的场面过于庞大时,你可能需要法术来帮助解场。亵渎就是一张优质的解场法术,它上限极高,但需要一定的(有时极为复杂的)计算。本题的背景就是在你不控制任何随从的时候,
使用亵渎解场(消灭所有随从)。

image

为简化题意,我们假设:一张亵渎能对所有随从造成 1 点伤害,如果有随从死

亡,则再次施放亵渎;一个随从有生命值(一个整数),当生命值小于等于 0 时该随

从立即死亡;我们只使用亵渎解场,并且不考虑所有其他因素。

在2018年1月11日的逗鱼时刻中,异灵术老师在手牌中有扭曲虚空的情况下,仍

尝试使用亵渎解对面DK铺的一波场面:

image

经过不懈努力,最终异灵术仍没能在回合结束前算出解法。作为他的粉丝,小A决

定让你写个程序帮帮异灵术老师算数。

在此题中,每个随从依次入场,初始状态下场上无随从。每有一个随从入场,你都必须立刻算出:至少需要打出多少张亵渎,才能消灭场上已有的所有随从?

Input Format

输入共两行。

第一行,有且仅有一个正整数 N,表示战场上的随从数量。

第二行有 N 个正整数,第 i 个正整数 a*i* 表示第 i 个入场随从的初始生命值,相

邻两个正整数之间用一个空格隔开。

Output Format

一行,N个正整数,第 i 个数表示消灭第 1,2, …, i 个随从需要打出的亵渎张数

的最小值。相邻两个正整数之间用一个空格隔开。

Hint

image

样例解释:

第 1 个随从入场,消灭第 1 个随从需要打出 1 张亵渎;

第 2 个随从入场,消灭第 1, 2 个随从需要打出
2 张亵渎;

第 3 个随从入场,消灭第 1, 2, 3 个随从需要打出 1 张亵渎。

输入

3
1 3 2

输出

1 2 1

思路

其实是一道水题

当有一大波随从进来以后,我们要消灭所有的随从,就相当于考虑消灭生命值最大的随从

(充分必要,最大的消灭了,那么所有的随从消灭了,并且仅仅最大的随从消灭了,那么所有的随从才能算是被消灭)

如果同一个生命值有许多的随从,其实相当于是只有一个随从(生命值同时降为0,仅仅引发一次亵渎)

现在想:如果仅仅有一个随从,那么就需要他的血量这么多的伤害。

如果小于最大的随从有m个(去重之后),那么仅仅需要 n − m n - m nm随从就可以了。

我们动态地进行考虑

当前消灭已经出现的随从要ans次亵渎

设当前的最大血量为maxv(初始值为-1)

  1. 添加的一个随从的血量已经出现,那么输出ans并且continue
  2. 添加的一个随从的血量不是最大,那么ans–
  3. 添加的一个随从的血量(用z表示)比maxv还要大,那么ans += z - maxv - 1

这样就可以了

F 理论力学

image

提示:

Σn ≤ 200000 且所有输入均在C 语言long 范围内

输入1

1
1
2 2 1 1

输出1

No

输入2

1
2
2 2 1 1
-2 -2 -1 -1

输出2

Yes

思路

典型推式子然后C程序考试题。

需要使得

∑ F x = 0 ∑ F y = 0 ∑ x F y − y F x = 0 \sum F_x = 0\\ \sum F_y = 0\\ \sum xF_y - yF_x = 0\\ Fx=0Fy=0xFyyFx=0

然后就可以了。

G 保险柜

小A有一个神奇的保险柜,需要输入正确的密码(一个正整数)后才能打开。神奇的是,这个保险柜的密码不唯一,也就是说存在多种合法的密码;一个密码合法, 当且仅当这个数能被 11 整除。

小A为了防止舍友小B窃密, 每次都会输入一个很大的密码。现在小A想问你:

他输入的这个数是不是一个合法密码?

Input Format

一行,一个正整数 S,表示密码。

Output Format

一行,一个字符串。如果密码合法,则输出“Yes”;否则输出“No”。大小写敏

感。

Hint

对于所有数据,有
0 lg S 2 × 10 5

输入1

11

输出1

Yes

输入2

12

输出2

No

思路

这一道题目对于python就是水题。

一句话:使用python写,自带高精度,堪比上课练习题

H 区间&&查询

ProblemDescription

给定 N 个区间 [l, r] (都是闭区间),对于每个区间,求出其余 N 1个区间有多少个区间和该区间有交集([2, 5] 和[5, 7] 也视为有交集)。

Input Format

第一行输入一个正整数 N(2 N 10 5 ) 接下来的 N 行每行两个正整数 L i , R*i* (1 L*i* R*i* 10 9 )代表一个区间。

Output Format

输出 N 行,第 i 行代表其余N 1 个区间有多少个区间和第i 个区间有交集。

输入1

3
1 5
2 4
5 6

输出1

2
1
1

思路

一开始想了许久,然后发现也很水。

所覆盖的区间数就是 总 数 − 1 − 当 前 区 间 左 端 点 左 边 的 其 他 区 间 右 端 点 个 数 − 当 前 区 间 右 端 点 右 边 的 其 他 区 间 左 端 点 个 数 总数 - 1 - 当前区间左端点左边的其他区间右端点个数 - 当前区间右端点右边的其他区间左端点个数 1a(正着考虑难,那么就反着考虑,总数减去不覆盖的)

我们先把所有的区间的左端点,右端点存入两个数组l,r

然后进行排序。

使用二分法来求出分界点坐标,然后求出当前区间左端点左边的其他区间右端点个数 以及 当前区间右端点右边的其他区间左端点个数

I 众里寻ta千百度

image

Hint

隧道最多只能走一次,当然也可以不走。

输入1

4 2
1 2 5
3 4 3
1
2 3 1

输出1

9

首先:使用SPFA,因为更新过程中变数比较多,迭代来的更稳一些

然后我们使用d[][0/1]来存储每一个点到起点的距离。

如果是d[][0],那么表示存起点到这里,没有经过隧道。

如果是d[][1],那么表示存起点到这里,已经经过隧道。

对于当前点 x x x

  1. 遇到公路,那么使用d[x][0]更新d[y][0],使用d[x][1]更新d[y][1]
  2. 遇到隧道,那么使用d[x][0]更新d[y][1]

J 强制在线

image

image

输入1

3
1
3
2

输出1

3
1
2
3

这一道题目可以使用

  1. 复杂度直接爆炸的递归形式
  2. 线性的递推形式
  3. 使用矩阵快速幂可以过本题

这里使用矩阵快速幂。

K 买装备

Problem Description

A和B最近迷上了英雄联盟这款游戏,但A和B都是手残,每一次在游戏中都会拖队友的后腿。为了不影响其他队友的游戏体验,他们只能选择熔岩巨兽墨菲特和北地之怒瑟庄妮这些操作难度较低的英雄,即使手法上有所欠缺,但只要大到人就算有作用。但这样的英雄往往很难吃到经济,没有金币来购买装备。而队内的输出大哥,人头拿的多,野怪刷的快,往往很快就满装备了(一个英雄最多可以出 6 件装备),还剩出许多金币花不出去。于是A和B就在想,如果英雄可以买无限多的装备的话,输出大哥的战斗力会有多高呢?

在英雄联盟中有神话装备,传说装备,史诗装备和普通装备。每一个英雄只能买一件神话装备(在神话装备中选一件,也可以不买神话装备),而其他种类的装备可以同时购买,但是同样的一件装备只能买一个。

 为了方便起见我们将一件装备 i 用 a *~i~* , b *~i~* , c*~i~*来表述。当 a*~i~* = 1 时,表示 i 为神话装备,a*~i~* = 0 时,表示 i 为其他种类的装备。 b*~i~*为购买装备 i 需要的金币,c*~i~*为装备 i 可以提供的战斗力。英雄的战斗力之和为他所拥有的装备的战斗力之和。

A现在拥有 M 个金币,问他最多可以拥有多少的战斗力。

Input Format

第一行输入两个整数 M, N。表示A拥有的金币数量 M 和商店老板提供的装备

数量 N;

接下来的 N 行,每行三个正整数 a i , b i , c i 。意义如题面所示。

Output Format

输出最多可以拥有的战斗力。

image

输入1

100 5 
1 20 20
1 30 30
0 20 100
0 80 200
0 50 110

输出1

300

思路

这里就需要掌握到背包问题的精髓。

首先,我们把所有的非神化装备DP完,然后考虑神话装备。

  1. 不选神话装备,那么答案就是dp[m]
  2. 如果要选择神话装备,首先看能不能买起,然后能力值就是dp[m-价钱] + 价值

DP 的精髓赏析:

  • 对于最后一件物品,DP一下就可以了,不需要对所有的m进行D
  • 关于只能选择一种的类型,我放在最后,在把01背包的问题考虑完成以后再进行考虑。

L 寄你太美

Problem Description

小黑子A是个不折不扣的iKun,他发现很多字符串中都会出现cxk和ji的字样,他

想让你统计在一段文本中cxk和ji各出现了几次

由于小黑子A对cxk爱的深沉,他对你提出两个额外要求:

  1. 在两个字符间出现空格或换行符,不影响字符串匹配,但中间不能出现其他

字符,详见样例 1

  1. 大小写随意,详见样例 2

Input Format

若干行,包含空格、换行符和大小写字母,文件大小不超过
5 MB

Output Format

两个整数,分别代表cxk和ji出现的次数

输入1

c x
k w
o j
i g e

输出1

1 1

输入2

jINiTaImeICxk

输出2

1 1

思路

话说虽然是C语言课堂练习,但是这里优雅的写法是while((c = getchar()) != EOF)

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

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

相关文章

【第九章 SQL优化_插入数据,主键优化,order by优化】

第九章 SQL优化_插入数据,主键优化,order by优化 1.插入数据: (1)insert: (1)批量插入数据: Insert into tb_test values(1,Tom),(2,Cat),(3,Jerry); (2&am…

PyTorch(五)神经网络基础

文章目录Log一、Containers 基本骨架1. Module2. Sequential二、 Convolution Layers 卷积层1. torch.nn.functional① Conv2d2. torch.nn① Conv2d三、Pooling layers 池化层1. nn.MaxPool2d 下采样(最大池化)四、Non-linear Activations 非线性激活1. …

2022CCSP T1最少充电次数

记录第一次CCSP竞赛。一共3题,只做出第一题,用时3h30m(累),ac了开心地吃了个午饭。然而饭饱之后,大脑完全提不起神看着题面昏昏欲睡。第二题是虚拟内存,超级大模拟,刚好这个学期学os…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java流浪动物救助网站a1wsz

毕业设计也不需要做多高端的程序,毕业设计对于大多数同学来说,为什么感觉到难,最重要的一个原因,那就是理论课到实践课的转变,很多人一下不适应,本能开始拒绝,如果是一个考试,大家都…

ITU、MCC和MNC介绍以及China运营商对照表

相关概念 ITU 国际电信联盟是联合国负责信息通信技术(ICT)事务的专门机构。 国际电联成立于1865年,为了促进国际上通信网络的互联互通。他们进行全球无线电频谱和卫星轨道的划分,制定技术标准以确保实现网络和技术的无缝互连&…

【Docker】30条Docker常用命令图文举例总结

本期目录1. 帮助启动类命令2. 镜像命令2.1 列出镜像2.2 搜索远程库镜像2.3 拉取镜像2.4 查看所占空间2.5 删除镜像2.6 面试题3. 容器命令3.1 新建启动容器1)启动交互式容器3.2 列出当前所有正在运行的容器3.3 退出容器3.4 启动已停止的容器3.5 重启容器3.6 停止容器…

第六章 映射:Mappings

文章目录1、Mapping 简介1.1 mapping 是啥?1.2 如何查看索引映射2、自动映射:dynamic mapping2.1 自动类型推断规则2.2 mapping 的使用禁忌2.3 自动映射器的意义是什么?3、手动映射:Explicit mapping3.1 创建索引的 mapping3.2 修…

电子产品量产工具项目开发中遇到的问题(更新......)

1、找不到tslib.h库的头文件 这是因为找不到tslib库的头文件。 确定工具链中头文件、库文件目录,对于 IMX6ULL ,命令如下 echo main(){}| arm-linux-gnueabihf-gcc -E -v -找到了编译器arm-linux-gnueabihf的include和lib文件夹 /usr/local/arm/gcc-l…

AT155 高压绝缘电阻测试仪 都有哪些功能?

、 高压绝缘电阻测试仪是—款手持式仪表主要用来测量交流/直流电压、 电阻、 短路蜂鸣测试和 绝缘电阻测量。 式高压绝缘电阻测试仪具有4个量程用千绝缘电阻、 AC/DC电压、 电阻和短路蜂鸣测试。 设计达到以下安全标准 .绝缘测试量程O.lMn to 60Gn。…

机器学习 决策树基础 ID3、C4.5、CART

文章目录参考决策树指标基尼系数基础公式公式理解引入划分后的公式划分后公式的理解信息熵、信息增益如何理解信息熵两种指标的对比划分策略ID3定义举例计算各属性的信息增益选取最优属性作划分对子节点作递归划分生成结果ID3的缺点C4.5信息增益率优化缺点CARTCART相较于前两者…

Windows下使用C语言创建定时器并周期和网络调试助手通信

在Windows C下采用timeSetEvent函数来设置定时器 关于timeSetEvent的函数原型及注释如下所示: MMRESULT timeSetEvent(UINT uDelay, // 定时事件的触发周期,单位为毫秒UINT uResolution, // 定时事件的精度,单位…

161-183-mysql-高级篇-事务-锁-mvcc

116-mysql-事务篇-锁: 推荐网站 mysql学习网站:https://www.bilibili.com/video/BV1iq4y1u7vj?p109&vd_source39a1ba1654411bc9ab90f6f2926600b7 mysql:https://dev.mysql.com/doc/refman/8.0/en/ 算法:https://www.cs.us…

我看世界杯——来自一个“假”球迷视角

世界杯还有一个星期就要结束了,说实话,我之前是一场球都没有,对足球知道也甚少,妥妥一个假球迷了。这次世界杯感觉离自己特别近,身边的很多朋友都在看,也不乏赌球的小伙伴,自己的感悟也比较深&a…

电机定子模态的空间特征

对于电机定子模态而言,通常不是按传统的阶次顺序(按频率从小到大)来描述它们,而是按空间节点数的顺序来描述,这在很大程度上是因为受激励的电磁力波的振型的影响。 1、传统模态阶次表示方式 传统模态阶次的顺序都是按…

安卓期末大作业——个人简历APP源码和设计报告

Android课程需求文档 设计题目: 个人简历APP 学生姓名: 学号: 1.Smart.apk功能设计说明 Android真机运行进入该app。背景音乐服务播放正常,并设置可通过右上角按钮关闭musicservice; 1通过viewpager实…

Jenkins+SonarQube 代码质量检测详解

一、SonarQube 概述 1、SonarQube 简介 Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。 Sonar Qube通过插件机制,Sonar可以集成不同的测试工具,代码分析工具…

【JavaWeb开发-Servlet】将项目打包部署在本地

Servlet与JSP进阶十:Web应用程序打包与发布(war包)_小枯林的博客-CSDN博客_servlet项目如何打成war包本篇博客主要内容是: ●如何使用Eclipse打war包; ●打好的war包如何发布;访问演示; ●解决u…

如何使用ChatGPT辅助AI绘画?

如何使用ChatGPT辅助AI绘画? AI自动化内容生成(AIGC)是一种利用人工智能技术生成新内容的方法。它可以快速、自动、准确地从大量原始数据中生成新内容,大大提高了内容创作效率。AIGC 使用机器学习算法,自动识别文本特…

【MySQL】触发器

目录 概述 操作-创建触发器 操作-NEW与OLD 其他操作 注意事项 概述 介绍 触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据 库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执…

微信小程序|前端技术主要框架分析

1.框架 微信提供了一套自己的用于开发小程序的前端框架,和目前主流的前端框架相比,其既有类似的地方,也有特殊的地方。 特殊的地方在于其只能在微信小程序开发工具内使用,并做了相对严格的使用和配置限制,开发者必须按照其规定的用法来使用。一些外部的框架和插件在小程…