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

北华大学第九届程序设计竞赛 题解

5.14和队友VP一场,第二次VP,状态明显比第一次好很多,总共A了7题,基本是能做出来的都做出来了,最后还剩下接近2小时的时间。。。。。

A "北华"有几何

思路:数图片中“北华”的数量,直接输出即可

B 学霸题 II

思路:二分+前缀和(缺少任何一个都会超时)

首先输入数组a(正视图每列的个数)然后对其进行排序,计算数组a的前缀和,再输入数组b(侧视图每列的个数),数组b每个数只能小于或者等于数组a的每一个数。这样想,假如开始按正视图的个数堆满,那么考虑每列侧视图时,正式图只要大于当前列侧视图的都要削减到和当前列侧视图同高,所以每输入一个b,二分数组a,在数组a中查找第一个大于b的数,前半部分不变,直接是前缀和即可,后半部分都等于当前列侧视图b

lower_bound(begin,end,num);                        查找第一个大于等于num的数字upper_bound(begin,end,num);                       查找第一个大于num的数字

AC代码: 

#include<iostream>
#include<algorithm>
#define int long long
using namespace std;const int N=300005;
int a[N],b[N],sum[N];
signed main(){int n,m,ans=0,pos;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);for(int i=1;i<=n;i++){sum[i]=sum[i-1]+a[i];}cin>>m;for(int i=1;i<=m;i++){cin>>b[i];pos=upper_bound(a+1,a+n+1,b[i])-a;ans+=(n-pos+1)*b[i]+sum[pos-1];}cout<<ans;return 0;
}

C 小杜的字符串

思路:模拟

对字符串的每列进行遍历,将每列的字符都变成在每列中出现次数最多的字符,因为只有三行,所以记录字符出现次数,每次答案加上3-最大字符数即可

AC代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;string s[5];
int sum[30];
int main(){int n,ans=0;cin>>n;for(int i=1;i<=3;i++){cin>>s[i];}for(int i=0;i<n;i++){memset(sum,0,sizeof(sum));for(int j=1;j<=3;j++){sum[s[j][i]-'a']++;}	sort(sum,sum+26);ans+=3-sum[25];}cout<<ans;return 0;
}

D 矿石精炼场

思路:模拟题

因为只能购买一台矿石精炼器,所以分析两种情况取最大值即可。第一种情况,不购买矿石精炼器,最后的金钱即为当前手里的金钱+矿资源的价值。第二种情况,购买矿石精炼器,若要购买矿石精炼器,首先电力资源要满足,所以要修建发电站,要修建发电站,首先要看钱满不满足,所以要先判断电力资源满不满足,计算需要修建发电机需要的钱数(注意不能出现负的),矿产资源数和当前手里的钱数减去需要的钱数,剩下的再通过矿石精炼

AC代码:

#include<iostream>
#include<cmath>
using namespace std;int main(){double T,w,m,E,D,c0,d,p,c1,e,sum1,sum2,nm;cin>>T;while(T--){cin>>w>>m>>E>>D>>c0>>d>>p>>c1>>e;sum1=w+m;nm=max(0.0,ceil((D+d-E)/e))*c1+c0;if(nm<=m){sum2=w*(1+p*0.01)+m-nm;}else{sum2=(w+m-nm)*(1+p*0.01);}printf("%.2lf\n",max(sum1,sum2));}return 0;
}

E 天空岛

优先队列的自定义不会写!!!!!仿函数啥的啊啊啊啊!!!带结构体的优先队列。。。

开始只考虑BFS,未考虑优先队列,所以总是想不出来这样写为什么会AC,之后才慢慢理解。。

思路:BFS+优先队列

先将第一个点加入队列,然后只要队列非空,取出一个点(因为是优先队列,所以取出的点为当前队列中w,即承重极限最大的),注意货物必须首先满足重量小于等于该单元格的承重极限,所以每次结果为队列中承重极限最大的,同时单独计算精灵分担的货物重量

