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

A

跳一跳

//比赛中可以直接用万能头文件
#include<iostream>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
//开longlong防止爆掉int,int范围2e9,longlong范围9e18
#define int long long //(有超时风险)
//简写,如果要改动PII,直接该这个就行了,vector常用
#define PII pair<int,int>
//#define x first
//#define y secondusing namespace std;//需要改动数组直接改动N,M即可
const int N=2e5+10,M=1e3+10;
int sum=0;
int w[N],q[N],t[M];
int a,b,c;signed main()
{//关掉流同步,cin变快,但是不能用scanf,可以用printf;std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);for(int i=1;i<=30;i++)cin>>w[i];for(int i=1;i<=30;i++){if(w[i]==0)break;else if(w[i]==1&&w[i+1]==2)w[i+1]=2;else if(w[i]>=2&&w[i+1]==2)w[i+1]=w[i]+2;else if(w[i-1]>=2&&w[i]==2&&w[i+1]==1)w[i]=w[i-1]+2;}for(int i=1;i<=30;i++){if(w[i]==0)break;else sum+=w[i];//else cout<<w[i]<<" ";}cout<<sum;return 0;
}

B

碰撞的小球

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 110;int n,L,T;
struct Ball
{int p,v;//位置,速度
}b[N];int main()
{cin>>n>>L>>T;for(int i=0;i<n;i++){cin>>b[i].p;b[i].v=1;}while(T--){for(int i=0;i<n;i++){b[i].p+=b[i].v;if(b[i].p==L||!b[i].p)b[i].v*=-1;}for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(b[i].p==b[j].p){b[i].v*=-1;b[j].v*=-1;}}}}for(int i=0;i<n;i++)cout<<b[i].p<<" ";return 0;
}
//向右的速度是1,那么向左的速度就是-1,每次位置的变化等于位置加速度
//写两个循环,暴力枚举

C

