2025牛客寒假算法基础集训营6

A.复制鸡

思路:比较简单,略。

void solve()
{int n, m, k;cin >> n;int last = -1, ans = 0;for (int i = 0; i<n; i++){int x;cin >> x;if (x != last){ans++;}last = x;}cout << ans << endl;
}

B.好伙计猜拳

思路:这道题和最长子序列相似,在符合时加1,而这里是加惩罚值,并且又有交换的条件,所以开二维数组来进行动态转移。

void solve()
{int n, c1, c2;cin >> n >> c1 >> c2;vector<int> a(n+1), b(n+1);for (int i = 1; i<=n; i++){cin >> a[i] >> b[i];}vector<vector<int>> dp(n+1, vector<int>(2, INF));dp[0][0] = 0;int ans = INF;for (int i = 1; i<=n; i++){for (int j = 0; j<i; j++){if (a[j] <= a[i] && b[j] <= b[i]) // (aj, bj) -> (ai, bi)dp[i][0] = min(dp[i][0], dp[j][0]+c1*(i-j-1));if (a[j] <= b[i] && b[j] <= a[i]) // (bj, aj) -> (ai, bi)dp[i][0] = min(dp[i][0], dp[j][1]+c1*(i-j-1));}for (int j = 0; j<i; j++){    if (a[j] <= b[i] && b[j] <= a[i]) // (aj, bj) -> (bi, ai)dp[i][1] = min(dp[i][1], dp[j][0]+c1*(i-j-1));if (b[j] <= b[i] && a[j] <= a[i]) // (bj, aj) -> (bi, ai)dp[i][1] = min(dp[i][1], dp[j][1]+c1*(i-j-1));}dp[i][1] += c2;ans = min({ans, dp[i][0]+c1*(n-i), dp[i][1]+c1*(n-i)});}cout << ans << endl;
}

C.数列之和

思路:这道题可以打表观察出来规律,之前以为会是加2和加4的规律,发现并没有什么规律,再仔细观察,查看缺失值是哪些,发现是2^p (p!=1),所以就简单了,二分一下就能做出来,并注意二分的左右取值,1e18大概是2^{60},以为k的范围到1e18,其中并不可能缺失一半,所以假设k的范围为2e18,所以来确定取值,如果取值太大后对2取指数会超范围。

int qpow(int a, int b) {int res = 1;while (b) {if (b & 1) res *= a) ; a *= a ;b >>= 1;}return res;
}void solve()
{int n, m, k;cin >> n;if (n == 1){cout << 2 << endl;return ;}auto check = [&](int x)->bool{int p = qpow(2, x);return p/2-(x-1) >= n;};int l = 0, r = 125;while (l+1 < r){int mid = (l+r) >> 1;if (check(mid)) r = mid;else l = mid;}cout << 2*(r+n-2) << endl;
}

F.薪得体会

void solve()
{int n, m, k;cin >> n;vector<node> s(n+1);for (int i = 1; i<=n; i++){cin >> s[i].a >> s[i].b;s[i].sum = s[i].a + s[i].b;}int ans = 0;sort(s.begin()+1, s.end(), [&](node x, node y){return x.sum < y.sum;});vector<int> mx(n+1);for (int i = 1; i<=n; i++) mx[i] = max(mx[i-1], s[i].a+s[i].b);for (int i = 1; i<=n; i++){if (ans >= s[i].a) ans = max(ans, s[i].sum);else ans = max(ans, s[i-1].sum);ans = max(ans, s[i].a);}cout << ans << endl;
}

H.小鸡的排列构造

void solve()
{int n, m;cin >> n >> m;int l, r, c;for (int i = 0; i<m; i++){cin >> l >> r >> c;}if ((l-r+1) % 2 == 0){for (int i = n; i>=1; i--){cout << i << " \n"[i==1];}return ;}else{vector<int> a(n+1);iota(a.begin()+1, a.end(), 1);sort(a.begin()+1, a.end(), greater<int>());for (int i=n; i>=2; i-=2){swap(a[i], a[i-1]);}for (int i = 1; i<=n; i++){cout << a[i] << " \n"[i==n];}}
}

I.小鸡的排列构造的checker

struct query{int l, r, c;
};
class Fenwick{
public:vector <int> tree;int n;Fenwick (){}Fenwick (int x){init(x);}void init(int x){n = x;tree.resize(n + 1);}int lowbit(int x){return x & (-x);}void add(int x, int k){for(; x <= n; x += lowbit(x))tree[x] += k;}int qsum(int x){int ans = 0;for(; x; x -= lowbit(x))ans += tree[x];return ans;}void clean(){for(int i = 1; i <= n; i ++) tree[i] = 0;}
};
void solve()
{int n, m, k;cin >> n >> m;Fenwick fen(n);vector<int> pos(n+1), val(n+1);for (int i = 1; i <= n; i++) {cin >> val[i];pos[val[i]] = i;}vector<query> que(m+1);vector<vector<int>> q(n+1);for (int i = 0; i<m; i++){cin >> que[i].l >> que[i].r >> que[i].c;q[val[que[i].c]].push_back(i);}vector<int> ans(m);for (int i = 1; i<=n; i++){for (int j: q[i]) ans[j] = fen.qsum(que[j].r)-fen.qsum(que[j].l-1)+que[j].l;fen.add(pos[i], 1);}for (int i=0; i<m; i++){cout << ans[i] << "\n";}
}

J.铁刀磨成针

void solve()
{int n, x, y;cin >>n >> x >> y;auto dc = [&](int s, int xs)->int{int res = (s+(s-xs+1))*xs/2;return res;};int ans = 0;for (int i = 1; i<=min(n, y); i++){int now = x+i;int sum = now*(min(n, y)-i);sum += dc(now, min(now, n-min(n, y)+1));ans = max(ans, sum);}cout << ans << endl;
}

K.鸡翻题

void solve()
{int n, x, y;cin >> x >> y;if (y % 2 == 0){cout << "NO" << endl;return ;}if (x % 2 == 0){if (y % 4 == 1){cout << "YES" << endl;return ;}else {cout << "NO" << endl;return ;}}else {if (y % 4 == 3){cout << "YES" << endl;return ;}else {cout << "NO" << endl;return ;}}
}

 L.变鸡器

void solve()
{int n, m, k;cin >> n;string s, st = "CHICKEN";cin >> s;map<char, int> mp;mp['C'] = -2, mp['H'] = -1, mp['I'] = -1, mp['K']=-1, mp['E']=-1, mp['N'] = -1;int num = 0;for (int i = 0; i<n; i++){if (s[i] == st[num]) num++;mp[s[i]]++;}if (num != 7){cout << "NO" << endl;return ;}if ((n-num)%2){cout << "NO" << endl;return ;}vector<int> sb;for (auto [x, nn] : mp){sb.push_back(nn);}int max_num = *max_element(sb.begin(), sb.end());int sum = accumulate(sb.begin(), sb.end(), 0ll);if (max_num <= sum/2){cout << "YES" << endl;}else cout << "NO" << endl;
}

思路待更新。。。

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

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

相关文章

【C#】详解C#中的内存管理机制

文章目录 前言一、C#内存管理的基本机制&#xff08;1&#xff09;托管堆&#xff08;Managed Heap&#xff09;&#xff08;2&#xff09;垃圾回收&#xff08;Garbage Collection&#xff09;&#xff08;3&#xff09;栈内存 二、 开发者需要主动管理的场景&#xff08;1&am…

ROS云课基础题库-01C++案例-甜甜圈

效率是核心&#xff0c;但效率高的教程会忽略掉非常多的细节。 解决问题的思路和细节对于一个问题的有效求解至关重要。 资料 云课五分钟-02第一个代码复现-终端甜甜圈C-CSDN博客 从云课五分钟到五秒钟焦虑的甜甜圈向前冲-CSDN博客 说明 复现重要性没有那么大&#xff0c;…

C/S架构与B/S架构

一、定义与核心区别 C/S架构&#xff08;Client/Server&#xff0c;客户端/服务器&#xff09; 客户端需安装专用软件&#xff08;如QQ、企业ERP系统&#xff09;&#xff0c;直接与服务器通信。服务器端通常包括数据库和业务逻辑处理1。特点&#xff1a;客户端承担部分计算任务…

【汇编语言】单片机程序执行过程

一、任务需求 指示灯LED4闪烁&#xff0c;亮0.5秒&#xff0c;灭0.5秒&#xff0c;无限循环 二、针对硬件的编程 1、确定原理图2、确定硬件的物理关系 三、设计步骤 1.用自己的语言描述工作流程 1.1指示灯LED4亮1.2延时0.5秒1.3指示灯LED4灭1.4延时0.5秒1.5跳转到1.1步 …

openharmony 富对富 WiFi投屏设计

castengine_wifi_display部件别名Sharing&#xff0c;媒体分享之意。拥有流媒体协议接入、媒体预览、媒体转分发能力&#xff0c;受投播管理服务管理和调用&#xff0c;是音视频投播子系统重要的流媒体能力部件。提供一套简单的Native C的接口&#xff0c;主要业务是Miracast投…

Android项目优化同步速度

最近项目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg库&#xff0c;发现原来通过google官方的代码仓&#xff0c;下载太慢了&#xff0c;每秒KB级别的速度。&#xff08;之前下gradle/gradle plugin都不至于这么慢&#xff09;&#xff0c;于是想到配置国内镜像源来提…

Git 如何配置多个远程仓库和免密登录?

自我简介&#xff1a;4年导游&#xff0c;10年程序员&#xff0c;最近6年一直深耕低代码领域&#xff0c;分享低代码和AI领域见解。 通用后台管理系统 代号&#xff1a;虎鲸 缘由 每次开发后台界面都会有很多相同模块&#xff0c;尝试抽离出公共模块作为快速开发的基座。 目标…

JVM组成面试题及原理

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收机制 JVM由哪些部分组成&#xff0c;运行流程是什么&#xff1f;…

江科大51单片机笔记【11】AT24C02数据存储秒表

一、数据存储 先把需要的模块导入做个测试 //main.c#include <REGX52.H> #include " LCD1602.h" #include " Key.h"void main() {LCD_Init();LCD_ShowString(1,1,"Hello");while(1){}} 代码思路 分成两块写&#xff0c;一块写I2C.c&am…

Hadoop的运行模式

Hadoop的运行模式 1、本地运行模式2、伪分布式运行模式3、完全分布式运行模式4、区别与总结 Hadoop有三种可以运行的模式&#xff1a;本地运行模式、伪分布式运行模式和完全分布式运行模式 1、本地运行模式 本地运行模式无需任何守护进程&#xff0c;单机运行&#xff0c;所有…

2.装饰器模式

概述 装饰器模式&#xff1a;在原有结构&#xff0c;动态地为对象添加职责&#xff0c;它是一种灵活的扩展功能方式。 业务场景&#xff1a;创建订单 假设你正在开发一个电商系统&#xff0c;用户在创建订单时可以选择不同的服务&#xff08;如折扣、配送、礼品包装等&#…

C++11新特性 10.初始化列表、initializer_list

目录 一.初始化列表 使用示例 二.initializer_list 1.基本概念 2.使用示例 一.初始化列表 C11提供的统一初始化方式&#xff0c;实现直接对数据初始化 使用示例 /* 初始化列表 */ #include <iostream> using namespace std; class Person { public:Person(string…

Vue 的 render 函数如何与 JSX 结合使用

在 Vue.js 中&#xff0c;render 函数提供了一种更底层的方式来创建虚拟 DOM 节点&#xff0c;而 JSX 则是一种 JavaScript 的语法扩展&#xff0c;允许开发者在 JavaScript 代码中直接编写类似 HTML 的结构。结合使用 render 函数和 JSX 可以带来更高的灵活性和编程能力&#…

基于DeepSeek的智慧医药系统(源码+部署教程)

运行环境 智慧医药系统运行环境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技术栈&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧医药系统主要分为两个角色。 游客 尚未进行注册和登录。具备登录注册、…

南开提出1Prompt1Story,无需训练,可通过单个连接提示实现一致的文本到图像生成。

&#xff08;1Prompt1Story&#xff09;是一种无训练的文本到图像生成方法&#xff0c;通过整合多个提示为一个长句子&#xff0c;并结合奇异值重加权&#xff08;SVR&#xff09;和身份保持交叉注意力&#xff08;IPCA&#xff09;技术&#xff0c;解决了生成图像中身份不一致…

BLUEM2引擎源码2025最新版

BLUE 引擎解析&#xff1a;传奇私服圈中的热门引擎 一、BLUE 引擎简介 BLUE 引擎是传奇私服圈子中较为知名的一款游戏引擎&#xff0c;它在传统的传奇引擎基础上进行了优化和扩展&#xff0c;使得私服开发者可以更加方便地搭建和管理服务器。相比于早期的 GEE、LEG、Hero 等引…

第53天:Web攻防-SQL注入数据库类型用户权限架构分层符号干扰利用过程发现思路

#知识点&#xff1a;(本节课了解即可&#xff09; 1、Web攻防-SQL注入-产生原理&应用因素 2、Web攻防-SQL注入-各类数据库类型利用 一、数据库知识&#xff1a; 1、数据库名&#xff0c;表名&#xff0c;列名&#xff0c;数据 2、自带数据库&#xff0c;数据库用户及权限 3…

【玩转MySQL数据字典】MySQL数据字典与常用操作指令

MySQL数据字典简介与常用操作指令 一、数据字典简介 数据字典是MySQL 5.7中用于存储数据库对象元数据的系统表。在MySQL的早期版本中&#xff0c;元数据存储在.frm文件及其他文件里。这种存储方式存在诸多弊端&#xff0c;例如元数据不一致问题&#xff0c;不同文件间元数据的…

如何有效判断与排查Java GC问题

目录 一、GC的重要性与对性能的影响 &#xff08;一&#xff09;GC对性能的影响简要分析 1.GC暂停与应用停顿 2.GC吞吐量与资源利用率 3.GC对内存管理的作用&#xff1a;资源回收 4.GC策略与优化的选择 &#xff08;二&#xff09;GC的双刃剑 二、GC性能评价标准 &…

el-table(elementui)表格合计行使用以及滚动条默认样式修改

一、el-table新增合计行以及el-table展示数据出现的问题 1. 使用合计行 el-table的属性show-summary设为true&#xff0c;即可在表格尾部展示合计行。默认情况下&#xff0c;第一列不展示数据&#xff0c;而显示合计二字&#xff0c;可以通过sum-text自己配置&#xff0c;其余…