第十六次CCF计算机软件能力认证

第一题:小中大

在数据分析中,最小值最大值以及中位数是常用的统计信息。

老师给了你 n 个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据。

请统计出这组测量数据中的最大值、中位数以及最小值,并按照从大到小的顺序输出这三个数。

输入格式

第一行输入一个整数 n。

第二行中存在 n 个有序的整数,表示测量数据,可能为升序或降序排列,可能存在连续多个整数相等,整数与整数之间使用空格隔开。

输出格式

包含一行,包括最大值、中位数以及最小值共三个数,并按照从大到小的顺序输出。

数据与数据之间使用空格隔开。

对于整数请直接输出整数,对于可能出现的分数,请输出四舍五入保留 1 位小数的结果。

数据范围

测试点n测量数据的绝对值测量数据是否均相同
1,2≤1e3≤1e7
3,4,5,6≤1e3≤1e7
7,8≤1e5≤1e7
9∼20≤1e5≤1e7

输入样例1:

3
-1 2 4

输出样例1:

4 2 -1

样例1解释

4 为最大值,2 为中位数,−1 为最小值。

输入样例2:

4
-2 -1 3 4

输出样例2:

4 1 -2

样例2解释

4 为最大值,(−1+3)÷2=1 为中位数,−2 为最小值。

#include<iostream>using namespace std;const int N = 1e5 + 10;
int n;
int a[N];
int _max = -0x3f3f3f3f , _min = 0x3f3f3f3f;int main()
{cin >> n;for(int i = 0;i < n;i ++) cin >> a[i] , _max = max(_max , a[i]) , _min = min(_min , a[i]);double x = 0;if(n & 1) x = a[n / 2];else x = (a[n / 2] + a[n / 2 - 1]) * 1.0 / 2;if((int)x == x)printf("%d %d %d" , _max , (int)x , _min);else printf("%d %.1lf %d" ,_max , x , _min);return 0;
}

 