#include<iostream>
#include<cstring>
#include<vector>using namespace std;const int N = 110;struct Url
{string path;string name;
}url[N];//使用结构体进行存储规则中的路径与名称int n, m;string check_num(string &str)//检查测试用例中的参数中是否为数字类型
{string res;//若参数为数字类型,则返回数字字符串;否则返回长度为0的字符串for(int i = 0; i < str.size(); i ++){if(str[i] >= '0' && str[i] <= '9')//如果是数字,则将数字加入到res中{res += str[i];}else//否则,清空res(返回空字符串){res.clear();return res;}}int k = 0;//去掉前导0while(k + 1 < res.size() && res[k] == '0') k ++;//从k + 1开始枚举,避免只有一位0但是被删除的特例return res.substr(k);//从第k个字符开始取字符串
}vector<string> get(string &path, string &str)//测试用例str与规则path进行匹配
{vector<string> res(1);//初始化匹配结果(默认长度为1)如果长度为0,则说明匹配失败;否则返回测试用例的参数int i, j;for(i = 1, j = 1; i < path.size() && j < str.size();)//使用双指针算法,分别寻找测试用例str与规则path中,被/分割的字符串{int u = i + 1, v = j + 1;//从输入第二个字符开始寻找(输入的第一个字符全部为/,没有意义)while(u < path.size() && path[u] != '/') u ++;//寻找下一个/的下标,用来寻找测试用例以及规则中的参数while(v < str.size() && str[v] != '/') v ++;//substr(int start, int length) 返回从第start个字符开始,长度为length的子字符串//在本题中,起始时i为参数的第一个下标,从小到大开始寻找从i最近的/的前一个下标u. 下标[i, u]就表示当前参数的标识string a = path.substr(i, u - i), b = str.substr(j, v - j);//使用substr函数取出/string/if(a == "<str>")//如果规则中当前的参数为<str>{res.push_back(b);//则直接将测试用例的参数加入到res中i = u + 1, j = v + 1;//开始定位下一个参数的开头(u为/的下标,所以要从 u + 1开始进行下一次匹配)以下同理}else if(a == "<int>")//如果规则中当前的参数为<int>{auto t = check_num(b);//将测试用例的参数b判断是否为数字if(!t.empty())//如果是数字(返回字符串不为空){res.push_back(t);//将去掉前导0的字符加入匹配结果中i = u + 1, j = v + 1;}else{res.clear();//否则匹配失败,清空字符串return res;}}else if(a == "<path>")//如果规则中当前的参数为<path>{res.push_back(str.substr(j));//则将剩余的字符串全部加入到参数序列中return res;//path后直接结束}else if(a != b)//规则匹配完毕,开始数据进行匹配;如果不等,则匹配失败{res.clear();//返回空字符串return res;}else i = u + 1, j = v + 1;//普通字符串不是参数,不用存,比如说articles就不用存}//对于最后一位有没有/的特殊条件也要作为一个特殊判断//如果测试用例和规则的结尾都没有/时,那么i能取到path.size() + 1//(因为在之前的匹配中,我们总能寻找到最后一个/的下标u,如果最后没有/,则说明u能取到path.size(),这样i在加上1就等于path.size() + 1//如果测试用例和规则的结尾都有/时,那么i能取到path.size()//(因为u只能返回/的前一个字符下标,i = u + 1时 i正好表示规则字符的长度)if(i - path.size() != j - str.size()) res.clear();//所以只需要判断i - path.size() 与 j - str.size()是否相等,就能判断在结尾是否都有或都没有/return res;
}void work(string &str)//返回匹配测试用例与所有规则进行匹配的结果
{for(int i = 0; i < n; i ++){auto res = get(url[i].path, str);//将规则与测试用例进行匹配,返回测试用例中传入的参数//get函数()返回匹配后参数的个数.如果匹配不成功,返回0个数据();如果匹配成功,但测试用例中的参数为0,则返回一个长度为1的默认参数//如果匹配成功并且传入的参数不为空,则返回传入的参数(第一个返回值为默认值,后面的值才是实际传入的参数)if(res.size())//如果匹配成功{cout << url[i].name;//首先输出规则的名称for(int j = 1; j < res.size(); j ++){cout << ' ' << res[j];//之后遍历所有测试用例的参数}cout << endl;return ;}}puts("404");//如果不匹配,则返回404
}int main()
{cin >> n >> m;for(int i = 0; i < n; i ++)//读入所有规则{cin >> url[i].path >> url[i].name;}for(int i = 0; i < m; i ++)//将测试用例读入{string test;cin >> test;work(test);//处理询问}return 0;
}

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

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

相关文章

苹果手机+AI手机概念股名单一览表

苹果智能将成为AI手机引领者&#xff0c;推动原生智能加速渗透&#xff0c;据Canlys预计2025年iOS操作系统将占据全球AI手机出货的55%。 AI手机端侧算力提升&#xff0c;将带动产业链部件升级创新 端侧算力提升或带动手机芯片及零部件升级&#xff0c;如 1&#xff09;SoC芯片&…

《廖雪峰Java教程》——Java快速入门

参考资料&#xff1a; Java快速入门 - 廖雪峰的官方网站 (liaoxuefeng.com) Java简介 Java 介于编译型语言和解释型语言之间。Java 是将代码编译成一种“字节码”&#xff0c;然后&#xff0c;针对不同平台编写虚拟机&#xff0c;不同平台的虚拟机负责加载字节码并执行&…

无人机智能追踪反制系统技术详解

随着无人机技术的飞速发展&#xff0c;无人机在各个领域的应用越来越广泛。然而&#xff0c;无人机的无序飞行和非法使用也带来了一系列安全隐患和威胁。因此&#xff0c;无人机智能追踪反制系统应运而生&#xff0c;成为维护公共安全和防止无人机滥用的重要工具。本文将详细介…

Java Lambda语法介绍

目录 一、概述 二、Lambda语法的历史 2.1 Lambda名字的含义 2.2 Lambda的历史 三、Lambda语法的核心接口 3.1 Lambda的四大核心接口 3.1.1 概述 3.1.2 Consumer 接口 3.1.3 Supplier 接口 3.1.4 Function 接口,> 3.1.5 Predicate 接口 四、Lambda的引用 4.1 概…

python脚本获取深度相机的内参矩阵depth_intrinsics和color_intrinsics

注意将代码中的分辨率改为自己项目中的分辨率 pip3 install pyrealsense2 import pyrealsense2 as rsdef print_intrinsics(stream_profile):"""打印给定流的内参"""intrinsics stream_profile.as_video_stream_profile().get_intrinsics()pri…

2024hw 蓝队面试题合集

2024hw 蓝队面试题合集 2024hw 蓝队面试题合集面试题及答案使用过哪些设备,出现误报怎么办?安全设备会出现误报的原因有哪些?安全设备出现误报后,如何辨别真实威胁并采取有效措施?如何在 hw 中分析webshell 流量特征请讲一下应急响应流程溯源有哪些思路怎么防范邮件钓鱼针…

第7天:面向对象编程(OOP)

学习目标 理解面向对象编程的基本概念掌握类和对象的定义和使用学习属性和方法的定义和使用理解继承和多态的概念学习类的特殊方法 学习内容 1. 面向对象编程基本概念 面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;使用“对象”来设计应用程序和计算…

云海中的坚固灯塔:等保测评视角下的混合云安全策略与合规性深度剖析

在数字化浪潮的推动下&#xff0c;混合云架构以其独特的优势成为企业转型升级的得力助手。然而&#xff0c;随着数据资产向云端迁移&#xff0c;安全风险与合规挑战亦如影随形&#xff0c;成为企业前行的绊脚石。等保测评作为我国网络安全的一道坚实屏障&#xff0c;对于护航云…

编程高手的必备技能:C语言函数库构建——模块化编程,提升代码重用性

1.引言 在编程的世界里&#xff0c;C语言以其高效、灵活的特点&#xff0c;一直以来都备受编程高手的青睐。然而&#xff0c;随着软件规模的不断扩大&#xff0c;如何提高代码的可维护性、可读性和重用性&#xff0c;成为了摆在程序员面前的一大挑战。本文将深入探讨C语言函数…

化妆品安全问答:个人护理产品| FDA

「个人护理品」是否都作为化妆品监管&#xff1f;是一些药物还是「药妆」&#xff1f; 人们经常使用“个人护理产品”这个术语来指代我们在药店和百货商店的健康和美容部门常见的各种各样的物品。根据法律规定&#xff0c;这些产品可能属于许多不同的类别。 用于清洁或美容的…

Gartner发布软件供应链安全指南:软件供应链攻击造成的损失将从 2023 年的460亿美元上升到2031年的1380亿美元

软件供应链安全是一个关键的风险和合规性问题&#xff0c;但大多数组织都以分散的方式处理它。缺乏一个包罗万象的框架会遗留安全漏洞。通过实施三支柱框架&#xff0c;安全和风险管理领导者可以确保广泛的保护。 主要发现 对软件供应链的攻击给组织带来重大的安全、监管和运营…

【深度学习】pytorch训练中的一个大坑

使用的命令&#xff1a;iostat -x 5 可以看到 ssd的利用率已经满了。 之前在的数据集放在了 hdd上&#xff0c;训练结果特别慢。 所以我把它移动到了ssd上&#xff0c;然后训练参数用的 resume&#xff0c; 但是&#xff01;&#xff01;&#xff01;&#xff01;它把历史记住…

【C语言】19.预处理详解

文章目录 1.预定义符号2.#define定义常量3.#define定义宏4.带有副作用的宏参数5.宏替换的规则6.宏函数的对比7.#和##7.1 #运算符7.2 ## 运算符 8.命名约定9.#undef10.命令行定义11.条件编译12.头文件的包含12.1 头⽂件被包含的⽅式12.1.1 本地⽂件包含12.1.2 库⽂件包含 12.2 嵌…

学懂C#编程:常用高级技术——学会C#的高级特性 反射

反射&#xff08;Reflection&#xff09;是C#中的一项高级特性&#xff0c;它允许程序在运行时检查和操作程序集、模块、类型等元数据信息。通过反射&#xff0c;你可以在不知道类型信息的情况下&#xff0c;动态地创建对象、调用方法、访问属性等。 反射的基本概念 反射的核…

甲骨文首次将LLMs引入数据库,集成Llama 3和Mistral,和数据库高效对话

信息时代&#xff0c;数据为王。数据库作为数据存储&管理的一种方式&#xff0c;正在以势不可挡的趋势与AI结合。 前有OpenAI 收购了数据库初创公司 Rockset&#xff0c;引发广泛关注&#xff1b;Oracle公司&#xff08;甲骨文&#xff09;作为全球最大的信息管理软件及服…

农学VR虚拟仿真情景实训教学

在农学课堂上&#xff0c;VR虚拟仿真情景的应用正逐渐成为一种创新的教学方式。 随着科技的飞速发展&#xff0c;VR技术以其沉浸式体验特点&#xff0c;让学生仿佛置身于另一个世界。在农学课堂上&#xff0c;通过VR技术&#xff0c;学生可以身临其境地感受农田的广袤&#xf…

ArtTS系统能力-窗口管理的学习(3.2)

上篇回顾&#xff1a; ArtTS系统能力-通知的学习&#xff08;3.1&#xff09; 本篇内容&#xff1a; ArtTS系统能力-窗口管理的学习&#xff08;3.2&#xff09; 一、 知识储备 1. 基本概念 窗口渲染式能力&#xff1a;指对状态栏、导航栏等系统窗口进行控制&#xff0c;减…

计算机硬件(考点篇)试题

波特率&#xff1a; 在电子通信领域&#xff0c;波特&#xff08;Baud&#xff09;即调制速率&#xff0c;指的是有效数据讯号调制载波的速率&#xff0c;即单位时间内载波调制状态变化的次数。波特&#xff08;Baud&#xff0c;单位符号&#xff1a;Bd&#xff09;。 波特率…

PHP景区旅游多商户版微信小程序系统源码

解锁景区新玩法&#xff01;​ 引言&#xff1a;一站式旅行新体验 厌倦了传统景区的单调游览&#xff1f;想要一次旅行就能体验多种风情&#xff1f;那么&#xff0c;“景区旅游多商户版”绝对是你的不二之选&#xff01;这个创新模式将景区内多个商户资源整合&#xff0c;为…

【MySQL备份】Percona XtraBackup增量备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.增量备份 3.1.第一步&#xff1a;全量备份 3.2.第二步&#xff1a;增量备份 3.3.第三步&#xff1a;再次增量备份 4.准备备份 4.1.准备全量备…