河南萌新联赛2024第(三)场:河南大学

传送门:河南萌新联赛2024第(三)场:河南大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

B 正则表达式

思路:模拟

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;void solve()
{int n; cin >> n;int res = 0;while (n--){int a, b, c, d;scanf("%d.%d.%d.%d", &a, &b, &c, &d);if (a >= 0 && a <= 255 && b >= 0 && b <= 255 && c >= 0 && c <= 255 && d >= 0 && d <= 255)res++;}cout << res << endl;}
signed main()
{//ios_base::sync_with_stdio(0); cin.tie(0);int tt = 1;while (tt--)solve();return 0;
}

C Circle

题意:

思路:(模拟 + 找规律)可以记下来,当做结论

当 n == 0 时  f(n)  = 1

当 n > 0 时 f(n) = n * n - n + 2

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{int n ;cin >> n;if( n  == 0 )cout << 1 << " ";else cout << n * n - n + 2 << " ";
}
signed main()
{ios_base::sync_with_stdio(0); cin.tie(0);int tt;cin>>tt;while(tt--)solve();return 0;
}

F 累加器

题意:

思路:

1. 处理一个前缀和 f[i] 表示从 0 到 i ,累加1的操作次数

2. 函数 test 处理 num1 , num2的二进制上数字的不同 eg 011 100 这两个二进制最终的答案为3

3. 处理答案 f[x+y] - f[x]

#include<bits/stdc++.h>
using namespace std;
const int N = 2e6 + 10;
int f[N];
int test( int a , int b )
{int res = 0;while( a || b ){if( ( a % 2 ) != ( b % 2 ))res++;a /= 2; b /= 2;}return res;
}
int main()
{for(int i = 1; i <= N;i++)f[i] = f[i-1] + test( i , i - 1 );int tt;cin >> tt;while(tt--){int x , y;cin >> x >> y;cout << f[x + y] - f[x] << endl;}return 0;
}

G 求值

题意:

思路:

1. 运用平均数的性质

令 c > b > a , sum = n * b( 平均数 * n ),若 sum >= w 则说明当前的总和过大 ,应减小,将其中

的一个 b 变为 a ,总和则是 sum + a - b,若总和过小,应增大,将其中的一个 b 变为 c ,总和为

sum + c - b

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{int a , b , c ,n , w;cin >> a >> b >> c >> n >> w;int temp[3] = { a , b , c };sort( temp , temp + 3 );a = temp[0] ; b = temp[1] ; c = temp[2];int sum = b * n;int ans = abs(sum - w);while(n--){if( sum <= w )sum += c - b;else sum += a - b;ans = min(ans , abs(sum - w));}cout << ans <<endl;
}
signed main()
{int tt;cin >> tt;while(tt--)solve();return 0;
}

H 魔法

题意

思路:

dp问题

状态表示:f[i][j][k]  从(1,1)到达(i,j)其中使用k次魔法的最大生命值

状态转移方程:

当前这个(i,j)点不使用魔法

f[i][j][k] = max( f[i][j][k] , f[i-1][j][k] - a[i][j] )

f[i][j][k] = max( f[i][j][k] , f[i][j-1][k] - a[i][j] )

当前这个点使用魔法:

f[i][j][k] = max( f[i][j][k] , f[i-1][j][k-1] );

f[i][j][k] = max( f[i][j][k] , f[i][j-1][k-1] );

代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 3e3 + 10;
const int M = 3e3 + 10;
int a[N][M];
int main()
{int n, m, h;cin >> n >> m >> h;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++)cin >> a[i][j];}vector<vector<vector<int>>> f(n + 1, vector<vector<int>>(m + 1, vector<int>(n + m + 1)));for (int i = 0; i <= n; i++)for (int j = 0; j <= m; j++)for (int k = 0; k <= n + m; k++)f[i][j][k] = -0x3f3f3f3f;for (int i = 0; i <= n + m; i++)f[1][1][i] = h;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){for (int k = 0; k <= n + m; k++){if (i > 1 && f[i - 1][j][k] > a[i][j])f[i][j][k] = max(f[i][j][k], f[i - 1][j][k] - a[i][j]);if (j > 1 && f[i][j - 1][k] > a[i][j])f[i][j][k] = max(f[i][j][k], f[i][j - 1][k] - a[i][j]);if (i > 1 && k && f[i - 1][j][k - 1] > 0) f[i][j][k] = max(f[i][j][k], f[i - 1][j][k - 1]);if (j > 1 && k && f[i][j - 1][k - 1] > 0)f[i][j][k] = max(f[i][j][k], f[i][j - 1][k - 1]);}}}for (int i = 0; i <= n + m; i++)if (f[n][m][i] > 0) {cout << i << endl; return 0;}return 0;
}

I 游戏


题意:

思路:

1. 不取钥匙的最小花费