AC代码:

#include<iostream>
#include<queue> 
#define int long long
using namespace std;const int N=1005;
int w[N][N],val[N][N];
bool vis[N][N];
int dx[]{-1,1,0,0};
int dy[]{0,0,-1,1};
struct Node{int x;int y;int z;
};struct cmp{bool operator()(Node a,Node b){return a.z<b.z;}
};signed main(){int n,m,k,x,y,v,ans=0x3f3f3f3f,sum=0;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>w[i][j];}}cin>>k;for(int i=1;i<=k;i++){cin>>x>>y>>v;val[x][y]=v;}priority_queue<Node,vector<Node>,cmp> q;q.push({1,1,w[1][1]});while(!q.empty()){Node t=q.top();int a=t.x,b=t.y,c=t.z;q.pop();//防止队列中出现多次同一个元素!!!//某个在队列中间的元素被多次压入!! if(vis[a][b]){continue;}vis[a][b]=1;ans=min(ans,c+sum);sum+=val[a][b];if(a==n&&b==m){break;}for(int i=0;i<4;i++){int nx=a+dx[i],ny=b+dy[i];if(vis[nx][ny]||nx<1||nx>n||ny<1||ny>m){continue;}q.push({nx,ny,w[nx][ny]});}}cout<<ans;return 0;
}

F Karashi的树 II 

思路:并查集+最短路

不会。。。。

G 114514国

思路:思维题,因为给一张45找回四张11相当于支付1,注意要求:0≤A,B,C,a,b,c≤10^{9}所以先支付45面值的,取余45即可,剩下的再使用一张45找回四张

AC代码:

#include<iostream>
using namespace std;int main(){long long n,ans=0;cin>>n;ans+=n/45;n%=45;cout<<0<<' '<<ans+n<<' '<<0<<'\n';cout<<n*4<<' '<<0<<' '<<0<<'\n';return 0;
}

H 杰哥的激光炮

思路:也算是思维题吧。。。先求长和宽的最大公约数,答案即为:最大公约数*(长/最大公约数+宽/最大公约数-1)

AC代码:

#include<iostream>
#include<algorithm>
using namespace std;int main(){int T,x,y;cin>>T;while(T--){cin>>x>>y;if(x==y){cout<<x<<'\n';}else{int t=__gcd(x,y);cout<<t*(x/t+y/t-1)<<'\n';}}return 0;
}

I TAROT I 

思路:容斥

不会。。。

L Karashi的电灯泡 

思路:大模拟。。。理解不了。。。。。

M 超时空传送!!偷袭

思路:水题。。。输出九个战斗力最大的和即可(不足九个输出和)

#include<iostream>
#include<algorithm>
using namespace std;const int N=105;
int a[N];bool cmp(int x,int y){return y<=x;
}
int main(){int n,ans=0;cin>>n;string s;for(int i=0;i<n;i++){cin>>s>>a[i];}sort(a,a+n,cmp);for(int i=0;i<9;i++){ans+=a[i];}cout<<ans;
}

相关文章:

北华大学第九届程序设计竞赛 题解

5.14和队友VP一场&#xff0c;第二次VP&#xff0c;状态明显比第一次好很多&#xff0c;总共A了7题&#xff0c;基本是能做出来的都做出来了&#xff0c;最后还剩下接近2小时的时间。。。。。 A "北华"有几何 思路&#xff1a;数图片中“北华”的数量&#xff0c;直…...

【Java算法题】剑指offer_01数据结构

前言 刷题链接&#xff1a; https://www.nowcoder.com/exam/oj/ta?page2&tpId13&type265 1. 链表 JZ24 反转链表 思路&#xff1a;基本操作&#xff0c;如下所示。 /* public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} }…...

最简单配置jenkins容器使用宿主机的docker方法

