“艾迪-东软杯”第六届武汉理工大学新生程序设计竞赛

A.Capoo's Acronym Zero

题目描述

yz 和他的朋友 ea 和 zech 一起养了一群 Capoo。

这些 Capoo 非常聪明,但不知道为什么,它们并没有从三人那里学到怎么写算法题,而是出于某种原因开始研究语言学,并发明了一套自己的暗语。这门暗语的编写规则非常简单:一个句子可以认为是一个字符串,中间仅包含大写英文字母和小写英文字母,每个大写字母对应一个单词。而与之对应的暗语则是依次取出句子中每个单词的第一个字符,把它们直接拼接到一起。例如:句子 WetaDigital 对应的暗语为 WD 。

很明显,这套暗语规则十分简单,但不同句子所对应的暗语之间容易发生冲突。以之前的例子为例,短语 WesternDigital 所对应的暗语也是 WD ,这时,当听到一只 Capoo 提到 WD 时,三人就会困惑于它指代的到底是什么意思。yz 已经准备了一个包含很多句子的词典,但还需要一个翻译程序在听到 Capoo 所提到的暗语时快速找到这个暗语都对应了词典中的哪些句子。事实上,这个程序早已写好,可惜这里空白的地方太小,写不下,现在复现这个程序的任务被交给了你。

输入描述

第 1 行为两个整数 n , q ,(0≤n≤1e4,1≤q≤1e4) 为词典中的句子数和询问翻译程序的次数。第 2 行到第 n+1 行为词典,每行为一个句子,内容仅包含二十六个英文字母的大小写形式。第 n+2 行到第 n+q+1 行,每行一个字符串,为本次需要查询查询的暗语。

输出描述

对于每次询问,输出格式如下:第 1 行为一个整数sum ,为所询问的这个暗语在词典中能对应上的句子数目。第 2行到第 sum+1 行,每行为一个当前所询问的暗语所对应的句子。请按输入时句子在词典中的相对顺序输出。

示例1

输入1

5 3
WetaDigital
wordDrive
wikipediadancer
WesternDigital
wonderfulday
WD
wd
Wd

输出1

2
WetaDigital
WesternDigital
0
0

示例2

输入2

10 5
Zech
EternalAlexander
YZ
RoSeMoe
InnovationInChina
ColorlessGreenIdeasSleepFuriously
EveryFrogTriesReallyNew
EclipseFirstTheRestNowhere
CleverThinkingBoostsProblemSolving
RouSiMian
YZ
EA
Z
EFTRN
RSM

输出2

1
YZ
1
EternalAlexander
1
Zech
2
EveryFrogTriesReallyNew
EclipseFirstTheRestNowhere
2
RoSeMoe
RouSiMian

备注

一个单词最多长 202020 个字符, 一个句子最多有 505050 个单词。保证一个句子的总长度不超过 100010001000。为什么题目叫 Capoo's Acronym Zero 呢?好问题,我也想知道。

代码

#include<bits/stdc++.h>
using namespace std;
int n,q,idx;
unordered_map<string,int> h;string get(string s) {string res="";bool f=false;for(auto it: s)if(it>='A'&&it<='Z') {f=true;res+=it;}if(!f) return "0000";return res;
}signed main() {cin>>n>>q;vector<string> g[n+10];for(int i=0;i<n;i++) {string s;cin>>s;string t=get(s);if(t=="0000") continue;if(!h[t]) h[t]=++idx;g[h[t]].push_back(s);}while(q--) {string s;cin>>s;if(g[h[s]].size()==0) {cout<<0<<"\n";continue;}cout<<g[h[s]].size()<<"\n";for(auto x: g[h[s]]) cout<<x<<"\n";}return 0;
}


B.原来你也玩原神

题目描述

23 级的同学们因为玩原神不够多被发配到了南湖校区,无法前往人间仙境余家头。现在同学们认识到了自己的错误,开始玩各种各样的原神。

