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

2024牛客寒假算法基础集训营1(题目全解)

  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M

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

A

#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;string s; cin >> s;bool f = false, F = false;for(int i = 0; i < n; i ++){if(s[i] == 'd'){for(int j = i + 1; j < n; j ++){if(s[j] == 'f'){for(int k = j + 1; k < n; k ++){if(s[k] =='s'){f = true; }}}}}}for(int i = 0; i < n; i ++){if(s[i] == 'D'){for(int j = i + 1; j < n; j ++){if(s[j] == 'F'){for(int k = j + 1; k < n; k ++){if(s[k] =='S'){F = true; }}}}}}cout << F << " " << f << 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
#define x first
#define y second
#define int long long
using namespace std;
typedef pair<int,int> pii;
int dc[3] = {-1, 0, 1};
void solve()
{int n; cin >> n;int l = 2, r = 2;vector<pii>lp, rp;map<pii,bool>st;for(int i = 0; i < n; i ++){int r, c; cin >> r >> c;st[{c,r}] = true;if(c <= 0){lp.push_back({c, r});}else if(c > 0){rp.push_back({c, r});}}if(lp.size()){for(int i = 0; i < lp.size(); i ++){if(lp[i].first == 0 and lp[i].second == 2){if(!st[{-1, 1}]){l = min(1ll, l);}else{l = 0;}continue;}for(int j = 0; j < 3; j ++){int nc = lp[i].x + dc[j];int nr = 3 - lp[i].y;if(st[{nc, nr}]){l = 0;}else{l = min(l, 1ll);}}}}if((st[{-1, 1}] and l == 1)){st[{0, 2}] = true;}if(l == 2){st[{0, 2}] = true;}if(rp.size()){for(int i = 0; i < rp.size(); i ++){for(int j = 0; j < 3; j ++){int nc = rp[i].x + dc[j];int nr = 3 - rp[i].y;if(st[{nc, nr}]){r = 0;}else{r = min(r, 1ll);}}}}else{if(st[{0, 2}]){r = 1;}}int ans = l + r;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();
}