构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可 设置Jenkins容器使用宿主机Docker 设置宿主机docker.sock权限 chown root:root /var/run/docker.sock chmod orw /var/run/docker.sock 添加数据卷 v…...

Android aidl及binder基础知识巩固

作者&#xff1a;义华 1、什么是binder binder是android framework提供的&#xff0c;用于跨进程方法调用的机制&#xff0c;具有安全高效等特点。 我们知道&#xff0c;在 Android 系统中&#xff0c;每个应用程序都运行在一个独立的进程中&#xff0c;各个进程之间需要进行…...

[日记]LeetCode算法·二十五——二叉树⑤ AVL树(插入+删除)附代码实现

本章的代码实现基于上一篇BST与优先队列的基类进行平衡二叉树&#xff0c;即AVL树。 文章目录 AVL的概念AVL查询效率AVL的插入1.插入节点2.更新平衡因子BF3.旋转调整树的结构3.1 LL 右旋3.2 RR 左旋3.3 LR 左右双旋3.4 RL 右左双旋 4 插入总结 AVL的删除1.寻找删除节点2.更新平…...

flink-1.13.6 例子

-------------------------------------------------------------- flink版本: flink-1.13.6 [rootmaster bin]# pip3 list | grep flink WARNING: Ignoring invalid distribution -andas (/usr/local/python38/lib/python3.8/site-packages) apache-flink 1.13.0 a…...

Go语音基于zap的日志封装

zap日志封装 Zap是一个高性能、结构化日志库&#xff0c;专为Go语言设计。它由Uber开源&#xff0c;并且在Go社区中非常受欢迎。它的设计目标是提供一个简单易用、高效稳定、灵活可扩展的日志系统。 以下是Zap的一些主要特点&#xff1a; 1.高性能&#xff1a;Zap的性能非常出…...

可持续能源技术具有改变世界的潜力,并且已经在多个方面展现出积极的影响。

可持续能源技术的发展在当今全球面临的气候变化和能源安全挑战中扮演着至关重要的角色。我认为可持续能源技术具有改变世界的潜力&#xff0c;并且已经在多个方面展现出积极的影响。以下是我对此的观点&#xff1a; 1&#xff0c;可持续能源技术有助于减少对化石燃料的依赖 化…...

Java常用工具之StringUtils类

目录 一、字符串判空二、分隔字符串三、判断是否为纯数字四、将集合拼接成字符串五、其他方法 字符串&#xff08;String&#xff09;在我们的日常工作中&#xff0c;用得非常非常非常多。 在我们的代码中经常需要对字符串判空&#xff0c;截取字符串、转换大小写、分隔字符串、…...

MyBatis-plus的批量插入方式对比分析

MyBatis-plus的批量插入方式对比分析 【摘要】Mybatis批量插入一直是开发者重点关注的问题&#xff0c;本文列举了Mybatis的五种插入方式进行对比分析&#xff0c;验证了五种批量插入的方式的优先级。 1 准备工作 1.1 新建spring项目 略。 1.2 导入pom.xml依赖 <depende…...

【系分论文】论软件开发模型及应用

目录 论题论题介绍论文要点理论素材准备范文摘要正文 论文补充知识 论题 论软件开发模型及应用 论题介绍 软件开发模型&#xff08; Software Development Model&#xff09;是指软件开发全部过程、活动和任务的结构框架。软件开发过程包括需求、设计、编码和测试等阶段&…...

渗透测试--5.3.使用john破解密码

前言 由于Linux是Internet最流行的服务器操作系统&#xff0c;因此它的安全性备受关注。这种安全主要靠口令实现。 Linux使用一个单向函数crypt&#xff08;&#xff09;来加密用户口令。单向函数crypt&#xff08;&#xff09;从数学原理上保证了从加密的密文得到加密前的明…...

Go中的变量类型