南湖校区有 n个学生,依次编号为 1∼n ,以及 m 种原神,依次编号为 1∼m。

现在已知每个学生选择了一种原神来玩。同时,每个学生都有一个能力值 ai∈[1,k]。

现在有一位不愿透露姓名的原神高手想知道每种的原神的实力排行。即,对于每种原神,请你按照能力值从高到低的顺序输出玩这种原神的所有学生的编号(当能力值相同时,按编号升序输出)。你能回答他的问题吗?

 

输入描述

第一行三个正整数 n,m,k(1≤n,m,k≤1000),意义见题目描述。接下来的 n 行,第 iii 行包含两个正整数 xi,ai。xi 表示编号为 i 的学生玩的原神的编号, ai​ 表示该学生的能力值。保证 1≤xi​≤m,1≤ai​≤k。

输出描述

输出共 m 行,第 i 行表示第 i 种原神的实力排行。若该种原神无人游玩,输出 −1。

示例1

输入1

5 3 10
1 10
2 9
1 8
2 9
3 1

输出1

1 3
2 4
5

说明1

样例一:原神一号中学生 111 的实力大于学生 333,原神二号中学生 222 的实力等于学生 444,原神三号中仅有学生 555。

示例2

输入2

9 7 1000
2 5
4 5
2 8
1 6
4 5
2 4
3 5
4 8
1 2

输出2

4 9
3 1 6
7
8 2 5
-1
-1
-1

 代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int,int> PII;
const int N=1e3+10;
int n,m,k;struct node {int a,i;
};vector<node> g[N];bool cmp(node &a1,node &a2) {if(a1.a==a2.a) return a1.i<a2.i;return a1.a>a2.a;
}signed main() {cin>>n>>m>>k;for(int i=1;i<=n;i++) {int x,a;cin>>x>>a;g[x].push_back({a,i});}for(int i=1;i<=m;i++)if(g[i].size()==0) cout<<-1<<"\n";else {sort(g[i].begin(),g[i].end(),cmp);for(auto x: g[i]) cout<<x.i<<" ";puts("");}return 0;
}

C.萌萌的玫瑰

Rosemoe 有 n 朵萌萌的玫瑰,她们排成了一列。每朵玫瑰都有一个美丽贡献度。第 i 朵玫瑰拥有 ai​ 的美丽贡献度。由于 Rosemoe 照顾不周,可能有些玫瑰枯萎了,她的美丽贡献度不是正数,而是零或负数。

Rosemoe 将几朵玫瑰的美丽值定义为这几朵玫瑰的美丽贡献度相或。形式化地来说,如果有 k 朵玫瑰,其中第 i 朵的美丽贡献度为 bib_ibi​ , 那么这几朵玫瑰的美丽值为 b1∨b2∨⋯∨bk−1∨bk(其中 ∨ 表示按位或)。注意:本题中进行或运算时,均以C/C++中的64位有符号整数(long long)的或运算实现。负数的符号位总是 1 。特别地,我们认为 0 朵玫瑰的美丽值为 0 。

Rosemoe 突然有一个问题:如果她从这一列玫瑰中一个区间 [l,r] 中选取一些玫瑰(0 朵或更多),选出的这些玫瑰的美丽值的最大值是多少?

现在 Rosemoe 有 qqq 个询问,第 iii 个询问的区间为 [li​,ri​] ,对于每个询问,你需要求出上述问题的答案。各个询问是相互独立的。

输入描述

第一行一个整数 n(1≤n≤5×105),表示玫瑰的数量。第二行 n 个整数,第 i 个整数表示第 i 朵玫瑰的美丽贡献度 ai​ 。第三行一个整数 q(1≤q≤5×105),表示询问的数量。接下来 q 行,第 i 行有两个整数,分别为 li,ri​ 。数据保证 1≤li,ri≤n 。

输出描述

输出 q 行,每行一个整数。第 i 行的整数表示第 i 个询问的答案。

示例1

输入1

