当前位置: 首页 > article >正文

第34次CCF-CSP认证真题解析(目标300分做法)

第34次CCF-CSP认证

  • 矩阵重塑(其一)
  • AC代码及解析
  • 矩阵重塑(其二)
  • AC代码及解析
  • 货物调度
  • AC代码及解析

矩阵重塑(其一)

在这里插入图片描述

输入输出及样例:

在这里插入图片描述

AC代码及解析

  • 1.线性化原矩阵 :由于cin的特性我们直接把给定的矩阵按照题目的意思转换成一维数组即可

  • 2.填充新矩阵 :然后对于新的矩阵 我们只需要按照新的规模p*q重新排版即可

#include <bits/stdc++.h>
using namespace std;
int n,m,p,q;
const int N=1e4+10;
int a[N];
int main(){cin>>n>>m>>p>>q;for(int i=0;i<n*m;i++) cin>>a[i];int index=0;for(int i=0;i<p;i++){for(int j=0;j<q;j++){cout<<a[index]<<' ';index++;}cout<<endl;}return 0;
}

矩阵重塑(其二)

在这里插入图片描述

输入输出及样例:

在这里插入图片描述

AC代码及解析

基本思路:受到第一题启发 我们可以将这个二维矩阵转化成一维数组的形式
对于这三种操作:

  • 1.重塑
  • 我们对应一维数组中的元素是不变的 只需要将改变之后的矩阵规格更新一下 也就是n=a m=b
  • 2.转置
  • 也就是行列互换 具体来说就是 原来重塑的时候 我们是如何找到矩阵上的元素对应数组的下标
    比如说(1,2)
    我们就用【(当前行 1 乘以矩阵的列数 m )+ 2 】得到对应数组S的下标
    而现在转置之后 行和列的地位互换
    是不是就是 【(用当前列 2 乘以矩阵的行数 n)+1 】这样一个一个计算 得到对应 转置之后新的数组SS 之后再交换我们行和列的数值 这样就完成了一次转置操作
  • 3.查询对应位置上的元素
    直接输出对应数组元素就好
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int n,m,t;
int op,a,b;//这是操作格式
int s[N];//将重塑前的M转化为一维数组
int tmp[N];
int main()
{cin>>n>>m>>t;//构造一维数组for(int i=0;i<n*m;i++){cin>>s[i];}//处理每一个查询while(t--){cin>>op>>a>>b;if(op==1)//进行矩阵的重塑 不论怎么重塑都不会改变其对应一维数组的值的顺序//所以只需要更新一下矩阵大小的规模就行{n=a;m=b;}else if(op==2)//进行矩阵的转置(行列互换){for(int i=0;i<n;i++)//i表示当前行数{for(int j=0;j<m;j++)//j表示当前列数{tmp[j*n+i]=s[i*m+j];//本质上就是行和列的地位互换了 i改成j n改成m}}//更新对应一维数组的值for(int i=0;i<n*m;i++){s[i]=tmp[i];}//更新矩阵规模(本质上就是交换行和列的数值)int tt=n;n=m;m=tt;}else if(op==3)//进行查询操作(只有查询操作才需要输出){cout<<s[a*m+b]<<endl;}}return 0;
}

货物调度

在这里插入图片描述

输入输出及样例:

在这里插入图片描述

AC代码及解析

写了一个世纪 结果只能暴力拿30分 道心破碎 虽然感觉这道题满分解是dp 但是真正写起来真的真的好困难 连最基本的选择和状态都很难确定下来 更别说状态转移方程了 哈哈
这里附上大佬解析:文章链接