Go中的变量类型 1.为什么要使用变量 变量其实指定的是一段内存地址&#xff0c;根据这个内存地址可以找到我们需要找到的东西。 2.变量类型 变量的功能就是用来存储数据的&#xff0c;根据不同的数据类型可以存储不同的数据。常见的变量的类型 整型、浮点型、布尔型等。变…...

基于STM32的NRF24L01 2.4G通讯模块的驱动实验(HAL库)

前言&#xff1a;本文为手把手教学NRF24L01 2.4G通讯模块的驱动实验&#xff0c;本教程的 MCU 采用STM32F103ZET6与STM32F103C8T6&#xff0c;彼此进行互相通讯。通过 CubeMX 软件配置 SPI 协议驱动NRF24L01 2.4G通讯模块&#xff08;HAL库&#xff09;。NRF24L01 2.4G是嵌入式…...

DJ5-3 多路访问链路和协议

目录 一、网络链路 二、广播信道要解决问题 三、多路访问协议 1、基本介绍 2、多路访问协议的类型&#xff08;3&#xff09; 四、信道划分协议 1、时分多路访问 TDMA 2、频分多路访问 FDMA 3、码分多路访问 CDMA&#xff08;略&#xff09; 五、随机访问协议 1、纯…...

技术领导力?

作品集&#xff08;Portfolio&#xff09;会比简历&#xff08;Resume&#xff09;更有参考意义。 怎么才算有技术领导力&#xff1f; 1) 能够发现问题&#xff0c;并能够提供解决问题的思路和方案&#xff0c;并能比较方案的优缺点。 2) 能用更简洁有效的方式解决问题。 3…...

计算机的基本工作原理

参考资料&#xff1a; L-1.6: Common Bus system| How basic computer works - YouTube 准备好内存单元、不同类型的寄存器&#xff0c;内存和寄存器、寄存器和寄存器之间都是通过总线连接(假设是直接把数据总线、控制总线、地址总线变成一条总线)。 使用多路复用器实现的总线&…...

【论文简述】Cross-Attentional Flow Transformer for Robust Optical Flow(CVPR 2022)

一、论文简述 1. 第一作者&#xff1a;Xiuchao Sui、Shaohua Li 2. 发表年份&#xff1a;2021 3. 发表期刊&#xff1a;arxiv 4. 关键词&#xff1a;光流、Transformer、自注意力、交叉注意力、相关体 5. 探索动机&#xff1a;由于卷积的局部性和刚性权重&#xff0c;有限…...

【JAVA】Java中方法的使用,理解方法重载和递归

目录 1.方法的概念及使用 1.1什么是方法 1.2方法的定义 1.3方法调用的执行过程 1.4实参和形参 2.方法重载 2.1为什么需要使用方法重载 2.2什么是方法重载 3.递归 3.1什么是递归 3.2递归执行的过程 3.3递归的使用 1.方法的概念及使用 1.1什么是方法 方法就是一个代…...

高级网络计算模式复习

P2P 对等网络&#xff08;Peer-to-Peer Networks&#xff09;是分布式系统和计算机网络相结合的产物&#xff0c;在应用领域和学术界获得了广泛的重视和成功&#xff0c;被称为“改变Internet的一代网络技术”。 peer指网络结点&#xff0c;在行为上是自由的——任意加入、退…...

CCS工程报错找不到库?别慌,手把手教你用XGCONF和工程属性搞定RTSC/裸机配置

CCS工程报错找不到库&#xff1f;三步精准定位与RTSC/裸机配置全攻略 刚接触TI芯片开发的朋友们&#xff0c;一定遇到过这样的场景&#xff1a;官方例程跑得飞起&#xff0c;自己新建的工程却频频报出"library not found"的红色警告。这就像拿到一把新枪却发现子弹型…...

使用ffmpeg本地发布rtmp/rtsp直播流