C

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;void solve()
{int n, q, tc; cin >> n >> q >> tc;vector<int>t(n + 1);vector<int>s(n + 1);vector<int>ss(n + 1);for(int i = 1; i <= n; i ++){cin >> t[i];}sort(t.begin() + 1, t.end());for(int i = 1; i <= n; i ++){s[i] = s[i - 1] + t[i];}for(int i = 1; i <= n; i ++){ss[i] = ss[i - 1] + s[i];}while(q--){int M; cin >> M;int l = 1, r = n;while(l < r){int mid = l + r >> 1;int cnt = n - mid + 1;if(cnt * tc <= M){r = mid;}else{l = mid + 1;}}if(l == n){if(tc > M){cout << s[n] + tc << endl;continue;} }cout << s[l - 1] + tc << 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, m; cin >> n >> m;vector<int>a(n);map<int,int>cnt;set<int>ans;ans.insert(0);for(int i = 0; i < n; i ++){cin >> a[i];cnt[a[i]] += 1;}if(n >= 30){//一定要减少绝对值不等于1的数字个数。for(auto [x, y]: cnt){if(n - cnt[x] - cnt[x - 2] > 30)continue;int mul = 1;bool flag = true;for(int i = 0; i < n; i ++){mul = mul * (a[i] - (x - 1));if(abs(mul) > 1e9){flag = false;break;}}if(flag)ans.insert(mul);mul = 1, flag = true;for(int i = 0; i < n; i ++){mul = mul * (a[i] - (x + 1));if(abs(mul) > 1e9){flag = false;break;}}if(flag)ans.insert(mul);}}else{//如果n <= 30sort(a.begin(), a.end());int tmp = a[0];for(int i = 0; i < n; i ++){a[i] -= tmp;}for(int i = -1e6; i <= 1e6; i ++){int mul = 1;bool flag = true;for(int j = 0; j < n; j ++){mul = mul * (a[j] + i);if(abs(mul) > 1e9){flag = false;break;}}if(flag)ans.insert(mul);}reverse(a.begin(), a.end());tmp = a[0];for(int i = 0; i < n; i ++){a[i] -= tmp;}for(int i = -1e6; i <= 1e6; i ++){int mul = 1;bool flag = true;for(int j = 0; j < n; j ++){mul = mul * (a[j] + i);if(abs(mul) > 1e9){flag = false;break;}}if(flag)ans.insert(mul);}}while(m--){int x; cin >> x;if(ans.count(x)){cout << "Yes" << endl;}else{cout << "No" << 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
using namespace std;
typedef pair<int,int> pii;void solve()
{int n, m; cin >> n >> m;vector<int>a(n);vector<pii>b(m);for(int i = 0; i < n; i ++){cin >> a[i];}for(int i = 0; i < m; i ++){int u, v; cin >> u >> v;u --, v --;b[i] = {u, v};}int ans = 11;function<void(int)> dfs = [&](int u)->void{if(u >= m){int sc = a[0];int top = 1;for(int i = 1; i < n; i ++){if(a[i] > sc){top ++;}}ans = min(ans, top);return;}int x = b[u].first, y = b[u].second;a[x] += 3;dfs(u + 1);//回溯a[x] -= 3;a[y] += 3;dfs(u + 1);a[y] -= 3;a[x] += 1, a[y] += 1;dfs(u + 1);a[x] -= 1, a[y] -= 1;};dfs(0);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 int long long
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;
const int N = 1e5 + 10;
const int mod = 1e9 + 7;int fact[N], infact[N];int qmi(int a, int b, int p){int res = 1;while(b){if(b & 1)res = res * a % p;a = a * a % p;b >>= 1;}return res;
}void init(){fact[0] = infact[0] = 1;for(int i = 1; i < N; i ++){fact[i] = fact[i - 1] * i % mod;infact[i] = infact[i - 1] * qmi(i, mod - 2, mod) % mod;}
}void solve()
{int n, m; cin >> n >> m;int res = 0;for(int i = 0; i <= m; i ++){if((m - i) % 2){res = ((res - (qmi(i, n, mod) * infact[i] % mod * infact[m - i] % mod)) % mod + mod) % mod;}else{res = (res + (qmi(i, n, mod) * infact[i] % mod * infact[m - i] % mod)) % mod;}}cout << res << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;init();while(t--)solve();
}

G

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define x first
#define y second
#define int long long
#define INF 0x3f3f3f3f
using namespace std;
typedef pair<int,int> pii;void solve()
{int n, m; cin >> n >> m;vector<pii>a(n + 1);for(int i = 1; i <= n; i ++){cin >> a[i].x >> a[i].y;}sort(a.begin(), a.end());vector<int>s(n + 1);for(int i = 1; i <= n; i ++){s[i] = s[i - 1] + a[i].y;}int ans = m;for(int i = n; i >= 1; i --){int dis = a[i].x - s[i];if(dis > m){continue;}ans = max(ans, m + s[i]);}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();
}

H

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;void solve()
{int n, m; cin >> n >> m;vector<int>v(n), w(n);for(int i = 0; i < n; i ++){cin >> v[i] >> w[i];}int ans = 0, pre = 0;for(int i = 31; i >= 0; i --){int x = pre;if((m >> i) & 1){x += (1 << i) - 1;pre += (1 << i);}int sum = 0;for(int j = 0; j < n; j ++){if((x | w[j]) == x){sum += v[j];}}ans = max(ans, sum);}int sum = 0;for(int j = 0; j < n; j ++){if((m | w[j]) == m){sum += v[j];}}ans = max(ans, sum);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();
}

I

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;
uniform_int_distribution<int> u1(-99,99);//生成圆心
uniform_int_distribution<int> u2(1,100);//生成半径
default_random_engine e;void test()
{int n = 1e5;double r1 = 0;for(int i = 1; i <= n; i ++){int x = u1(e), y = u1(e);while(1){int r = u2(e);if(x + r > 100 || x - r < -100 || y + r > 100 || y - r < -100){continue;}else{r1 += (r);break;}} }double r2 = 0;for(int i = 1; i <= n; i ++){while(1){int x = u1(e), y = u1(e);int r = u2(e);if(x + r > 100 || x - r < -100 || y + r > 100 || y - r < -100){continue;}else{r2 += (r);break;}} }r1 = r1 / n;r2 = r2	/ n;cout << r1 << " " << r2 << endl;
}
void solve(){int n; cin >> n;double sum = 0;for(int i = 0; i < n; i ++){int x, y, r; cin >> x >> y >> r;sum += r; }sum /= n;if((int)sum == 17){cout << "bit-noob" << endl;}else{cout << "buaa-noob" << endl;}
}
signed main()
{e.seed(time(NULL));ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;//t = 1;cin >> t;while(t--)// solve();test();
}

J

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
using namespace std;void solve()
{int n, x, y; cin >> n >> x >> y;vector<int>a(n);for(int i = 0; i < n; i ++){cin >> a[i];}auto check = [&](int dis)->bool{// cout << dis << endl;set<int>st;st.insert(x), st.insert(y);if(abs(x - y) > dis){return false;}for(int i = 0; i < a.size(); i ++){while(st.size() and abs(*st.begin() - a[i]) > dis){st.erase(st.begin());}while(st.size() and abs(*st.rbegin() - a[i]) > dis){st.erase(*st.rbegin());}if(!st.size()){return false;}st.insert(a[i]);}return true;};int l = 0, r = 1e9;while(l < r){int mid = l + r >> 1;if(check(mid)){r = mid;}else{l = mid + 1;}}cout << l << endl;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;while(t--)solve();
}

K

#include<bits/stdc++.h>
#define endl '\n'
#define deb(x) cout << #x << " = " << x << '\n';
#define INF 0x3f3f3f3f
#define int long long
using namespace std;
const int N = 1e5 + 10;
const int mod = 998244353;
int nex[N];
string choice[N];
int p[N], in[N];
bool st[N];
char t[N];
set<int> root;
int nums;int find(int x){if(x != p[x])p[x] = find(p[x]);return p[x];
}void init(int x){for(int i = 1; i <= x; i ++){p[i] = i;root.insert(i);}
}void merge(int x, int y){int px = find(x);int py = find(y);if(px != py){if(in[px]){p[px] = py;root.erase(px);}else{p[py] = px;root.erase(py);}}
}void dfs(int u, char answer){if(st[nex[u]]){if(answer == t[nex[u]]){nums ++;}return;}char nex_answer = choice[nex[u]][answer - 'A'];t[nex[u]] = answer;st[nex[u]] = true;dfs(nex[u], nex_answer);	st[nex[u]] = false;
}void solve()
{int n; cin >> n;init(n);for(int i = 1; i <= n; i ++){int x; string s;cin >> x >> s;choice[i] = s;nex[i] = x;in[x] ++;merge(x, i);}int ans = 1;for(auto x: root){for(int i = 0; i < 5; i ++){t[x] = ('A' + i);st[x] = true;dfs(x, choice[x][i]);}ans = nums * ans % mod;nums = 0;}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();
}

L

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

M

#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;if(n % 6)cout << (n / 6) * 2 << endl;elsecout << (n / 6) << 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.mzph.cn/news/668048.shtml

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

相关文章

elasticsearch重置密码操作

安装es的时候需要测试这个url&#xff1a;http://127.0.0.1:9200/ 出现弹窗让我输入账号和密码。我第一次登录&#xff0c;没有设置过账号和密码&#xff0c; 解决方法是&#xff1a;在es的bin目录下打开cmd窗口&#xff0c;敲命令&#xff1a;.\elasticsearch-reset-password…

AI新宠Arc浏览器真可以取代Chrome吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

三层交换组网实验(华为)

思科设备参考&#xff1a;三层交换组网实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 三层交换技术的出现&#xff0c;解决子网必须依赖路由器进行管理的问题&#xff0c;解决传统路由器低速、复杂所造成的网络瓶颈问题。一个具有三层交换功能的设备可简单理解为…

蓝桥杯每日一题----区间dp

前言 暂时没啥好说的&#xff0c;直接进入正题吧 引入 涂色PAINT 读题发现要求的是使一段区间满足要求的最小操作次数&#xff0c;考虑用动态规划去做。 第一步&#xff1a;考虑缩小规模&#xff0c;这里的规模其实就是区间长度&#xff0c;那么dp数组应该可以表示某个区间&…

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题一解析(选择题)

CSP-J入门组初赛模拟题一&#xff08;选择题&#xff09; 1、以下与电子邮件无关的网络协议是 A、SMTP B、POP3 C、MIME D、FTP 答案&#xff1a;D 考点分析&#xff1a;主要考查小朋友们网络相关知识的储备&#xff0c;FTP是文件传输协议和电子邮件无关&#xff0c;所以…

在vscode上传项目到gitee

一、在Gitee上新建一个仓库 Tip&#xff1a;若已经创建过了&#xff0c;直接跳到第二部分看VsCode如何上传代码到Gitee 创建仓库比较简单&#xff0c;下面两张图就是整个过程&#xff0c;这里不在赘述&#xff0c;具体如下&#xff1a; 二、VsCode连接Gitee上创建的仓…

STM32L4学习

STM32L4系列是围绕Cortex-M4构建&#xff0c;具有FPU和DSP指令集&#xff0c;主频高达80MHz。 STM32CubeL4简介 STM32Cube 是 ST 提供的一套性能强大的免费开发工具和嵌入式软件模块&#xff0c;能够让开发人员在 STM32 平台上快速、轻松地开发应用。它包含两个关键部分&…

C# 信号量(Semaphore)详细使用案例

文章目录 简介信号量的工作原理使用场景使用示例其他使用实例1. 数据库连接池管理2. 文件读写同步3. 生产者消费者问题4. 打印任务队列同步5. Web服务器并发请求限制 简介 在C#中&#xff0c;信号量&#xff08;Semaphore&#xff09;是.NET框架提供的一个同步类&#xff0c;位…

如何在Shopee平台上进行测款选品

在如今竞争激烈的电商市场&#xff0c;选择合适的产品成为卖家们提高销售业绩的重要一环。在Shopee平台上进行测款选品&#xff0c;可以帮助卖家找到符合市场需求的产品&#xff0c;提高销售业绩。本文将介绍一些策略和步骤&#xff0c;帮助卖家在Shopee平台上进行测款选品。 …

【Docker】入门到精通(常用命令解读)

一、准备工作 1.配置Docker的yum库 首先要安装一个yum工具 yum install -y yum-utils安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo2.安装Docker 执…

ReactNative实现弧形拖动条

我们直接看效果 先看下面的使用代码 <CircularSlider5step{2}min{0}max{100}radius{100}value{30}onComplete{(changeValue: number) > this.handleEmailSbp(changeValue)}onChange{(changeValue: number) > this.handleEmailDpd(changeValue)}contentContainerStyle{…

FreeCAD的python脚本编写

简介 FreeCAD是一款强大的开源CAD软件&#xff0c;可以与python无缝对解&#xff0c;使用python来驱动三维几何的构建&#xff0c;具有很高的灵活性。本文主要讨论一下录制宏的方法&#xff0c;以及如何驱动特定参数 方法 打开FreeCAD软件&#xff0c;点击录制宏按钮后&…

建筑行业数字化:从设计到运维的全面革新

随着科技的快速发展&#xff0c;数字化技术在各行各业中的应用越来越广泛。建筑行业作为传统产业&#xff0c;也在积极拥抱数字化技术&#xff0c;以提高效率、降低成本并实现可持续发展。本文将主要探讨建筑行业数字化的几个关键领域&#xff0c;包括建筑设计数字化、施工管理…

配置visualsvn提交后自动邮件通知

参考&#xff1a; https://blog.csdn.net/wiker_yong/article/details/10334967 # -*- coding: utf-8 -*- import sys import os import smtplib from email.mime.text import MIMEText from email.header import Headermail_host smtp.163.com #发送邮件的smtp地址 mail_us…

JS第二天、原型、原型链、正则

☆☆☆☆ 什么是原型&#xff1f; 构造函数的prototype 就是原型 专门保存所有子对象共有属性和方法的对象一个对象的原型就是它的构造函数的prototype属性的值。prototype是哪来的&#xff1f;所有的函数都有一个prototype属性当函数被创建的时候&#xff0c;prototype属性…

Lightroom Classic 2024 --- LR2024

Lightroom Classic 2024是一款专业的图片编辑和照片管理软件&#xff0c;旨在帮助摄影师高效地处理、编辑和展示他们的作品。通过强大的组织工具&#xff0c;用户可以轻松地管理、搜索和筛选大量的照片。该软件提供了全面的编辑工具&#xff0c;包括调整颜色、曝光、对比度、白…

Linux网络通信——TCP/OSI七层模型/TCP/IP(五层或四层模型)/HTTP报文传输原理

文章目录 消息的传输什么是OSI七层模型OSI七层模型的内容物理层&#xff08;Physical Layer&#xff09;&#xff1a;数据链路层&#xff08;Data Link Layer&#xff09;&#xff1a;网络层&#xff08;Network Layer&#xff09;&#xff1a;传输层&#xff08;Transport Lay…

On the Spectral Bias of Neural Networks论文阅读

1. 摘要 众所周知&#xff0c;过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数&#xff0c;它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题&#xff0c;为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题&#xff0c;研究人员使用傅里叶分析…

Oracle12c之Sqlplus命令行窗口基本使用

Oracle12c之Sqlplus命令行窗口基本使用 文章目录 Oracle12c之Sqlplus命令行窗口基本使用1. 连接1. 超级用户2. 普通用户1. 创建普通用2. 连接 2. 修改用户连接数1. 查看默认连接最多用户数1. PL/SQL developer中查看2. Sqlplus中查看 2. 查看目前已经连接的用户数3. 修改用户连…

设计模式-行为型模式(上)

行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务&#xff0c;它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象行为模式&#xff0c;前者采用继承机制来在类间分派行为&…