3.27学习总结 算法题
自己用c语言做的,不尽如意
后面看了题解,用的是c++,其中string 变量和字符串拼接感觉比c方便好多,可以用更少的代码实现更好的效果,打算之后去学习c++,用c++写算法。
递归,不断输入字符,若遇到[,则输入解压次数k,重新调用函数,将[中的]字符串重复k次,加在总字符串后,遇到]就返回总字符串,否则将字符加在总字符串尾。
#include<iostream>
using namespace std;
string yunqian() {int k;char ch;string s = "", str = "";while (cin >> ch) {if (ch == '[') {cin >> k;str = yunqian();while (k--) {s += str;}}else if (ch == ']') {return s;}else {s += ch;}}return s;
}
int main()
{ string s=yunqian();cout << s;return 0;
}

递推,
对于2*n的墙,当其还剩最后一列没铺时,用发a[n-1]表示,竖着铺2*1的砖即可铺满;
当其还剩最后一列没铺时,用发a[n-1]表示,横着着铺两个2*1的砖即可铺满;
当其还剩最后一列和倒数第二列的一个没铺时,用b[n-2]表示,
可以拆掉一块三单元的砖,使其变成a[n-3];
也可以拆掉一块横向2*1的砖,使其变为b[n-3];
得到公式:
a[i] = a[i - 1] + a[i - 2]d + 2 * b[i - 2];
b[i] = a[i - 1] + b[i - 1];
#include <iostream>
using namespace std;
int a[1000005],b[1000005];
int mod = 10000;
int main()
{int n;cin >> n;a[0] = 1;b[0] = 0;a[1] = 1;b[1] = 1;for (int i = 2; i <= n; i++) {a[i] = ((a[i - 1] + a[i - 2])%mod + 2 * b[i - 2]%mod)%mod;b[i] = (a[i - 1] + b[i - 1])%mod;}cout <<a[n];return 0;
}

水题,用结构体确保可以正确输入序号,为了使等待时间最短,将节水时间按从小到大排序,可得,对于第i个人,等待时间为n-乘以Ti,保留两位小数
#include <iostream>
using namespace std;
struct {int d;int i;
}a[1006],t;
int main()
{int n;double sum = 0;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i].d;a[i].i = i;}for (int i = 1; i <= n - 1; i++) {for (int j = 1+i; j <= n; j++) {if (a[i].d > a[j].d) {t = a[i];a[i] = a[j];a[j] = t;}}}for (int i = 1; i <= n; i++) {sum += (n - i)*a[i].d;}sum /= n;for (int i = 1; i <= n; i++) {cout << a[i].i<<" ";}cout << "\n";printf("%0.2f", sum);return 0;
}

贪心:
从1到n-1遍历循环,若这个盒子和下一个盒子的糖果之和大于x,则 将下个盒子的糖果吃到x颗
之后就可以成功的报错了

需要注意特殊情况,对第一个盒子单独判断,若里面的糖果数量大于x,吃掉其中糖果,直到剩下x颗糖,从二开始循环就可以ac了。
#include <iostream>
using namespace std;
int main()
{int n,x;int a[100005];long long sum = 0;cin >> n;cin >> x;cin >> a[1];if (a[1] > x) {sum += a[1] - x;a[1] = x;}for (int i = 2; i <= n; i++) {cin >> a[i];}for (int i = 1; i <= n - 1; i++) {while (a[i] + a[i + 1] > x) {sum += a[i] + a[i + 1] - x;a[i + 1] = x - a[i];}}cout << sum;
}