2. 取钥匙的最小花费

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
const int N = 2e5 + 10;
const int M = 1e6;
const int INF = 1e18;
int h[N] , hs[N] , e[M] , ne[M] , idx , w[M];
int n , m , k;
int dist[N]; bool st[N] = { 0 };
void add( int h[] , int a , int b , int c)
{e[idx] = b;w[idx] = c;ne[idx] = h[a];h[a] = idx++;
}
int spfa(int h[] ,int start ,  int pp )
{memset( st , 0 , sizeof st );for(int i = 0 ;i <= n;i++)dist[i] = INF;dist[start] = 0;queue<int> que;que.push(start);st[start] = true;while(que.size()){auto t = que.front();que.pop();st[t] = false;for( int i = h[t] ; i != -1 ;i= ne[i] ){int j = e[i];if( dist[j] > dist[t] + w[i] ){dist[j] = dist[t] + w[i];if( !st[j] ){que.push(j);st[j] = true;}}}}return dist[pp];
}
signed main()
{memset( hs , -1 , sizeof hs );memset( h , -1 , sizeof h );cin >> n >> m >> k;for( int i = 0 ; i < m ;i++){int a , b , c , d;cin >> a >> b >> c >> d;add( h , a , b , c );add( h , b , a , c );if( d )add( hs , a , b , c ), add( hs , b , a , c );}ll res = spfa( hs, 1, n );ll temp = spfa( hs ,1,k ) + spfa( h , k,n );if( res >= INF && temp >= INF )cout << -1 << endl;else cout << min(res , temp) <<endl;return 0;
}

K  暴食之史莱姆

题意:

思路:单调栈

#include <bits/stdc++.h>
using namespace std;
#define int long longsigned main()
{int n;cin >> n;vector<int> a(n + 1);for(int i = 1;i <= n;i ++) cin >> a[i];vector<int> res;vector<int> ans(n + 1);for(int i = 1;i <= n;i ++){while(res.size() && res.back() > a[i]) res.pop_back();ans[i] = res.size();res.push_back(a[i]);}while(res.size()) res.pop_back();for(int i = n;i >= 1;i --){while(res.size() && res.back() > a[i]) res.pop_back();ans[i] += res.size();res.push_back(a[i]);}for(int i = 1;i <= n;i ++) cout << ans[i] <<" ";cout << endl;
}

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

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

相关文章

vue3+fetch请求+接收到流式的markdown数据+一边gpt打字机式输出内容,一边解析markdown语法+highlight.js实现代码高亮

这个问题终于解决了&#xff01;好开心。 先看最终效果&#xff1a; video_20240724_141543_edit 项目背景&#xff1a;vue3 场景&#xff1a;像gpt一样可以对话&#xff0c;当用户发送问题之后&#xff0c;ai回复&#xff0c;ai是一部分一部分回复&#xff0c;像打印机式输出…

Moving Object Segmentation: All You Need Is SAM(and Flow) 论文详解

系列文章目录 文章目录 系列文章目录前言摘要1 引言2 相关工作3 SAM Preliminaries4 帧级分割Ⅰ&#xff1a;以流作为输入5 帧级分割Ⅱ&#xff1a;以流为提示6 序列级掩膜关联7 实验7.1 数据集7.2 评价指标7 .3 实施细节7.4 消融实验7.5 定量结果7 .定性可视化 8 结论致谢附录…

Ollama0.3.0 + llama3.1本地部署

Ollama0.3.0 llama3.1本地部署 安装Ollama 官网下载安装包 https://ollama.com/download ​​ 根据系统选择对应版本 安装完成后&#xff0c;电脑右下角会出现ollama程序图标&#xff0c;表示ollama正在运行。 ​​ 打开cmd命令 下载Llama3.1 输入ollama&#xff0c…

从“线缆迷宫”到“数字通途”:一机一网助力成天泰园区网络升级

(文 林海宾/深圳速锦网络科技有限公司) 林海宾,现任深圳速锦网络科技有限公司(以下简称速锦网络)的项目总监,一个入行十年、经验老道的数字化升级”操盘手“。他曾经主导过中国农业银行深圳分行130多个网点以及美的珠海工厂等数字化建设升级项目。在2024年的五一,他帮助深圳市…

【MATLAB源码】机器视觉与图像识别技术(7)续---BP神经网络

系列文章目录在最后面&#xff0c;各位同仁感兴趣可以看看&#xff01; BP神经网络 第一节、BP网络定义第二节、BP网络结构及其特点第三节、信息传播方式 信息的正向传播&#xff1a;实质是计算网络的输出误差的反向传播&#xff1a;实质是学习过程第四节、 BP网络的算法流程…

视频怎么在尽量不损害画质的前提下压缩?试试这4款视频压缩神器

4个视频压缩神器&#xff0c;帮你在不损画质的前提下满足压缩需求&#xff1a; 1、嗨格式压缩大师 关键词&#xff1a;高效、批量 直达链接>>yasuo.hgs.cn 嗨格式压缩大师是一款免费的文件压缩工具&#xff0c;支持视频、图片、PDF、PPT等文件快速、批量压缩&#xff…

