zzu天梯赛选拔
C. NANA去上课 — 简单数学
需要记录上一步处在哪个位置
然后判断如果是同一侧移动距离就是abs(x1 - x2)
如果不同就是x1 + x2
#include <iostream>
#include <cmath>
using namespace std;
#define int long long
signed main()
{int n; cin >> n;char s, pres; int x, prex; cin >> pres >> prex;int res = prex;for(int i = 2; i <= n; i ++){cin >> s >> x;if(pres != s) res += x + prex;else res += abs(prex - x);pres = s, prex = x;}res += prex;cout << res << '\n';
}
D. NANA在夜市 — bfs
倒着思考,从终点往周围扩展,判断能否到达,把能到达的点放入队列,接着扩展
这里判断时需要注意从能到达的点往外扩展时 方向是反着的,判断能否到达需要反着判断
#include <iostream>
#include <queue>
using namespace std;
const int N = 1010;
char g[N][N];
bool st[N][N];
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, 1, -1};signed main()
{int n, m; cin >> n >> m;for(int i = 0; i < n; i ++) cin >> g[i];int sx, sy;// 找到终点位置 for(int i = 0; i < n; i ++)for(int j = 0; j < m; j ++)if(g[i][j] == 'O')sx = i, sy = j;queue<pair<int,int>> q;q.push({sx, sy});st[sx][sy] = true;int res = 1;while(q.size()){int x = q.front().first;int y = q.front().second;q.pop();for(int i = 0; i < 4; i ++){int ax = x + dx[i];int ay = y + dy[i];if(ax < 0 || ax >= n || ay < 0 || ay >= m || st[ax][ay]) continue;if((i == 0 && g[ax][ay] == 'D') || (i == 1 && g[ax][ay] == 'U') || (i == 2 && g[ax][ay] == 'L') || (i == 3 && g[ax][ay] == 'R')) {q.push({ax, ay});st[ax][ay] = true;res ++;}}}cout << res << '\n';}
F. NANA 的排名 — 二分+排序
先按照每个人的最低分加入到总成绩,用两个数组记录,一个原始数组,一个按总成绩从大到小排序的数组
遍历每一个人,用二分在在已经排序的数组里找到比它的数的数量就是排名
这里不需要考虑原来加入的自己,因为按最高分加入一定比最低分加入高
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Node
{int l, r;int sum;
};
bool cmp(Node a, Node b)
{return a.sum > b.sum;
}
signed main()
{int n; scanf("%d", &n);vector<Node> vec, pre; for(int i = 0, l, r, x, sum; i < n; i ++){scanf("%d %d", &l, &r);sum = 0;for(int j = 0; j < 5; j ++){scanf("%d", &x);sum += x;}sum += l;vec.push_back({l, r, sum});pre.push_back({l, r, sum});}sort(vec.begin(), vec.end(), cmp);vector<int> res;for(int i = 0; i < n; i ++){int sum = pre[i].sum + pre[i].r - pre[i].l;int l = 0, r = n;while(l < r){int mid = l + r >> 1;if(vec[mid].sum <= sum) r = mid;else l = mid + 1;}cout << l + 1 << '\n';}
}
G. NANA看天鹅舞会 — 贪心
最小的天鹅数黑白配对
剩下的相同2只配对
如果剩下的是奇数 减去c
#include
using namespace std;
#define int long long
signed main()
{
int n, m, a, b, c;
cin >> n >> m >> a >> b >> c;
if(n > m) swap(n, m);
int res = n * a;
m -= n;
res += (m / 2) * b;
if(m & 1) res -= c;
cout << res << ‘\n’;
}
I. NANA做胡辣汤 — 滑动窗口
先把处理好的全加起来
用hh记录长度为k窗口的左端点,遍历右端点每次求出长度为k的区间中的没处理好的调料数量
每次更新res
#include <iostream>
using namespace std;
const int N = 100010;
#define int long long
int a[N], b[N];
signed main()
{int n, k; cin >> n >> k;for(int i = 0; i < n; i ++) cin >> a[i];for(int i = 0; i < n; i ++) cin >> b[i];int hh = 0, sum = 0;for(int i = 0; i < n; i ++)if(b[i]) sum += a[i];// 先处理第一个窗口 for(int i = 0; i < k; i ++)if(!b[i]) sum += a[i];int res = sum;for(int i = k; i < n; i ++){if(!b[i - k]) sum -= a[i - k];if(!b[i]) sum += a[i];res = max(sum, res);}cout << res << '\n';
}
J. NANA与她的朋友们 — 双指针
k和ai很大,但是数只有1e5个,很容易想到离散化
因为每次影响的只有最大值和最小值,就可以直接看 最大值 和 最小值分别对应的数量哪个小
每次用k减去 那个小的,维护一个双指针,直到k小于0,或者双指针相遇
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
#define int long long
map<int,int> mp;
signed main()
{int n, k, x; scanf("%lld %lld",&n, &k);vector<int> vec;for(int i = 0; i < n; i ++){scanf("%lld", &x);if(!mp.count(x)) vec.push_back(x);mp[x] ++;}sort(vec.begin(), vec.end());int hh = 0, tt = vec.size() - 1;while(hh < tt){int l = mp[vec[hh]];int r = mp[vec[tt]];if(l < r){int num = vec[hh + 1] - vec[hh];int cnt = l;if(k >= cnt * num){k -= cnt * num;mp[vec[hh + 1]] += mp[vec[hh]];hh ++; } else{int t = k / cnt;k -= t * cnt;int res = vec[tt] - vec[hh] - t;cout << res << '\n';return 0;}}else{int num = vec[tt] - vec[tt - 1];int cnt = r;if(k >= cnt * num){k -= cnt * num;mp[vec[tt - 1]] += mp[vec[tt]];tt --;}else{int t = k / cnt;k -= t * cnt;int res = vec[tt] - t - vec[hh];cout << res << '\n';return 0;}}}cout << 0 << '\n';
}
K. NANA在郑州 — 小模拟
#include <iostream>
using namespace std;
#define int long long
int val[] = {1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4};
signed main()
{int n;cin >> n;// kong geint res = n - 1;while(n --){string s; cin >> s;for(int i = 0; i < s.size(); i ++) res += val[s[i] - 'a'];}cout << res << '\n';
}
相关文章:
zzu天梯赛选拔
C. NANA去上课 — 简单数学 需要记录上一步处在哪个位置 然后判断如果是同一侧移动距离就是abs(x1 - x2) 如果不同就是x1 x2 #include <iostream> #include <cmath> using namespace std; #define int long long signed main() {int n; c…...
【C语言】一篇让你彻底吃透(结构体与结构体位段)
本章重点 主要讲解结构体和位移动的使用和定义与声明,并且结构体和位段在内存中是如何存储的。 文章目录结构体结构体类型的声明结构体特殊的声明结构体变量的定义和初始化结构体成员的访问结构的自引用结构体内存对齐结构体传参位段什么是位段位段的内存分配位段的…...
数据结构之二叉树构建、广度/深度优先(前序、中序、后序)遍历
一、二叉树 1.1 树 说到树,我们暂时忘记学习,来看一下大自然的树: 哈哈 以上照片是自己拍的,大家凑合看看 回归正题,那么在数据结构中,树是什么呢,通过上面的图片大家也可以理解 树是一种非…...
“国产版ChatGPT”文心一言发布会现场Demo硬核复现
文章目录前言实验结果一、文学创作问题1 :《三体》的作者是哪里人?问题2:可以总结下三体的核心内容吗?如果要续写的话,可以从哪些角度出发?问题3:如何从哲学角度来进行续写?问题4:电…...
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行《不被定义的女孩》作者ASEN,很棒的书。处处透露着洒脱,通透,悦己,阅世界的自由的氛围和态度! 部分节选如下: 让自己活得…...
SpringBoot帮你优雅的关闭WEB应用程序
Graceful shutdown 应用 Graceful shutdown说明 Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and servlet-based web applications. It occurs as part of closing the applica…...
递归与递推
递归 直白理解:函数在其内部调用自身(自己调用自己)所有递归都可以采用递归搜索树来理解递归的特点: 一般来说代码较为简短,但是理解难度大一般时间和空间消耗较大,容易产生重复计算,可能爆栈 …...
使用<style scoped>导致的样式问题
问题描述: 今天使用开源组件库TDesign的自动补全组件时,遇到了一个样式失效问题,一开始怎么也找不到问题出在哪,后面一个偶然去掉了scoped,竟然发现样式竟然正常了,具体原因不知道在哪,有大佬知…...
Elasticsearch深入理解(十八)-集群关键指标及调优指南
1、CPU使用率 CPU使用率是指在一段时间内CPU执行程序的百分比,它是衡量系统资源利用率的一种指标。 1.1 详细说明: 在Elasticsearch中,高的CPU使用率通常意味着节点正在执行大量的计算任务,这可能是因为索引和搜索操作的负载较大…...
Transformer到底为何这么牛
从注意力机制(attention)开始,近两年提及最多的就是Transformer了,那么Transformer到底是什么机制,凭啥这么牛?各个领域都能用?一文带你揭开Transformer的神秘面纱。 目录 1.深度学习࿰…...
【Spring事务】声明式事务 使用详解
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 声明式事务一、编程式事务二、声明式事务&…...
学习28个案例总结
学习前 对于之前遇到的问题没有及时总结,导致做什么事情都是新的一样。没有把之前学习到接触到的内容应用上。通过这次对28个案例的学习。把之前遇到的问题总结成自己的经验,在以后的开发过程中避免踩重复性的坑。多看帮助少走弯路。 学习中 对28个案例…...
刷题Java常用方法总结
刷题Java常用方法总结 文章目录刷题Java常用方法总结快速查看:静态数组 Static Array初始化instance属性length技巧Arrays.sort从小到大排序Arrays.fill填满一个数组Arrays.copyOf / arr.clone()复制一个数组(二维数组也可以)动态数组 List & Dynamic Array初始化常规 - Ar…...
大数据技术之Hive
第1章Hive基本概念1.1 Hive1.1.1 Hive的产生背景在那一年的大数据开源社区,我们有了HDFS来存储海量数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量数据和负责的业务逻辑,开发人员要编写MR来对数据进行统计…...
第33篇:Java集合类框架总结
目录 1、集合概念 2、集合与数组的区别 3、集合框架的特性 1)高性能 2)可操作...
数据结构 | 栈的中缀表达式求值
目录 什么是栈? 栈的基本操作 入栈操作 出栈操作 取栈顶元素 中缀表达式求值 实现思路 具体代码 什么是栈? 栈是一种线性数据结构,具有“先进后出”(Last In First Out, LIFO)的特点。它可以看作是一种受限的…...
vue2前端实现html导出pdf功能
1. 功能实现方案 1.html转换成canvas后生成图片导出pdf(本文选用) html转canvas插件:html2canvas是一款将HTML代码转换成Canvas的插件;canvas生成pdf:jsPDF是一个使用Javascript语言生成PDF的开源库 2.HTML代码转出…...
用 ChatGPT 辅助学好机器学习
文章目录一、前言二、主要内容🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 探索更高效的学习方法可能是有志者共同的追求,用好 ChatGPT,先行于未来。 作为一个人工智能大语言模型,ChatGPT 可以在帮助初…...
【动态规划】最长上升子序列(单调队列、贪心优化)
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发
1. 前言 需求: 需要一路can进行收发 分析: 根据目前使用较多的方案是使用主控端SPI接口 接入MCP2515芯片进行CAN协议转换 硬件: MCP2515->SPI2->SS928 2. Uboot开发 2.1 pinmux复用配置 2.1.1 修改uboot参数表 路径: osdrv/tools/pc/uboot_tools/ SS928V100…...
图片去水印 API 接口实战:网站如何实现自动去水印(Python / PHP / C#)
在做网站或后台系统时,一个很常见但容易被忽视的问题是: 👉 用户上传的图片自带水印 👉 平台展示希望统一成干净版本 👉 还要支持批量、自动化处理 👉 最好能无缝接入现有系统 如果你正在找: …...
如何通过自动化硬件适配技术突破Hackintosh配置瓶颈:OpCore Simplify技术深度解析
如何通过自动化硬件适配技术突破Hackintosh配置瓶颈:OpCore Simplify技术深度解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系…...
Natapp内网穿透避坑指南:Windows系统常见报错解决方案(2024最新版)
Natapp内网穿透避坑指南:Windows系统常见报错解决方案(2024最新版) 在开发过程中,内网穿透工具如Natapp已成为连接本地开发环境与外部网络的必备利器。然而,对于初次接触Natapp的Windows用户来说,从安装配…...
3步突破显卡限制:如何让AMD/Intel显卡实现DLSS级画质?
3步突破显卡限制:如何让AMD/Intel显卡实现DLSS级画质? 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR3 FG on non-FG titles. Supports N…...
从零开始:在Unity中完美实现视频播放功能的完整指南(附常见报错解决方案)
从零开始:在Unity中完美实现视频播放功能的完整指南(附常见报错解决方案) 在游戏开发中,视频播放功能的应用场景越来越广泛——从开场动画、过场剧情到UI背景,视频元素能为玩家带来更丰富的视听体验。Unity作为主流的…...
ExcelDataReader实战指南:高效处理Excel文件3步法掌握跨格式解析
ExcelDataReader实战指南:高效处理Excel文件3步法掌握跨格式解析 【免费下载链接】ExcelDataReader Lightweight and fast library written in C# for reading Microsoft Excel files 项目地址: https://gitcode.com/gh_mirrors/ex/ExcelDataReader ExcelDat…...
西门子PLC存储区全解析:从M区到DB块的实战避坑指南
西门子PLC存储区全解析:从M区到DB块的实战避坑指南 第一次接触西门子PLC编程时,面对M区、L区和DB块这些存储区概念,我完全摸不着头脑。记得有次调试设备,明明在线监控看到M0.0已经置位,但程序就是不执行相应动作&#…...
MiniCPM-V-2_6嵌入式AI应用实战:STM32F103C8T6边缘推理集成
MiniCPM-V-2_6嵌入式AI应用实战:STM32F103C8T6边缘推理集成 最近几年,AI模型越来越“小”,开始往各种硬件设备里钻。你可能听说过在手机、树莓派上跑AI,但有没有想过,在一块只有指甲盖大小、主频72MHz、内存才20KB的S…...
Translategemma-27b-it与OCR结合:图片翻译完整流程
Translategemma-27b-it与OCR结合:图片翻译完整流程 1. 引言 想象一下这样的场景:你在异国旅行时看到一份精美的菜单,却因为语言障碍而不知道点什么;或者在研究国外产品时,标签上的说明文字完全看不懂。传统的翻译工具…...
如何获取网易云音乐永久链接:终极免费解决方案指南
如何获取网易云音乐永久链接:终极免费解决方案指南 【免费下载链接】netease-cloud-music-api 网易云音乐直链解析 API 项目地址: https://gitcode.com/gh_mirrors/ne/netease-cloud-music-api 你是否曾经遇到过这样的烦恼:好不容易找到一首喜欢的…...