1 FFmpeg的选择与下载 选择合适的版本 首先&#xff0c;访问FFmpeg官方下载页面&#xff08;https://ffmpeg.org/download.html&#xff09;&#xff0c;在这里可以找到最新的稳定版或 nightly 构建版本。对于大多数常规用途&#xff0c;推荐下载预编译的Windows静态版本&a…...

AI理论能力或吞噬美国就业市场?真相并非如此

AI理论上能完成超80%工作任务&#xff0c;就业市场要变天&#xff1f;本月&#xff0c;Anthropic发布的关于人工智能对劳动力市场影响的报告中一张图表广为流传。它对比了22个职业类别中&#xff0c;当前职业对大语言模型&#xff08;LLM&#xff09;的“实际接触程度”和这些L…...

VL53L0X ToF测距模块Arduino驱动库详解

1. 项目概述Deneyap Derinlik ler&#xff0c;即 Deneyap ToF Range Finder Sensor&#xff0c;是一款基于 STMicroelectronics VL53L0X 飞行时间&#xff08;Time-of-Flight, ToF&#xff09;测距传感器的国产化 Arduino 兼容模块。该模块由土耳其 Deneyap 教育平台推出&#…...

Arduino多平台临界区封装库:轻量级中断屏蔽RAII实现

1. 项目概述107-Arduino-CriticalSection是一个面向多平台 Arduino 生态的轻量级临界区&#xff08;Critical Section&#xff09;封装库。其核心目标并非实现全新的同步原语&#xff0c;而是在异构硬件抽象层&#xff08;HAL&#xff09;之上提供统一、可移植、零依赖的中断屏…...

Fan-Out晶圆级封装(FOWLP)的三种工艺对比:面朝上、面朝下、RDL-first,哪种更适合你的芯片?

Fan-Out晶圆级封装&#xff08;FOWLP&#xff09;的三种工艺对比&#xff1a;面朝上、面朝下、RDL-first&#xff0c;哪种更适合你的芯片&#xff1f; 在半导体封装领域&#xff0c;Fan-Out晶圆级封装&#xff08;FOWLP&#xff09;技术正逐渐成为高性能芯片的首选方案。这种技…...

ClickEncoder库深度解析:嵌入式旋转编码器+按键一体化驱动方案

1. ClickEncoder 库深度解析&#xff1a;面向嵌入式系统的高鲁棒性旋转编码器按键一体化输入方案旋转编码器&#xff08;Rotary Encoder&#xff09;与集成按键&#xff08;Push Button&#xff09;构成的复合人机交互模块&#xff0c;广泛应用于工业控制面板、医疗设备参数调节…...

VSCode插件Continue配置避坑指南:手把手教你无缝对接OpenStation的本地大模型服务

VSCode插件Continue配置避坑指南&#xff1a;手把手教你无缝对接OpenStation的本地大模型服务 当你已经成功部署了OpenStation的本地大模型服务&#xff0c;却在VSCode中配置Continue插件时遇到各种"拦路虎"&#xff0c;这篇文章就是为你准备的调试手册。我们将深入每…...

不止于Secure Boot:深入英飞凌TC3XX HSM内核,解锁CAN FD安全通信与调校保护

不止于Secure Boot&#xff1a;深入英飞凌TC3XX HSM内核&#xff0c;解锁CAN FD安全通信与调校保护 在智能网联汽车的高速发展中&#xff0c;车载电子系统的安全防线正面临前所未有的挑战。传统ECU架构中&#xff0c;主处理器既要处理实时控制任务&#xff0c;又要承担安全运算…...

德州农机大学联合多所高校:AI从几张无序照片“脑补“出完整3D模型

这项由德州农机大学(Texas A&M University)联合澳门科技大学、西安电子科技大学、上海科技大学、香港科技大学、加州大学欧文分校等多所知名学府共同完成的研究发表于2026年4月的《ACM计算机图形学汇刊》(ACM Transactions on Graphics)第1卷第1期。这个名为UniRecGen的突破…...