代码随想录 day 28 贪心

第八章 贪心算法 part02 贪心 局部最优解推出全局最优 &#xff0c;而且想不到反例&#xff0c;那么就试一试贪心 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 只要想清楚 局部最优 是什么&#xff0c;如果推导出全局…

XR-Frame 计算相机与场景物体的距离

如下哦 const cameraTransform this.scene.getElementById(camera).getComponent(transform)const modelTransform this.scene.getElementById(yourNodeId).getComponent("transform");if (cameraTransform.worldPosition.distanceTo(modelTransform.worldPosition…

pip install albumentations安装下载遇19kB/s超级慢细水管解决办法

albumentations 是一个用于图像增强的 Python 库&#xff0c;它提供了丰富的图像变换功能&#xff0c;可以用于数据增强&#xff0c;从而提高深度学习模型的泛化能力。 直接安装命令&#xff1a; pip install albumentations但是如果半夜遇到这种19kB/s的下载速度 为头发着想&…

【C++】C++11新增语法(右值引用、完美转法)

文章目录 1.C11新增常用语法1.1 统一的列表初始化1.2 initializer_list初始化1.3 声明相关1.4 继承与多态相关 2. 右值引用与移动语义2.1 左值引用与右值引用2.2 右值引用与移动语义的使用场景2.3 右值引用引用左值(move) 3. 完美转发4. 新的类功能4.1 新增两个默认成员函数4.2…

记录两道关于编码解码的问题

环境&#xff1a;php环境即可&#xff0c;也可使用phpstudy。 参考文章: 深入理解浏览器解析机制和XSS向量编码-CSDN博客(很重要) HTML 字符编码&#xff08;自我复习&#xff09;-CSDN博客 例题1&#xff1a; <?php header("X-XSS-Protection: 0"); $xss …

Jangow-1.0.1靶机漏洞复现(未完成)

首先&#xff0c;这个靶机只能使用VirtualBox打开&#xff0c;靶机下载地址为 https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 虚拟机软件下载地址为 Download_Old_Builds – Oracle VM VirtualBox 开启靶机后访问ip进入如下页面&#xff0c;点击site进入到一个…

昇思25天学习打卡营第16天|Diffusion扩散模型,DCGAN生成漫画头像

Diffusion扩散模型 关于扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;本文的介绍是基于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;&#xff0c;DDPM已经在&#xff08;无&#xff09;条件图像/音频/视频生成领域取得…

MySQL:GROUP BY 分组查询

分组查询是SQL中一个非常强大的功能&#xff0c;它允许我们将数据按照一个或多个字段进行分组&#xff0c;并对每个分组进行聚合计算&#xff08;如求和、平均值、最大值、最小值等&#xff09;。在MySQL中&#xff0c;我们使用 GROUP BY 关键字来实现分组查询。 核心语法 SE…

Vue3自研开源Tree组件:人性化的拖拽API设计

针对Element Plus Tree组件拖拽功能API用的麻烦&#xff0c;小卷开发了一个API使用简单的JuanTree组件。拖拽功能用起来非常简单&#xff01; 文章目录 使用示例allowDragallowDrop支持节点勾选支持dirty检测后台API交互 源码实现 使用示例 组件的使用很简单&#xff1a; 通过…

4.1.2、操作系统-概述及进程管理-状态管理和前趋图

进出的组成和状态 进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和管理的基本单位,包括代码、数据和执行状态等信息。 进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。 我们电脑中的QQ影音和网易云音乐可以并…

小米手机怎么查看电池剩余容量

最近发现自己的小米11pro的待机时间越来越短了&#xff0c;怀疑是电池剩余容量太小了&#xff0c;希望测下电池剩余容量好打算是否要更换下电池。 1.抓取bug测试 首先打开拨号界面&#xff0c;输入*#*#284#*#*然后开始抓取日志。 等待bug报告生成完毕&#xff0c;然后点击就…

Git原理与用法系统总结

目录 Reference前言版本控制系统Git的诞生配置Git配置用户名和邮件配置颜色配置.gitignore文件 Git的基础用法初始化仓库克隆现有的仓库添加暂存文件提交变动到仓库比较变动查看日志Git回退Git重置暂存区 Git版本管理重新提交取消暂存撤销对文件的修改 Git分支Git分支的优势Git…

5、注册字符类设备

字符设备 cdev结构体 Linux中使用cdev结构体描述一个字符设备。结构体定义在include/linux/cdev.h 文件中&#xff0c; struct cdev{struct kobject kobj;struct module *owner; //所属模块const struct file_operations *ops; //文件操作结构体struct list_head lis…

《Java初阶数据结构》----5.<二叉树的概念及使用>

前言 大家好&#xff0c;我目前在学习java。之前也学了一段时间&#xff0c;但是没有发布博客。时间过的真的很快。我会利用好这个暑假&#xff0c;来复习之前学过的内容&#xff0c;并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…