2024牛客寒假算法基础集训营4(视频讲解题目)

2024牛客寒假算法基础集训营4(视频讲解题目)

  • 视频链接
  • A
  • B
  • C
  • D
  • E
  • F
  • G、H(下面是hard版本的代码两个都可以过)

视频链接

2024牛客寒假算法基础集训营4(视频讲解题目)
在这里插入图片描述

A

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;void solve()
{int a, b ,k;cin >> a >> b >> k;if(a >= k * b){cout << "good" << endl;}else{cout << "bad" << endl;}}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;//cin >> t;while(t--)solve();
}

B

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;void solve()
{int n; cin >> n;vector<int>a(n);int x = 0;for(int i = 0; i < n; i ++){cin >> a[i];x += (a[i] - 1);}if(x % 2){cout << "gui" << endl;}else{cout << "sweet" << endl;}}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;while(t--)solve();
}

C

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;
typedef pair<int,int> pii;
void solve()
{int n, m, x, y;cin >> n >> m >> x >> y;x -- ,y --;vector<string> g(n + 10);for(int i = 0; i < n; i ++){cin >> g[i];}int p, q; cin >> p >> q;vector<pii>ops(q);for(int i = 0; i < q; i ++){cin >> ops[i].first >> ops[i].second;}while(p--){for(int j = 0; j < q; j ++){int op = ops[j].first, z = ops[j].second - 1;if(op == 1){char s = g[z][m - 1];for(int i = m - 1; i >= 1; i --){g[z][i] = g[z][i - 1];}g[z][0] = s;}else{char s = g[n - 1][z];for(int i = n - 1; i >= 1; i --){g[i][z] = g[i - 1][z];}g[0][z] = s;}}}cout << g[x][y] << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;while(t--)solve();
}

D

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
#define int long long
using namespace std;void solve()
{int n; cin >> n;vector<int>a(n);for(int i = 0; i < n; i ++){cin >> a[i];}if(n == 1){cout << 1 << endl;return;}int s = 0;for(int i = 0; i < n; i ++){s += a[i];}int ans = 0;for(int i = 1; i <= s / i; i ++){if(s % i){continue;}int a = i, b = s / i;if(s / a >= n){ans ++;}if(a != b and s / b >= n){ans ++;}}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;//cin >> t;while(t--)solve();
}

E

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
#define int long long
using namespace std;void solve()
{int n, k; cin >> n >> k;vector<int>a(n + 1), s(n + 1);for(int i = 1; i <= n; i ++){cin >> a[i];s[i] = s[i - 1] + a[i];}int ans = 0;map<int,int>st;st[0] = 1;for(int i = 1; i <= n; i ++){int p = s[i] % k;if(st[p]){ans += st[p];st.clear();}st[p] ++;}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;//cin >> t;while(t--)solve();
}

F

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f3f3f3f3f
#define int long long 
using namespace std;
const int N = 1e3 + 10;
int a[N];
int f[N][10], g[N][10], dp[N];
int has[N][N][2];
int cal(int x, int y){if(y - x + 1 < 6){return 0;}if(has[x][y - 1][0] != INF and has[x][y - 1][1] != INF){int res = max(has[x][y - 1][1], has[x][y - 1][0] - a[y]);return res;}for(int i = x; i <= y + 1; i ++){for(int j = 0; j <= 6; j ++){f[i][j] = -INF;g[i][j] = INF;}}for(int i = x; i <= y; i ++){if(i != x){f[i][1] = max(f[i - 1][1], a[i]);g[i][1] = min(g[i - 1][1], a[i]);}else{f[i][1] = a[i];g[i][1] = a[i];}if(i - x + 1 >= 2){g[i][2] = min(g[i - 1][2], g[i - 1][1] - a[i]);f[i][2] = max(f[i - 1][2], f[i - 1][1] - a[i]);}elsecontinue;if(i - x + 1 >= 3){if(g[i - 1][2] != INF){f[i][3] = max(f[i - 1][3], max(g[i - 1][2] * a[i], f[i - 1][2] * a[i]));}else{f[i][3] = max(f[i - 1][3], f[i - 1][2] * a[i]);}if(f[i - 1][2] != -INF)g[i][3] = min(g[i - 1][3], min(g[i - 1][2] * a[i], f[i - 1][2] * a[i]));elseg[i][3] = min(g[i - 1][3], g[i - 1][2] * a[i]);}elsecontinue;if(i - x + 1 >= 4){f[i][4] = max(f[i - 1][4], f[i - 1][3] - a[i]);g[i][4] = min(g[i - 1][4], g[i - 1][3] - a[i]);}elsecontinue;if(i - x + 1 >= 5){if(g[i - 1][4] != INF)f[i][5] = max(f[i - 1][5], max(g[i - 1][4] * a[i], f[i - 1][4] * a[i]));elsef[i][5] = max(f[i - 1][5], f[i - 1][4] * a[i]);if(f[i - 1][4] != -INF)g[i][5] = min(g[i - 1][5], min(g[i - 1][4] * a[i], f[i - 1][4] * a[i]));elseg[i][5] = min(g[i - 1][5], g[i - 1][4] * a[i]);}elsecontinue;if(i - x + 1 >= 6)f[i][6] = max(f[i - 1][6], f[i - 1][5] - a[i]);}int res = 0;int xx = 0;for(int i = x; i <= y; i ++){res = max(res, f[i][6]);xx = max(xx, f[i][5]);}has[x][y][1] = res;//选6个数字的最大值has[x][y][0] = xx;//选5个数字的最大值return res;
}
void solve()
{int n; scanf("%lld", & n);for(int i = 1; i <= n; i ++){scanf("%lld", a + i);}for(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++){has[i][j][0] = has[i][j][1] = INF;}}for(int i = 1; i <= n; i ++){dp[i] = dp[i - 1];for(int j = 1; j <= i; j ++){dp[i] = max(dp[i], dp[j - 1] + cal(j, i));}}printf("%lld", dp[n]);
}signed main()
{int t = 1;while(t--)solve();
}