用结构体数组存储每场比赛的开始时间与结束时间,将数组按照结束时间升序排列。
现在的时间初始为零,从前往后循环数组,若开始时间大于等于现在的时间,则现在的时间等于这场比赛的结束时间,参加的比赛加一。
#include <iostream>
#include <algorithm>
using namespace std;
int n, t, num;
struct node{int l;int r;
}a[1000006];
bool cmp(node a, node b) {return a.r < b.r;
}
int main()
{cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i].l>> a[i].r;}sort(a+1, a + n+1,cmp);for (int i = 1; i <= n; i++) {if (a[i].l >= t) {t = a[i].r;num++;}}cout << num;return 0;}
相关文章:
3.27学习总结 算法题
自己用c语言做的,不尽如意 后面看了题解,用的是c,其中string 变量和字符串拼接感觉比c方便好多,可以用更少的代码实现更好的效果,打算之后去学习c,用c写算法。 递归,不断输入字符,…...
案例分享|树莓派媒体播放器,重构商场广告的“黄金三秒”
研究显示,与传统户外广告相比,数字户外广告在消费者心中的记忆率提高了17%,而动态户外广告更是能提升16%的销售业绩,整体广告效率提升了17%。这一显著优势,使得越来越多资源和技术流入数字广告行业。 户外裸眼3D广告 无…...
Redisson - 分布式锁和同步器
文章目录 锁(Lock)公平锁(Fair Lock)联锁(MultiLock)红锁(RedLock) 【已废弃】读写锁(ReadWriteLock)信号量(Semaphore)可过期许可信号…...
Zustand 状态管理:从入门到实践
Zustand 状态管理:从入门到实践 Zustand 是一个轻量、快速且灵活的 React 状态管理库。它基于 Hooks API,提供了简洁的接口来创建和使用状态,同时易于扩展和优化。本文将通过一个 TODO 应用实例带你快速入门 Zustand,并探讨其核心…...
[RITSEC CTF 2025] Crypto
这个忘打了,难度不小。 Alien Encryption 101 一个很小的RSA,略 Cuwves 2 Electric Boogaloo 已知p,在p^2下的两个椭圆曲线的j不变量,直接用函数 Mothership AES_CBC加密给出密文和IV,通过调整IV来修改明文 import base64 …...
算法250327题目
1114: 4006 AB问题 题目描述 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号,隔开。 现在请计算AB的结果,并以正常形式输出。 输入 输入包含多组数据,每组数据占一行,由两个整数A和B组成&am…...
PGP实现简单加密教程
模拟情景: 假设001和002两位同学的电脑上都安装了PGP,现在两人需要进行加密通讯。 一、创建密钥 1.新建密钥,输入名称和邮箱,输入8位口令,根据指示完成。 2.将其添加到主密钥,鼠标右击出现选项。 这里出…...
7.8 窗体间传递数据
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 当项目中有多个窗体时(在本节中为两个窗体:Form1和Form2),窗体间传递数据有以下几种方…...
一文了解 MCP Server:AI 工具与外部世界的桥梁
引言 随着大语言模型(LLM)的普及与 AI Agent 的爆发,Anthropic 于 2024 年底提出并开源的 Model Context Protocol(MCP,模型上下文协议)成为构建智能体系统的关键基石之一。本文将结合最新的实战经验&#…...
【redis】集群 数据分片算法:哈希求余、一致性哈希、哈希槽分区算法
文章目录 什么是集群数据分片算法哈希求余分片搬运 一致性哈希扩容 哈希槽分区算法扩容相关问题 什么是集群 广义的集群,只要你是多个机器,构成了分布式系统,都可以称为是一个“集群” 前面的“主从结构”和“哨兵模式”可以称为是“广义的…...
基于Springboot的网上订餐系统 【源码】+【PPT】+【开题报告】+【论文】
网上订餐系统是一个基于Java语言和Spring Boot框架开发的Web应用,旨在为用户和管理员提供一个便捷的订餐平台。该系统通过简化餐饮订购和管理流程,为用户提供快速、高效的在线订餐体验,同时也为管理员提供完善的后台管理功能,帮助…...
Redis常见面试问题汇总
Redis 面试笔记整理 一、Redis 基础知识1. Redis 概述Redis 是什么?主要特点有哪些?Redis 和 Memcached 的区别是什么?Redis 是单线程还是多线程?为什么单线程还能高效?Redis 6.0 之后的多线程模型是怎样的?…...
【redis】集群 如何搭建集群详解
文章目录 集群搭建1. 创建目录和配置2. 编写 docker-compose.yml完整配置文件 3. 启动容器4. 构建集群超时 集群搭建 基于 docker 在我们云服务器上搭建出一个 redis 集群出来 当前节点,主要是因为我们只有一个云服务器,搞分布式系统,就比较…...
NLP高频面试题(二十)——flash attention原理
FlashAttention是一种针对Transformer模型中自注意力机制的优化算法,旨在提高计算效率并降低内存占用,特别适用于处理长序列任务。 在Transformer架构中,自注意力机制的计算复杂度和内存需求随着序列长度的平方增长。这意味着当处理较长序列时…...
飞牛NAS本地部署小雅Alist结合内网穿透实现跨地域远程在线访问观影
文章目录 前言1. VMware安装飞牛云(fnOS)1.1 打开VMware创建虚拟机1.3 初始化系统 2. 飞牛云搭建小雅Alist3. 公网远程访问小雅Alist3.1 安装Cpolar内网穿透3.2 创建远程连接公网地址 4. 固定Alist小雅公网地址 前言 嘿,小伙伴们,…...
Episode, time step, batch, epoch
1. Episode(回合) 回合(episode)表示智能体从开始执行任务到完成任务(例如成功到达目标或触发失败条件)的全过程。 例如,如果我们训练一个四足机器人走到一个目标点,一个回合就是从…...
Linux版本控制器Git【Ubuntu系统】
文章目录 **前言**一、版本控制器二、Git 简史三、安装 Git四、 在 Gitee/Github 创建项目五、三板斧1、git add 命令2、git commit 命令3、git push 命令 六、其他1、git pull 命令2、git log 命令3、git reflog 命令4、git stash 命令 七、.ignore 文件1、为什么使用 .gitign…...
browser-use 库网页元素点击测试工具
目录 代码代码解释输出结果 代码 import asyncio import jsonfrom browser_use.browser.browser import Browser, BrowserConfig from browser_use.dom.views import DOMBaseNode, DOMElementNode, DOMTextNode from browser_use.utils import time_execution_syncclass Eleme…...
Vue 中使用 ECharts
在 Vue 中使用 ECharts 主要分为以下步骤,结合代码示例详细说明: 1. 安装 ECharts 通过 npm 或 yarn 安装 ECharts: npm install echarts --save # 或 yarn add echarts2. 基础使用(完整引入) 在 Vue 组件中使用 &…...
Spring AI + DeepSeek 构建大模型应用 Demo
Spring AI + DeepSeek 构建大模型应用 Demo 下面我将展示如何使用 Spring AI 框架结合 DeepSeek 的大模型能力构建一个简单的 AI 应用。 1. 环境准备 首先确保你已安装: JDK 17+Maven 3.6+Spring Boot 3.2+2. 创建 Spring Boot 项目 使用 Spring Initializr 创建项目,添加…...
解决GitLab无法拉取项目
1、验证 SSH 密钥是否已生成 ls ~/.ssh/ 如果看到类似 id_rsa 和 id_rsa.pub 的文件,则说明已存在 SSH 密钥。 避免麻烦,铲掉重来最方便。 如果没有,请生成新的 SSH 密钥: ssh-keygen -t rsa -b 4096 -C "your_emailexam…...
POSIX 线程取消与资源清理完全指南
POSIX 线程取消与资源清理完全指南 引言:为什么需要线程取消机制? 在多线程编程中,优雅地终止线程并确保资源释放是开发者面临的重要挑战。直接终止线程可能导致内存泄漏、文件未关闭等问题。POSIX 线程库提供了一套完整的线程取消和清理机…...
FPGA学习篇——Verilog学习之寄存器的实现
1 寄存器理论 这里在常见的寄存器种加了一个复位信号sys_rst_n。(_n后缀表示复位信号低电平有效,无这个后缀的则表示高电平有效) 这里规定在时钟的上升沿有效,只有当时钟的上升沿来临时,输出out 才会改变,…...
Cursor异常问题全解析-无限使用
title: Cursor异常问题全解析无限使用 tags: cursor categories:aiai编程 mathjax: true description: Cursor异常问题全解析与解决方案大全 abbrlink: 64908bd0 date: 2025-03-19 14:48:32 🤖 Assistant 🚨 Cursor异常问题全解析与解决方案大全 &…...
【VUE】ant design vue实现表格table上下拖拽排序
适合版本:ant design vue 1.7.8 实现效果: 代码: <template><div class"table-container"><a-table:columns"columns":dataSource"tableData":rowKey"record > record.id":row…...
Vue实现动态数据透视表(交叉表)
需求:需要根据前端选择的横维度、竖维度、值去生成一个动态的表格,然后把交叉的值放入到对应的横维度和竖维度之下,其实就是excel里面的数据透视表功能,查询交叉语句为sql语句。 实现页面: 选择一下横维度、竖维度、值之后点击查…...
推荐《人工智能算法》卷1、卷2和卷3 合集3本书(附pdf电子书下载)
今天,咱们就一同深入探讨人工智能算法的卷1、卷2和卷3,看看它们各自蕴含着怎样的奥秘,并且附上各自的pdf电子版免费下载地址。 《人工智能算法(卷1):基础算法》 下载地址:https://www.panziye…...
元宇宙浪潮下,数字孪生如何“乘风破浪”?
在当今科技飞速发展的时代,元宇宙的概念如同一颗璀璨的新星,吸引了全球的目光。元宇宙被描绘为一个平行于现实世界、又与现实世界相互影响且始终在线的虚拟空间,它整合了多种前沿技术,为人们带来沉浸式的交互体验。而数字孪生&…...
WPF 附加属性
在WPF(Windows Presentation Foundation)中,附加属性(Attached Properties)是一种特殊的依赖属性机制,它允许父元素为子元素提供额外的属性支持。这种特性特别适用于布局系统、输入处理和其他需要跨多个控件…...
数据分析 之 怎么看懂图 一
韦恩图怎么看 ①颜色:不同颜色代表不同的集合 ②)颜色重叠部分:表示相交集合共有的元素 ③颜色不重叠的部分:表示改集合独有的元素 ④数字:表示集合独有或共有的元素数量 ⑤百分比:表示该区域元素数占整体的比例 PCA图怎么看 ① 第一主成分坐标轴及主成分贡献率主成分贡献…...