#include<bits/stdc++.h>
using namespace std;
#define ll long longint dp[1005][40010];//前i个仓库费用j可以获得的最大总价值
vector<int>a[1005];//第i个仓库的第j个货物的价值
int b[1005],c[1005];//仓库属性
bool dcmp(int a,int b){return a>b;
}
int main(){int n,m,v;cin>>n>>m>>v;for(int i=0;i<=40000;i++)dp[0][i]=0;for(int i=1;i<=n;i++){cin>>b[i]>>c[i];}for(int i=1;i<=m;i++){int val,t;cin>>val>>t;t++;a[t].push_back(val);}for(int i=1;i<=n;i++){sort(a[i].begin(),a[i].end(),dcmp);}for(int i=1;i<=n;i++){for(int j=0;j<=40000;j++){dp[i][j]=dp[i-1][j];//不选iint sum=0;for(int k=0;k<a[i].size();k++){//选iif(b[i]+c[i]*(k+1)>j)break;sum+=a[i][k];//收益和dp[i][j]=max(dp[i][j],dp[i-1][j-b[i]-c[i]*(k+1)]+sum-b[i]-c[i]*(k+1));}}}int ans;for(int i=0;i<=40000;i++){if(dp[n][i]>=v){ans=i;break;}}cout<<ans;return 0;
}

相关文章:

第34次CCF-CSP认证真题解析(目标300分做法)

第34次CCF-CSP认证 矩阵重塑&#xff08;其一&#xff09;AC代码及解析矩阵重塑&#xff08;其二&#xff09;AC代码及解析货物调度AC代码及解析 矩阵重塑&#xff08;其一&#xff09; 输入输出及样例&#xff1a; AC代码及解析 1.线性化原矩阵 &#xff1a;由于cin的特性我们…...

video-audio-extractor:视频转换为音频

软件介绍 前几天在网上看见有人分享了一个源码&#xff0c;大概就是py调用的ffmpeg来制作的。 这一次我带来源码版&#xff08;需要py环境才可以运行&#xff09;&#xff0c;开箱即用版本&#xff08;直接即可运行&#xff09; 软件特点 软件功能 视频提取音频&#xff1a…...

rk3588 区分两个相同的usb相机

有时候会插入两个一模一样的usb相机&#xff0c;担心每次启动他们所对应的设备节点 /dev/video* 会变化&#xff0c;所以需要绑定usb口&#xff0c;区分两个相机。把两个相机都插入后&#xff0c;查看usb信息 rootrk3588:/# udevadm info --attribute-walk --name/dev/video0U…...

[概率论基本概念4]什么是无偏估计

关键词&#xff1a;Unbiased Estimation 一、说明 对于无偏和有偏估计&#xff0c;需要了解其叙事背景&#xff0c;是指整体和抽样的关系&#xff0c;也就是说整体的叙事是从理论角度的&#xff0c;而估计器原理是从实践角度说事&#xff1b;为了表明概率理论&#xff08;不可…...

乐观锁与悲观锁的实现和应用

乐观锁与悲观锁&#xff1a;原理、实现与应用详解 在并发编程和数据库操作中&#xff0c;乐观锁和悲观锁是两种重要的并发控制策略&#xff0c;它们在原理、实现方式和应用场景上存在显著差异。下面我们将通过图文结合的方式&#xff0c;深入探讨这两种锁机制。 一、基本概念 1…...

PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式

PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式 文章目录 PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式1. 查询效果2. 处理方式3. 再次查询 1. 查询效果 2. 处理方式 3. 再次查询...

【vue】Uniapp 打包Android 文件选择上传问题详解~

需求 uniapp兼容android app&#xff0c;pc&#xff0c;h5的文件选择并上传功能。 需要支持拍照和相册选择&#xff0c;以及选择其他类型文件上传~ 实践过程和问题 开始使用uni-file-picker组件 以为很顺利&#xff0c;android模拟器测试…… 忽略了平台兼容性提示~&#…...

ASR技术(自动语音识别)深度解析

ASR技术(自动语音识别)深度解析 自动语音识别(Automatic Speech Recognition,ASR)是将人类语音转换为文本的核心技术,以下是其全面解析: 一、技术原理架构 #mermaid-svg-QlJOWpMtlGi9LNeF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:1…...

图论水题2

div2 361 D. Tree Requests 题意 对于一颗 n n n节点的树&#xff0c;每个节点有一个字母&#xff0c;有 m m m次询问&#xff0c;每次询问求对于顶点 v v v的子树中深度为 h h h的结点能否组成一个回文串$ (1 \leq n \leq m \leq 5 \cdot 10^5) $ 思路 关于 v v v的子树结…...

Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然

视频扩散技术虽发展显著&#xff0c;但多数驾驶数据集事故事件少&#xff0c;难以生成逼真车祸图像&#xff0c;而提升交通安全又急需逼真可控的事故模拟。为此&#xff0c;论文提出可控车祸视频生成模型 Ctrl-Crash&#xff0c;它以边界框、碰撞类型、初始图像帧等为条件&…...

网络编程之服务器模型与UDP编程

一、服务器模型 在网络通信中&#xff0c;通常要求一个服务器连接多个客户端 为了处理多个客户端的请求&#xff0c;通常有多种表现形式 1、循环服务器模型 一个服务器可以连接多个客户端&#xff0c;但同一时间只能连接并处理一个客户的请求 socket() 结构体 bind() listen() …...

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测 目录 Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五…...

阿里云服务器安装nginx并配置前端资源路径(前后端部署到一台服务器并成功访问)

​​​运行以下命令&#xff0c;安装Nginx相关依赖。 yum install -y gcc-c yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 运行wget命令下载Nginx 1.21.6。 您可以通过Nginx开源社区直接获取对应版本的安装包URL&…...

Ubuntu 下开机自动执行命令的方法

Ubuntu 下开机自动执行命令的方法&#xff08;使用 crontab&#xff09; 在日常使用 Ubuntu 或其他 Linux 系统时&#xff0c;我们常常需要让某些程序或脚本在系统启动后自动运行。例如&#xff1a;启动 Clash 代理、初始化服务、定时同步数据等。 本文将介绍一种简单且常用的…...

C++11新增重要标准(下)

前言 一&#xff0c;forward&#xff08;完美转发&#xff09; 二&#xff0c;可变参数模板 三&#xff0c;emplace系列接口 四&#xff0c;新增类功能 五&#xff0c;default与delete 六&#xff0c;lambda表达式 七&#xff0c;包装器 八&#xff0c;bind 在C11中新增…...

【第六篇】 SpringBoot的日志基础操作

简介 日志系统在软件开发中至关重要&#xff0c;用于调试代码、记录运行信息及错误堆栈。本篇文章不仅详细介绍了日志对象的创建及快速使用&#xff0c;还说明了日志持久化的两种配置方式和滚动日志的设置。实际开发需根据场景选择合适的日志级别和存储策略。文章内容若存在错误…...

Pluto论文阅读笔记

主要还是参考了这一篇论文笔记&#xff1a;https://zhuanlan.zhihu.com/p/18319150220 Pluto主要有三个创新点&#xff1a; 横向纵向用lane的query来做将轨迹投回栅格化地图&#xff0c;计算碰撞loss对数据进行正增强和负增强&#xff0c;让正增强的结果也无增强的结果相近&a…...

ubuntu显示器未知

在Ubuntu系统中&#xff0c;当外接显示器被识别为“未知设备”时&#xff0c;可通过以下日志文件进行问题诊断&#xff0c;结合Xorg日志和内核日志综合分析&#xff1a; &#x1f50d; 一、查看Xorg显示服务日志&#xff08;核心&#xff09; Xorg日志记录了图形界面的详细事…...

Faiss向量数据库全面解析:从原理到实战

Faiss向量数据库全面解析&#xff1a;从原理到实战 引言&#xff1a;向量搜索的时代需求 在AI技术爆发的今天&#xff0c;向量数据已成为表示文本、图像、音视频等内容的核心形式。Facebook AI研究院开源的Faiss&#xff08;Facebook AI Similarity Search&#xff09;作为高…...

matlab 2024a ​工具箱Aerospsce Toolbox报错​

Matlab R2024a中Aerospsce Toolbox报错 警告&#xff1a;Aerospace Toolbox and Aerospace Blockset licenses are required in ‘built-in/Spacecraft Dynamics’ 找到安装路径\MATLAB\R2024a\licenses文件夹license_****_R2024a.lic 里面工具箱名称出错&#xff0c;手动修改…...

使用有限计算实现视频生成模型的高效训练

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 视频生成的最新进展需要越来越高效的训练配方&#xff0c;以减轻不断上升的计算成本。在本报告中&#xff0c;我们介绍了 ContentV&#xff0c;这是一种 8B 参数文本到视频模型&#xff0c;在 256 …...

Server2003 B-1 Windows操作系统渗透

任务环境说明&#xff1a; 服务器场景&#xff1a;Server2003&#xff08;开放链接&#xff09; 服务器场景操作系统&#xff1a;Windows7 1.通过本地PC中渗透测试平台Kali对服务器场景Windows进行系统服务及版本扫描渗透测试&#xff0c;并将该操作显示结果中Telnet服务对应的…...

一次Oracle的非正常关闭

数据库自己会关闭吗&#xff1f; 从现象来说Oracle MySQL Redis等都会出现进程意外停止的情况。而这些停止都是非人为正常关闭或者暴力关闭&#xff08;abort或者kill 进程&#xff09; 一次测试环境的非关闭 一般遇到这种情况先看一下错误日志吧。 2025-06-01T06:26:06.35…...

AI不会杀死创作,但会杀死平庸

作为一个敲了8年Java代码的普通本科程序员&#xff0c;日常主要泡在会议后台管理系统的开发里。从2023年底被朋友拽着试了第一把AI工具到现在&#xff0c;电脑手机上的AI软件比外卖App还多——写代码的Copilot、画时序图的工具、聊天的ChatGPT、Deepseek&#xff0c;基本市面上…...

JeecgBoot低代码管理平台

一、一句话理解 JeecgBoot JeecgBoot 是一个基于 Java 技术栈&#xff08;主要是 Spring Boot 和 Vue&#xff09;的快速开发脚手架。它的核心理念是&#xff1a;通过代码生成器和一系列预置模块&#xff0c;极大地减少程序员在开发企业级后台管理系统时重复的、模板化的工作&…...

Fetch与Axios:区别、联系、优缺点及使用差异

Fetch与Axios&#xff1a;区别、联系、优缺点及使用差异 文章目录 Fetch与Axios&#xff1a;区别、联系、优缺点及使用差异一、联系二、区别1. 浏览器支持与兼容性2. 响应处理3. 请求拦截和响应拦截4. 错误处理 三、优缺点1. Fetch API优点缺点 2. Axios优点缺点 四、使用上的差…...

YOLO11解决方案之分析

概述 Ultralytics提供了一系列的解决方案&#xff0c;利用YOLO11解决现实世界的问题&#xff0c;包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 Ultralytics提供了三种基本的数据可视化类型&#xff1a;折线图&#xff08;面积图&#xf…...

yolov11与双目测距结合,实现目标的识别和定位测距(onnx版本)

一、yolov11双目测距基本流程 yolov11 双目测距的大致流程就是&#xff1a; 双目标定 --> 立体校正&#xff08;含消除畸变&#xff09; --> 立体匹配 --> 视差计算 --> 深度计算(3D坐标)计算 --> 目标检测 --> 目标距离计算及可视化 下面将分别阐述每…...

基于51单片机和8X8点阵屏、独立按键的填充消除类小游戏

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、8X8点阵屏2、独立按键3、定时器04、定时器1 四、主函数总结 系列文章目录 前言 使用的是普中A2开发板。 【单片机】STC89C52RC 【频率】12T11.0592MHz 【外设】8X8点阵屏、独立按键 效果查看/操作演示&#x…...

将数据库表导出为C#实体对象

数据库方式 use 数据库;declare TableName sysname 表名 declare Result varchar(max) /// <summary> /// TableName /// </summary> public class TableName {select Result Result /// <summary>/// CONVERT(NVARCHAR(500), ISNULL(ColN…...