G、H(下面是hard版本的代码两个都可以过)

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;
const int N = 3e3 + 10;
char g[N][N];
int ul[N][N], ur[N][N], ls[N][N], rs[N][N];class BIT{
private:vector<long long>tre;int n;
public:BIT(int size): n(size), tre(size + 1, 0) {};public:int lowbit(int x){return x & -x;}void add(int pos, long long x){for(int i = pos; i <= n; i += lowbit(i))tre[i] = tre[i] + x;}long long sum(int pos){long long res = 0;for(int i = pos; i; i -= lowbit(i))res = res + tre[i];return res;}};
void solve()
{int n, m; cin >> n >> m;for(int i = 1; i <= n; i ++){string s; cin >> s;for(int j = 1; j <= m; j ++){g[i][j] = s[j - 1];}}for(int i = n; i >= 1; i --){for(int j = 1; j <= m; j ++){if(g[i][j] == '*'){ul[i][j] = ul[i + 1][j - 1] + 1;ur[i][j] = ur[i + 1][j + 1] + 1;ls[i][j] = ls[i][j - 1] + 1;}else{ul[i][j] = ur[i][j] = ls[i][j] = 0;}}for(int j = m; j >= 1; j --){if(g[i][j] == '*'){rs[i][j] = rs[i][j + 1] + 1;}else{rs[i][j] = 0;}}}long long ans = 0;for(int j = 1; j <= m; j ++){BIT t(n);//记录合法点的个数vector<vector<int>>del(n + 1);//记录在v这个点需要删除的点。for(int i = n; i >= 1; i --){if(g[i][j] == '*'){int v = i - min(ls[i][j], rs[i][j]) + 1;if(v >= 1){del[v].push_back(i);}int low = i + min(ul[i][j], ur[i][j]) - 1;ans += t.sum(low);t.add(i, 1);}for(auto x: del[i]){t.add(x, -1);}}}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;while(t--)solve();
}

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

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

相关文章

Linux(五)__系统管理

介绍 通常&#xff0c; Windows 中使用"任务管理器"主要有 3 个目的&#xff1a; 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程&#xff1b;利用"性能"和"用户"标签来判断服务器的健康状态&#xff1…

【c++】vector的增删查改

1.先定义一个类对象vector 为了防止和库里面发生冲突&#xff0c;定义一个命名空间&#xff0c;将类对象放在命名空间 里面 #include<iostream> using namespace std; namespace zjw {class vector {public:private:}; }2.定义变量&#xff0c;需要一个迭代器&#xff…

Python开发户型图编辑器-2D/3D户型图展示

在现代家居设计中&#xff0c;户型图是不可或缺的工具&#xff0c;它为设计师和业主提供了一个直观的展示和规划空间的方式。然而&#xff0c;传统的户型图编辑软件往往复杂难用&#xff0c;限制了设计师的创作灵感。我们为您带来了一款全新的Python开发的户型图编辑器&#xf…

IDEA中创建web项目(配置tomcat,tomcat启动报程序包javax.servlet.http不存在,tomcat控制台乱码问题)

文章目录 一、新建动态web项目1、新建项目2、选择创建动态web项目3、项目命名4、编辑index.jsp 二、配置Tomcat1、新增tomcat服务器配置2、选择服务器类型3、配置服务器参数4、部署项目5、完成配置6、启动运行7、访问web项目 三、tomcat启动报程序包javax.servlet.http不存在四…

数组的左旋和右旋算法

public class Test09 {public static void main(String[] args) {//右旋 数组逆序遍历&#xff0c;将尾部元素&#xff0c;不断交换至头部int[] arr {1,2,3,4,5,6,7,8};for(int i arr.length-1;i>0;i--) { //遍历一次arr[i] arr[i] ^ arr[i-1];arr[i-1] arr[i] ^ arr[i…

【maya 入门笔记】基本视图和拓扑

1. 界面布局 先看基本窗口布局&#xff0c;基本窗口情况如下&#xff1a; 就基本窗口布局的情况来看&#xff0c;某种意义上跟blender更像一点&#xff08;与3ds max相比&#xff09;。 那么有朋友就说了&#xff0c;玛格基&#xff0c;那blender最下面的时间轴哪里去了&…

Java中哪些很容易出现的坑

文章目录 1空指针2小数的计算3包装类型4Java8 Stream5日期格式化 先来一个简单一点&#xff0c;就从空指针开始吧 1空指针 //多级调用空指针userService.getUser("张三").getUserInfo().getUserName(); //例如getUser("张三")、getUserInfo&#xff08;&a…

【RT-DETR有效改进】 多维度注意力机制 | TripletAttention三重立体特征选择模块

一、本文介绍 本文给大家带来的改进是Triplet Attention三重注意力机制。这个机制&#xff0c;它通过三个不同的视角来分析输入的数据&#xff0c;就好比三个人从不同的角度来观察同一幅画&#xff0c;然后共同决定哪些部分最值得注意。三重注意力机制的主要思想是在网络中引入…

从零开始手写mmo游戏从框架到爆炸(十六)— 客户端指定回调路由与登录

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 我们这次来把注册、登录、选择英雄&#xff0c;进入主页-选择地图的功能完善。 在这之前&#xff0c;我们还要解决一个问题&#xff0c;就是服务端往客户端发消息的路由问题…

【漏洞复现】H3C 路由器多系列信息泄露漏洞

Nx01 产品简介 H3C路由器是一款高性能的路由器产品&#xff0c;具有稳定的性能和丰富的功能。它采用了先进的路由技术和安全机制&#xff0c;可以满足不同用户的需求&#xff0c;广泛应用于企业、运营商和数据中心等领域。 Nx02 漏洞描述 H3C路由器多系列存在信息泄露漏洞&…

网络爬虫基础(上)

1. 爬虫的基本原理 爬虫就是在网页上爬行的蜘蛛&#xff0c;每爬到一个节点就能够访问该网页的信息&#xff0c;所以又称为网络蜘蛛&#xff1b; 网络爬虫就是自动化从网页上获取信息、提取信息和保存信息的过程&#xff1b; 2. URL的组成部分 URL全称为Uniform Resource L…

Oracle 如何提高空间使用率?

一&#xff0c;行迁移和行链接。 oracle尽量保证一行的数据能够放在同一个数据块当中&#xff0c;有的时候行会发生行迁移和行链接。 行链接 &#xff1a;有一个列的字段是大对象&#xff08;long&#xff0c;longlong&#xff09;一行占的数据一整个块都放不下&#xff0c;则…

07 Redis之持久化(RDB+AOF)

4 Redis持久化 Redis 是一个内存数据库&#xff0c;然而内存中的数据是不持久的&#xff0c;若主机宕机或 Redis 关机重启&#xff0c;则内存中的数据全部丢失。 当然&#xff0c;这是不允许的。Redis 具有持久化功能&#xff0c;其会按照设置以快照或操作日志的形式将数据持…

Leetcode刷题笔记题解(C++):83. 删除排序链表中的重复元素

思路&#xff1a;链表相关的问题建议就是画图去解决&#xff0c;虽然理解起来很容易&#xff0c;但就是写代码写不出来有时候&#xff0c;依次去遍历第二节点如果与前一个节点相等则跳过&#xff0c;不相等则遍历第三个节点 /*** Definition for singly-linked list.* struct …

uniapp不同平台获取文件内容以及base64编码特征

前言 文件图片上传&#xff0c;客户端预览是很正常的需求&#xff0c;获取文件的md5特征码也是很正常的&#xff0c;那么&#xff0c;在uniapp中三种环境&#xff0c;h5, 小程序以及 app环境下&#xff0c;如何实现的&#xff1f; 参考&#xff1a; 如何在uniapp中读取文件Arr…

Https证书续签-acme.sh-腾讯云之DnsPod

ename 域名切换到 DnsPod 上面解析 可以先看下之前的 acme.sh 介绍文章然后再来次补充更多。 之前说过了 acme.sh 在阿里云下的使用。 这里做个后续补充 之前的域名是在 ename 上的 &#xff0c;为了自动续签切换到 DnsPod 上面解析 注意事项 可以把原来 ename 上的解析先导出…

多端开发围炉夜话

文章目录 一、多端开发 一、多端开发 uni-app 官网 UNI-APP中的UI框架&#xff1a;介绍常用的UI框架及其特点 uView UIVant WeappColor UIMint UI

python 与 neo4j 交互(py2neo 使用)

参考自&#xff1a;neo4j的python.py2neo操作入门 官方文档&#xff1a;The Py2neo Handbook — py2neo 2021.1 安装&#xff1a;pip install py2neo -i https://pypi.tuna.tsinghua.edu.cn/simple 1 节点 / 关系 / 属性 / 路径 节点(Node)和关系(relationship)是构成图的基础…

Android 7.0以上charles无法抓取部分https包问题

首先保证配置一切正确 手机通过访问chls.pro/ssl下载.pem证书&#xff0c;如无法安装&#xff0c;在文件管理器中将后缀名改为.crt 在设置中安装该证书 Charles-Proxy - SSL Proxying Setting - Include 添加需要抓包的URL:443即可 以上基本配置结束后&#xff0c;看下代码 代…

Java+SpringBoot:滑雪场管理的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…