10
1 1 -4 5 14 19 -19 8 1 0
5
1 10
1 4
2 8
3 3
6 10

输出1

31
5
31
0
27

说明

对于第二个询问,我们可以选择第 1,4 朵玫瑰,答案为 5 .对于第四个询问,我们不从区间中选取玫瑰,答案为 0 .对于第五个询问,我们可以选择第 6,8,9 朵玫瑰,答案为 27 .

思路

按位或的性质,是负数时,会一直都是负数,根据贪心思想,区间[l,r]中不选负数,选所有的正数,可以转化为在读入数据的时候将负数变成0,此时只需要求出[l,r]区间的按位或即可,这里我用了ST表的思想维护区间按位或。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
int a[N];
int f[N][66];
int n,q;void rmq_init()  //建立O(nlogn)
{for (int i = 1; i <= n; i++)f[i][0] = a[i];int k = floor(log((double)n) / log(2.0));  // C/C++取整函数ceil()大,floor()小for (int j = 1; j <= k; j++)for (int i = n; i >= 1; i--) {if (i + (1 << (j - 1)) <=n)  // f(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)f[i][j] = (f[i][j - 1]|f[i + (1 << (j - 1))][j - 1]);}
}int rmq(int i, int j)  //查询
{int k = floor(log((double)(j - i + 1)) / log(2.0));return (f[i][k]|f[j - (1 << k) + 1][k]);
}signed main() {cin>>n;for (int i = 1; i <= n; i++) {cin>>a[i];if(a[i]<0) a[i]=0;}rmq_init();cin>>q;while(q--) {int l,r;cin>>l>>r;cout<<rmq(l,r)<<endl;}return 0;
}

D.计算平均学分绩点

题目描述

据武汉理工大学学生手册第五章第十六条所述,学生学习的努力程度,采用学年总学分数作为评价指标;学生学习的质量水平,采用平均学分绩点(GPA)作为评价指标。 

平均学分绩点的计算方式如下:

平均学分绩点=∑课程学分绩点×课程学分总学分​。

也就是,将所有课程获得的学分绩点,与该课程的学分数相乘,求得的总和除以所有课程的总学分数得到的结果,即为学生的平均学分绩点(GPA)。简要地,平均学分绩点等于所有课程的学分绩点,关于课程学分的加权平均数。

现有一名学生,已知其共修读了 nnn 门课程,其中第 iii 门课程的学分数为 aia_iai​,该生在此课程中获得的学分绩点为 bi​。请你设计一个程序,计算该生的平均学分绩点。

为避免由于浮点误差导致的答案错误,只要你输出的答案和标准答案的绝对或相对误差低于 10−410^{-4}10−4,即被认为是正确的。形式化地,如果你的答案是 x,而标准答案是 y,如果满足 ∣x−y∣max⁡(1,y)≤10−4,你的答案就会被判为正确。否则,你的答案将被判为错误。

输入描述

第一行一个整数 nnn (1≤n≤100),表示该学生所修读的课程总数。接下来 n 行,每行输入两个由空格隔开的实数 ai

​,bi​,分别表示一门课程的学分数和该生所获得的学分绩点。
 

输出描述

输出一行一个实数,表示该生的平均学分绩点。

示例1

输入1

3
5.50 4.46
1.00 3.23
2.50 3.49

输出1

4.0538888889

示例2

输入2

4
2.50 5.00
1.00 5.00
3.50 5.00
11.00 1.00

输出2

2.5555555556

备注

只要你输出的答案满足题目要求的精度限制即为正确答案,但是建议在输出的答案中至少保留 666 位小数。假设你所计算的的答案为浮点型变量 GPA,在 C 语言中可以使用如下代码输出 GPA 保留 666 位小数的结果:printf("%.6f",GPA);在 C++ 中可以使用如下代码输出 GPA 保留 666 位小数的结果:std::cout << std::fixed << std::setprecision(6) << GPA << std::endl;在 python 中可以使用如下代码输出 GPA 保留 666 位小数的结果:print("{:.6f}".format(GPA))在 Java 中可以使用如下代码输出 GPA 保留 666 位小数的结果:System.out.println(String.format("%.6f",GPA));

 代码