n = int(input())
l = list(map(int , input().split()))
x = 0
if n & 1:x = l[n // 2]
else:x = (l[n // 2 - 1] + l[n // 2]) / 2
print(max(l) , end = ' ')
if int(x) == x:print(int(x) , end = ' ')
else:print("%.1lf" %(x) , end = ' ')
print(min(l))

第二题:二十四点

二十四点是一款著名的纸牌游戏,其游戏的目标是使用 3 个加减乘除运算使得 4 张纸牌上数字的运算结果为 24。

定义每一个游戏由 4 个从 1−9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。

其中加法用符号 + 表示,减法用符号 - 表示,乘法用小写字母 x 表示,除法用符号 / 表示。

在游戏里除法为整除(向下取整),例如 2/3=0,3/2=1,4/2=2,−3/7=−1。

老师给了你 n 个游戏的解,请你编写程序验证每个游戏的结果是否为 24。

输入格式

第一行输入一个整数 n。

从第 2 行开始到第 n+1 行中,每一行包含一个长度为 7 的字符串,为上述的 24 点游戏,保证数据格式合法。

输出格式

包含 n 行,对于每一个游戏,如果其结果为 24 则输出字符串 Yes,否则输出字符串 No

数据范围

 QQ截图20210222104224.png

 

QQ截图20210222104224.png

输入样例:

10
9+3+4x3
5+4x5x5
7-9-9+8
5x6/5x4
3+5+7+9
1x1+9-9
1x9-5/9
8/5+6x9
6x7-3x6
6x4+4/5

输出样例:

Yes
No
No
Yes
Yes
No
No
No
Yes
Yes

样例解释

9+3+4×3=24
5+4×5×5=105
7-9-9+8=-3
5×6/5×4=24
3+5+7+9=24
1×1+9-9=1
1×9-5/9=9
8/5+6×9=55
6×7-3×6=24
6×4+4/5=24

 

解题思路: 

使用python的eval函数进行求解

for _ in range(int(input())):s = input()s = s.replace("x" , "*")s = s.replace("/" , "//")if eval(s) == 24:print("Yes")else:print("No")

第三题:损坏的RAID5(这一次的最难的)

大模拟

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef unsigned int UI;
const int N = 1010, M = 40 * 1024 * 8 + 10;int n, s, l;
UI disk[N][M / 8];
bool st[N];
char str[M];
int len;inline UI get(char c)
{if (c <= '9') return c - '0';return c - 'A' + 10;
}inline char get(UI x)
{if (x <= 9) return x + '0';return x - 10 + 'A';
}inline string u2s(UI x)
{string res;for (int i = 7; i >= 0; i -- )res += get(x >> (i << 2) & 15);return res;
}inline int get_real_col(int r, int c)
{r %= n;r = n - 1 - r;return (r + 1 + c) % n;
}int main()
{scanf("%d%d%d", &n, &s, &l);for (int u = 0; u < l; u ++ ){int k;scanf("%d", &k);getchar();fgets(str, M, stdin);int sz = strlen(str) - 1;for (int i = 0; i < sz; i += 8){UI x = 0;for (int j = 0; j < 8; j ++ )x = (x << 4) + get(str[i + j]);disk[k][i >> 3] = x;}st[k] = true;len = max(len, sz >> 3);}int m;scanf("%d", &m);while (m -- ){int b;scanf("%d", &b);if (b >= len * (n - 1)) puts("-");else{int k = b / s;int row = k / (n - 1), col = get_real_col(row, k % (n - 1));int r = row * s + b % s;if (st[col])puts(u2s(disk[col][r]).c_str());else if (l == n - 1){UI x = 0;for (int i = 0; i < n; i ++ ) x ^= disk[i][r];puts(u2s(x).c_str());}else puts("-");}}return 0;
}。

第四题:消息传递接口

解题思路:使用队列进行模拟,信息传递接口

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <sstream>using namespace std;const int N = 10010;int n;
struct Op
{// 0代表S 1代表R -1代表等待int p, id;
};
queue<Op> q[N];
bool st[N];// 判断该进程是否在等待// 功能: PD pid进程当前指令能否执行完毕, 目前pid执行到{!type, oid}, 即期望对方是type
bool dfs(int p, int id, int pid)
{// 若等待的对方也在等待,则死锁if (st[id]) return false;st[id] = true;// 对方进入等待队列while (q[id].size()){auto t = q[id].front();// 如果对方等的那个刚刚好是自己,且刚刚好是自己所期待的if (t.p == p && t.id == pid){st[id] = false;q[id].pop();return true;}// PD 对方当前指令能否完成else if (dfs(t.p ^ 1, t.id, id)) q[id].pop();else return false;}st[id] = false;return p == -1;
}int main()
{int T;cin >> T >> n;getchar();while (T -- ){string str;for (int i = 0; i < n; i ++ ){st[i] = false;q[i] = queue<Op>();getline(cin, str);stringstream ssin(str);while (ssin >> str)if (str[0] == 'S') q[i].push({0, stoi(str.substr(1))});else q[i].push({1, stoi(str.substr(1))});}// 添加一个-1进程,等待所有0~n-1进程执行完bool success = true;for (int i = 0; i < n; i ++ )if (!dfs(-1, i, -1)){success = false;break;}if (success) puts("0");else puts("1");}return 0;
}

第五题:317号子问题

经典的图论问题(SPFA 或 迪杰斯特拉)

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>using namespace std;
const int N = 1e4 + 10 , M = 2e5 + 10 , INF = 0x3f3f3f3f;
typedef pair<int , int>PII;
int h[M] , ne[M] , w[M] , e[M] , idx;void add(int a , int b , int c)
{e[idx] = b , w[idx] = c , ne[idx] = h[a] , h[a] = idx ++;
}
int solor[N];
int n , m , k;
bool st[N];
int dist[N] , cnt = 0;
int d[N][1010];void dij(int s)
{memset(dist , 0x3f , sizeof dist);memset(st , 0 , sizeof st);dist[s] = 0;priority_queue<PII , vector<PII> , greater<PII>>q;q.push({0 , s});while(!q.empty()){auto t = q.top();q.pop();int x = t.second;if(st[x]) continue;st[x] = true;for(int i = h[x];~i;i = ne[i]){int j = e[i];if(dist[j] > dist[x] + w[i]){dist[j] = dist[x] + w[i];q.push({dist[j] , j});}}}for (int i = 1; i <= n; i ++ ) d[i][cnt] = dist[i];
}void spfa(int start)
{int hh = 0, tt = 1;memset(dist, 0x3f, sizeof dist);int q[N];q[0] = start, dist[start] = 0;while (hh != tt){int t = q[hh ++ ];if (hh == N) hh = 0;st[t] = false;for (int i = h[t]; ~i; i = ne[i]){int j = e[i];if (dist[j] > dist[t] + w[i]){dist[j] = dist[t] + w[i];if (!st[j]){q[tt ++ ] = j;if (tt == N) tt = 0;st[j] = true;}}}}for (int i = 1; i <= n; i ++ ) d[i][cnt] = dist[i];
}int main()
{memset(h , -1 , sizeof h);scanf("%d %d %d" ,&n ,&m ,&k);for(int i = 1;i <= n;i ++)scanf("%d" ,&solor[i]);while(m --){int a , b , c;scanf("%d %d %d" ,&a ,&b ,&c);add(a , b , c) , add(b , a , c);}for(int i = 1;i <= n;i ++)if(solor[i]){// dij(i);spfa(i);cnt ++;}for(int i = 1;i <= n;i ++){sort(d[i] , d[i] + cnt);int res = 0;for(int j = 0;j < cnt && j < k;j ++)if(d[i][j] != INF) res += d[i][j];else break;printf("%d\n" , res);}return 0;
}

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

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

相关文章

使用HTTP隧道时如何应对目标网站的反爬虫监测?

在进行网络抓取时&#xff0c;我们常常会遇到目标网站对反爬虫的监测和封禁。为了规避这些风险&#xff0c;使用代理IP成为一种常见的方法。然而&#xff0c;如何应对目标网站的反爬虫监测&#xff0c;既能保证数据的稳定性&#xff0c;又能确保抓取过程的安全性呢&#xff1f;…

【计算机网络】TCP协议超详细讲解

文章目录 1. TCP简介2. TCP和UDP的区别3. TCP的报文格式4. 确认应答机制5. 超时重传6. 三次握手7. 为什么两次握手不行?8. 四次挥手9. 滑动窗口10. 流量控制11. 拥塞控制12. 延时应答13. 捎带应答14. 面向字节流15. TCP的连接异常处理 1. TCP简介 TCP协议广泛应用于可靠性要求…

Fortinet安全专家问答实录|如何防护暴力破解、撞库攻击

黑客攻防&#xff0c;一个看似神秘&#xff0c;但却必不可缺的领域。近期&#xff0c;全球网络与安全融合领域领导者Fortinet&#xff08;Nasdaq&#xff1a;FTNT&#xff09;&#xff0c;开启了Fortinet DEMO DAY系列实战攻防演练线上直播&#xff0c;让人人都能零距离观摩黑客…

关于ETL的两种架构(ETL架构和ELT架构) qt

&#xfeff;ETL&#xff0c;是英文 Extract-Transform-Load 的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xf…

【flink】使用flink-web-ui提交作业报错

使用WebUI提交作业出现错误。 错误截图&#xff1a; 弹框信息&#xff1a; Server Response Message: org.apache.flink.runtime.rest.handler.RestHandlerException: Could not execute application.at org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$h…

数据链路层概述

数据传输过程如下&#xff1a; 数据包按上述过程传输&#xff0c;详见&#xff08;计算机网络概述三&#xff09;。在分析数据链路层时可以假象成其沿着水平传播。 这三段链路层的传播方式可能会有所不同。 基本概念&#xff1a; 链路&#xff1a;指一个节点到相邻节点的一段物…

用于视觉跟踪的在线特征选择研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

HBase-组成

client 读写请求HMaster 管理元数据监控region是否需要进行负载均衡&#xff0c;故障转移和region的拆分RegionServer 负责数据cell的处理&#xff0c;例如写入数据put&#xff0c;查询数据get等 拆分合并Region的实际执行者&#xff0c;由Master监控&#xff0c;由regionServ…

C#实现旋转图片验证码

开发环境&#xff1a;C#&#xff0c;VS2019&#xff0c;.NET Core 3.1&#xff0c;ASP.NET Core 1、建立一个验证码控制器 新建两个方法Create和Check&#xff0c;Create用于创建验证码&#xff08;返回1张图片和令牌&#xff09;&#xff0c;Check用于验证&#xff08;验证图…

Qt应用开发(基础篇)——LCD数值类 QLCDNumber

一、前言 QLCDNumber类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt的一个基础小部件。 QLCDNumber用来显示一个带有类似lcd数字的数字&#xff0c;适用于信号灯、跑步机、体温计、时钟、电表、水表、血压计等仪器类产品的数值显示。 QLCDNumber可以显示十进制…

【RabbitMQ】golang客户端教程3——发布订阅(使用fanout交换器)

发布订阅 在上一个教程中&#xff0c;我们创建了一个工作队列。工作队列背后的假设是每个任务只传递给一个工人。在这一部分中&#xff0c;我们将做一些完全不同的事情——我们将向多个消费者传递一个消息。这就是所谓的“订阅/发布模式”。 为了说明这种模式&#xff0c;我们…

cloudstack management高可用

一、环境说明 CPU&#xff1a; kunpeng 920 操作系统&#xff1a;OpenEuler 22.03 IP角色192.168.157.20mysql192.168.157.21management-server 1192.168.157.22management-server 2192.168.157.30nginx 二、部署 基础环境准备参考【cloudstack测试环境搭建】 1、部署mysql&…

若依管理系统后端将 Mybatis 升级为 Mybatis-Plus

文章目录 说明流程增加依赖修改配置文件注释掉MybatisConfig里面的Bean 代码生成使用IDEA生成代码注意 Controller文件 说明 若依管理系统是一个非常完善的管理系统模板&#xff0c;里面含有代码生成的方法&#xff0c;可以帮助用户快速进行开发&#xff0c;但是项目使用的是m…

linux手动安装 golangci-lint-1.53.3-linux-386.rpm

首先还是 去下载对应的 rpm 包 https://github.com/golangci/golangci-lint/releases 然后上传到 服务器/usr/local 目录下 执行安装命令 sudo rpm -ivh golangci-lint-1.53.3-linux-386.rpm 查看版本 golangci-lint --version

一周 AIGC 丨苹果下架多款 AIGC 应用,阿里云开源通义千问 70 亿参数模型

多个 AIGC 应用在苹果应用商店下架&#xff0c;包含数据采集和使用不够规范等问题。阿里云开源通义千问 70 亿参数模型&#xff0c;包括通用模型 Qwen-7 B 和对话模型 Qwen-7 B-Chat。腾讯混元大模型开始应用内测&#xff0c;内部多个业务线接入测试。百度智能云“千帆大模型平…

Azure通过自动化账户实现对资源变更

Azure通过自动化账户实现对资源变更 创建一个自动化账户第一种方式 添加凭据&#xff08;有更改资源权限的账户&#xff0c;没有auth认证情况&#xff09;创建一个Runbook&#xff0c;测试修改 AnalysisServices 定价层设置定时任务&#xff1a;开始定时任务&#xff1a; 第二种…

Python爬虫(八)_Requests的使用

Requests&#xff1a;让HTTP服务人类 虽然Python的标准库中urllib2模块中已经包含了平常我们使用的大多数功能&#xff0c;但是它的API使用起来让人感觉不太好&#xff0c;而Requests自称"HTTP for Humans"&#xff0c;说明使用更简单方便。 Requests唯一的一个非转…

【移动机器人运动规划】03 —— 基于运动学、动力学约束的路径规划

文章目录 前言相关代码整理:相关文章&#xff1a; 介绍什么是kinodynamic&#xff1f;为什么需要kinodynamic&#xff1f;模型示例unicycle model&#xff08;独轮车模型&#xff09;differential model&#xff08;两轮差速模型&#xff09;Simplified car model (简化车辆模型…

【技巧】如何保护PowerPoint不被改动?

PPT&#xff0c;也就是PowerPoint&#xff0c;是很多小伙伴在工作生活中经常用到的图形演示文稿软件。 做好PPT后&#xff0c;担心自己不小心改动了或者不想他人随意更改&#xff0c;我们可以如何保护PPT呢&#xff1f;下面小编就来分享两个常用的方法&#xff1a; 1. 将PPT改…

win10笔记本显示器根据页面显示亮度自动调节亮度的问题

系统是win10企业版&#xff0c;针对这个问题查了很多种方法&#xff0c;比如&#xff1a; 1、控制面板->硬件和声音->电源选项->点击当前电源计划的更改计划设置->更改高级电源设置->显示->启用自适应亮度 但是我发现我的电源计划只有平衡这一种&#xff0c…