#include<bits/stdc++.h>
using namespace std;
const int N=110;
int n;
double a[N],b[N];
double a1,a2;
signed main() {cin>>n;for(int i=0;i<n;i++) {cin>>a[i]>>b[i];a1+=a[i];a2+=a[i]*b[i];}double ans=a2/a1;printf("%.10lf",ans);return 0;
}

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

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

相关文章

数据结构:AVLTree的插入和删除的实现

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》 文章目录 前言一、AVLTree二、AVLTree的插入插入新增节点调整平衡因子旋转左单旋(新增节点位于较高右子树的右侧)右单旋(新增节点位于较高左子树的左侧)右左双旋(新增节点在较高右子树的左子…

golang 2018,go 1.19安装Gin

GOPROXYhttps://mirrors.aliyun.com/goproxy/ 一致提示URL不能有点&#xff0c;给我整郁闷了&#xff0c;换了这个地址好了 但是一致提示zip的包问题&#xff0c;最后还是不行又换回七牛 NEWBEE&#xff01; [GIN-debug] Environment variable PORT is undefined. Using por…

Django中如何创建表关系,请求生命周期流程图

Django中ORM创建表关系 如何创建表关系(一对一 &#xff0c; 一对多 &#xff0c; 多对多) 图书表&#xff0c;出版社表&#xff0c;作者表&#xff0c;作者详情表 换位思考法判断表关系 图书表和出版社表 >>> 一对多 >>> 图书表是多&#xff0c;出…

深入了解SpringMvc接收数据

目录 一、访问路径&#xff08;RequestMapping&#xff09; 1.1 访问路径注解作用域 1.2 路径精准&#xff08;模糊&#xff09;匹配 1.3 访问路径限制请求方式 1.4 进阶访问路径请求注解 1.5 与WebServlet的区别 二、接收请求数据 2.1 请求param参数 2.2 请求路径参数 2.3 请求…

消息中心常见解决方案分享

解决方案 1、问题2、设计3、流程 看了大部分的消息中心解决方案&#xff0c;发现大家的中心思想都大差不差&#xff0c;区别基本都是在符合自身业务场景的做了一些定制化处理。本文为我对消息中心基本骨架的知识梳理&#xff0c;亦在帮助大家对消息中心设计有一个基本的理解。 …

【Python】AppUI自动化—appium自动化开发环境部署、APP测试案例(17)上

文章目录 一.appium简介1.什么是appium2.appium 的工作原理3.APP类型4.APP页面布局 二,appium开发环境部署&#xff08;python环境&#xff09;1.下载安装环境1.1.下载安装所需环境1.2.Appium-desktop&#xff08; Appium-Server-GUI &#xff09;配置1.3.Appium-Inspector 配置…

ablation study

文章目录 ablation study1、消融实验思想是什么&#xff1f;2、消融实验意义3、消融实验应用场景举例 ablation study 1、消融实验思想是什么&#xff1f; “消融实验”&#xff08;ablation study&#xff09;通常指的是通过逐步移除系统的一部分来评估该系统的贡献。这种方法…

GIS入门,xyz地图瓦片是什么,xyz数据格式详解,如何发布离线XYZ瓦片到nginx或者tomcat中

XYZ介绍 XYZ瓦片是一种在线地图数据格式,由goole公司开发。 与其他瓦片地图类似,XYZ瓦片将地图数据分解为一系列小的图像块,以提高地图显示效率和性能。 XYZ瓦片提供了一种开放的地图平台,使开发者可以轻松地将地图集成到自己的应用程序中。同时,它还提供了高分辨率图像和…

ChatGPT 4 分析天猫双十一历年成交额趋势情况

收集历年的双十一成交额数据如下: 年份成交额:亿元20090.520109.362011

【Java】定时任务 - Timer/TimerTask 源码原理解析

一、背景及使用 日常实现各种服务端系统时&#xff0c;我们一定会有一些定时任务的需求。比如会议提前半小时自动提醒&#xff0c;异步任务定时/周期执行等。那么如何去实现这样的一个定时任务系统呢&#xff1f; Java JDK提供的Timer类就是一个很好的工具&#xff0c;通过简单…

01:2440----点灯大师

目录 一:点亮一个LED 1:原理图 2:寄存器 3:2440的框架和启动过程 A:框架 B:启动过程 4:代码 5:ARM知识补充 6:c语言和汇编的应用 A:代码 B:分析汇编语言 C:内存空间 7:内部机制 二:点亮2个灯 三:流水灯 四:按键控制LED 1:原理图 2:寄存器配置 3:代码 一:点…

汽车操纵稳定性matlab仿真

1、内容简介 略 14-可以交流、咨询、答疑 2、内容说明 汽车操纵稳定性matlab仿真&#xff0c;包含完整的论文 操纵动力学、两自由度 摘要&#xff1a;当今&#xff0c;仿真技术日益广泛地应用于汽车工程领域&#xff0c;操纵稳定性研究越来越多地使用成熟的计算机仿真理论…

MongoDB基础知识~

引入MongoDB&#xff1a; 在面对高并发&#xff0c;高效率存储和访问&#xff0c;高扩展性和高可用性等的需求下&#xff0c;我们之前所学习过的关系型数据库(MySql,sql server…)显得有点力不从心&#xff0c;而这些需求在我们的生活中也是随处可见的&#xff0c;例如在社交中…

高防CDN:护航网络安全的卓越之选

在当今数字化时代&#xff0c;网络攻击与日俱增&#xff0c;为了确保网站和应用程序的稳定运行&#xff0c;高防CDN&#xff08;高防御内容分发网络&#xff09;应运而生。选择高防CDN的理由不仅源于其强大的防护性能&#xff0c;还体现了其与硬件防火墙异曲同工的奥妙。 选择高…

【蓝桥杯软件赛 零基础备赛20周】第3周——填空题

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 文章目录 00. 2023年第14届参赛数据0. 上一周答疑1. 填空…

进亦忧,退亦忧,Github Copilot 集成进入 Visual Studio 带来的思考

开篇想到《岳阳楼记》的结尾&#xff1a; 不以物喜&#xff0c;不以己悲&#xff1b;居庙堂之高则忧其民&#xff1b;处江湖之远则忧其君。是进亦忧&#xff0c;退亦忧。然则何时而乐耶&#xff1f;其必曰&#xff1a;“先天下之忧而忧&#xff0c;后天下之乐而乐”乎。未来30…

【信息安全原理】——传输层安全(学习笔记)

&#x1f4d6; 前言&#xff1a;为保证网络应用&#xff0c;特别是应用广泛的Web应用数据传输的安全性&#xff08;机密性、完整性和真实性&#xff09;&#xff0c;可以在多个网络层次上采取安全措施。本篇主要介绍传输层提供应用数据安全传输服务的协议&#xff0c;包括&…

python异常、模块与包

1.异常 异常&#xff1a;当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”&#xff0c;也就是我们常说的BUG。 1.1捕获异常 基本语法&#xff1a; try:可能发生错误代码 except:如果出现…

数据分析实战 | SVM算法——病例自动诊断分析

目录 一、数据分析及对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型应用及评价 一、数据分析及对象 CSV文件——“bc_data.csv” 数据集链接&#xff1a;https://download.csdn.net/download/m0_70452407/88…

阿里云国际站:全球加速GA

文章目录 一、前言 二、阿里云全球加速的概念 三、阿里云全球加速的功能优势 四、阿里云全球加速的原理 五、阿里云全球加速的应用场景 六、写在最后 一、前言 随着互联网的快速发展&#xff0c;网站速度已经成为了用户访问体验的一个重要指标。阿里云加速作为一种新的技…