Codeforces Round 855 (Div. 3)

A. Is It a Cat?

去重, 把所有字符看成大写字符, 然后去重, 观察最后结果是不是“MEOW”

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::string ans, t;std::cin >> ans;for (int i = 0; i < n; i++) {if(ans[i] >= 'a') ans[i] = ans[i] - 'a' + 'A';if(t.size() == 0) {t += ans[i];}else {if(ans[i] != t.back()) t += ans[i]; }}if(t == "MEOW") {std::cout << "YES\n";}else{std::cout << "NO\n";}
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

B. Count the Number of Pairs

统计每一个字符, 计算可以贡献多少。计算t(最多可以操作几次)
取min(k, t) 即可

#include <bits/stdc++.h>
#define int long longvoid solve() {int n, k;std::cin >> n >> k;std::string s;std::cin >> s;std::map<char, int> mp;for (auto x : s) mp[x]++;int ans = 0, t = 0;for (char i = 'A'; i <= 'Z'; i++) {char ch = i - 'A' + 'a';ans += std::min(mp[i], mp[ch]);int x = abs(mp[i] - mp[ch]);t += x / 2;}std::cout << ans + std::min(t, k) << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

C2. Powering the Hero (hard version)

简单的优先队列

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::priority_queue<int, std::vector<int>, std::less<int>> pq;int ans = 0;for (int i = 0; i < n; i++) {int x;std::cin >> x;if(x == 0) {if(pq.size()) {ans += pq.top();pq.pop();}}else pq.push(x);}std::cout << ans << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

D. Remove Two Letters

通过观察可以发现, 如果s[i]s[i + 1] == s[i + 1][i + 2] || s[i]s[i + 1] == s[i + 2]s[i + 1] 时, 这两种操作的结果时相同的, 遍历模拟即可

#include <bits/stdc++.h>
#define int long longvoid solve() {int n;std::cin >> n;std::string s;std::cin >> s;int ans = 0;std::string t = "";for (int i = 0; i < n - 1; i++) {std::string x = t;reverse(x.begin(), x.end());if(s.substr(i, 2) != t && s.substr(i, 2) != x) {ans++;t = s.substr(i, 2);}}std::cout << ans << '\n';
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

E2. Unforgivable Curse (hard version)

通过理解题意, 发现可以找出所有可以相互交换的下标,归为一组,可以通过并查集。然后统计每一组s 和 t 的这些下标组成的字符种类和个数是否相同, 如果不同直接输出"NO", 具体实现见代码

#include <bits/stdc++.h>
#define int long long
int p[200010];
int find(int x) {if(p[x] != x) p[x] = find(p[x]);return p[x];
}void solve() {int n, k;std::cin >> n >> k;std::string s, t;std::cin >> s >> t;for (int i = 0; i < n; i++) p[i] = i;for (int i = 0; i < n; i++) {if(i + k >= n) break;p[find(i)] = find(i + k);if(i + k + 1 < n) p[find(i)] = find(i + k + 1); }std::map<int, std::vector<int>> mp;for (int i = 0; i < n; i++) {mp[find(i)].push_back(i);}// std::cout << mp.size() << '\n';for (auto& [k, arr] : mp) {std::vector<int> cnt(26);for (auto& x : arr) {cnt[s[x] - 'a']++;cnt[t[x] - 'a']--;}for (int i = 0; i < 26; i++) {if(cnt[i]) {std::cout << "NO\n";return;}}}std::cout << "YES\n";
}signed main() {int t = 1;std::cin >> t;while(t--) solve();return 0;
}

F. Dasha and Nightmares

类似于前缀和, 状态压缩一下。具体看代码

很容易超时,所以不能使用map,

#include <bits/stdc++.h>
#define int long longstruct custom_hash {static uint64_t splitmix64(uint64_t x) {x += 0x9e3779b97f4a7c15;x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;x = (x ^ (x >> 27)) * 0x94d049bb133111eb;return x ^ (x >> 31);}size_t operator()(uint64_t x) const {static const uint64_t FIXED_RANDOM = std::chrono::steady_clock::now().time_since_epoch().count();return splitmix64(x + FIXED_RANDOM);}
};void solve() {std::vector<int> target(26);for (int i = 0; i < 26; i++) {target[i] = ((1 << 26) - 1) ^ (1 << i);}int n;std::cin >> n;int ans = 0;std::unordered_map<int, int, custom_hash> mp[26];for (int i = 0; i < n; i++) {int mask = 0;std::string s;std::cin >> s;std::vector<int> cnt(26);for (auto x : s) {cnt[x - 'a']++;}for (int i = 0; i < 26; i++) {if(cnt[i] & 1) {mask |= (1 << i);}}for (int i = 0; i < 26; i++) {if(cnt[i] == 0 && mp[i].count(target[i] ^ mask)) {ans += mp[i][target[i] ^ mask];}}for (int i = 0; i < 26; i++) {if (cnt[i] == 0) {mp[i][mask]++;}}}std::cout << ans << '\n';
}signed main() {int t = 1;// std::cin >> t;while(t--) solve();return 0;
}

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

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

相关文章

Scrapy选择器深度指南:CSS与XPath实战技巧

引言&#xff1a;选择器在爬虫中的核心地位在现代爬虫开发中&#xff0c;​​选择器​​是数据提取的灵魂工具。根据2023年网络爬虫开发者调查数据显示&#xff1a;​​92%​​ 的数据提取错误源于选择器编写不当熟练使用选择器的开发效率相比新手提升 ​​300%​​同时掌握CSS…

Windos服务器升级MySQL版本

Windos服务器升级MySQL版本 1.备份数据库 windows下必须以管理员身份运行命令行工具进行备份&#xff0c;如果没有配置MySQL的环境变量&#xff0c;需要进入MySQL Server 的bin目录输入指令&#xff0c; mysqldump -u root -p --all-databases > backup.sql再输入数据库密码…

告别频繁登录!Nuxt3 + TypeScript + Vue3实战:双Token无感刷新方案全解析

前言 在现代 Web 应用中&#xff0c;身份认证是保障系统安全的重要环节。传统的单 Token 认证方式存在诸多不足&#xff0c;如 Token 过期后需要用户重新登录&#xff0c;影响用户体验。本文将详细介绍如何在 Nuxt3 TypeScript Vue3 项目中实现无感刷新 Token 机制&#xff…

Linux——Redis

目录 一、Redis概念 1.1 Redis定义 1.2 Redis的特点 1.3 Redis的用途 1.4 Redis与其他数据库的对比 二、Redis数据库 三、Redis五个基本类型 3.1 字符串 3.2 列表(list) ——可以有相同的值 3.3 集合(set) ——值不能重复 3.4 哈希(hash) ——类似于Map集合 3.5 有序…

【AI大模型】部署优化量化:INT8压缩模型

INT8&#xff08;8位整数&#xff09;量化是AI大模型部署中最激进的压缩技术&#xff0c;通过将模型权重和激活值从FP32降至INT8&#xff08;-128&#xff5e;127整数&#xff09;&#xff0c;实现4倍内存压缩2-4倍推理加速&#xff0c;是边缘计算和高并发服务的核心优化手段。…

LFU 缓存

题目链接 LFU 缓存 题目描述 注意点 1 < capacity < 10^40 < key < 10^50 < value < 10^9对缓存中的键执行 get 或 put 操作&#xff0c;使用计数器的值将会递增当缓存达到其容量 capacity 时&#xff0c;则应该在插入新项之前&#xff0c;移除最不经常使…

检查输入有效性(指针是否为NULL)和检查字符串长度是否为0

检查输入有效性&#xff08;指针是否为NULL&#xff09;和检查字符串长度是否为0 这两个检查针对的是完全不同的边界情况&#xff0c;都是必要的防御性编程措施&#xff1a; 1. 空指针检查 if(!src) 目的&#xff1a;防止解引用空指针场景&#xff1a;当调用者传入 NULL 时风险…

Apache POI 的 HSSFWorkbook、SXSSFWorkbook和XSSFWorkbook三者的区别

HSSFWorkbook 专用于处理Excel 97-2003&#xff08;.xls&#xff09;格式的二进制文件。基于纯Java实现&#xff0c;所有数据存储在内存中&#xff0c;适合小规模数据&#xff08;通常不超过万行&#xff09;。内存占用较高&#xff0c;但功能完整&#xff0c;支持所有旧版Exce…

冷冻电镜重构的GPU加速破局:从Relion到CryoSPARC的并行重构算法

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 一、冷冻电镜重构的算力困局 随着单粒子冷冻电镜&#xff08;cryo-EM&#xff09;分辨率突破…

算法学习笔记:16.哈希算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题

在计算机科学中&#xff0c;哈希算法&#xff08;Hash Algorithm&#xff09;是一种将任意长度的输入数据映射到固定长度输出的技术&#xff0c;其输出称为哈希值&#xff08;Hash Value&#xff09;或散列值。哈希算法凭借高效的查找、插入和删除性能&#xff0c;在数据存储、…

16018.UE4+Airsim仿真环境搭建超级详细

文章目录 1 源码下载2 下载安装软件2.1 安装 UE4 软件2.2 安装visual studio 20223 编译airsim源码4 进入AirSim工程,打开工程5 UE4 工程创建5.1 下载免费场景 CityPark,并创建工程5.2 工程编译5.2.1 将airsim 插件拷贝到 UE4工程路径中5.2.2 修改工程配置文件5.2.3 创建c++类…

Python 实战:构建 Git 自动化助手

在多项目协作、企业级工程管理或开源社区维护中&#xff0c;经常面临需要同时管理数十甚至上百个 Git 仓库的场景&#xff1a;多仓库需要统一 pull 拉取更新定期向多个项目批量 commit 和 push自动备份 Git 项目批量拉取私有仓库并管理密钥为解决这类高频、重复、机械性工作&am…

【PTA数据结构 | C语言版】出栈序列的合法性

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 给定一个最大容量为 m 的堆栈&#xff0c;将 n 个数字按 1, 2, 3, …, n 的顺序入栈&#xff0c;允许按任何顺序出栈&#xff0c;则哪些数字序列是不可能得到的&#xff1f;例如给定 m5、n7&#xf…

【LangGraph】create_react_agent 方法详细解释

create_react_agent 方法详细解释 create_react_agent 方法是一个在 LangGraph 中创建 React 代理的核心函数,接下来我们将一起探讨这个函数的作用、参数、返回值以及工作原理。 @_convert_modifier_to_prompt def create_react_agent(model: Union[str, LanguageModelLike]…

【时间之外】尘封的智能套件复活记

目录 尘封的奖品 初次触网的挫败 客服只会诱导消费 意外发现的生机 真相与反思 尘封的奖品 五年前那个蝉鸣阵阵的夏日&#xff0c;我抱着创新比赛特等奖的奖品礼盒走下领奖台时&#xff0c;绝对想不到这份荣誉会衍生出如此曲折的故事。礼盒里静静躺着的智能家居套装&…

从零开始学前端html篇1

1基本结构<!DOCTYPE html> <html><head><title>this is a good website</title></head><body><h1>hello!</h1></body> </html>运行效果如下&#xff08;编辑器提示waings:"缺少所需的 lang 特性"…

Redis Cluster 手动部署(小白的“升级打怪”成长之路)

目录 一、环境规划 二、基础环境 1、创建配置目录 2、生成配置文件 3、修改监听端口 4、修改数据目录 5、修改日志目录 6、修改PID文件目录 7、修改保护模式 8、修改进程运行模式 9、修改监听地址 10、生成集群配置 11、启动服务 三、构建集群 1、将其他节点加入…

【Java入门到精通】(三)Java基础语法(下)

一、面向对象&#xff08;类和对象&#xff09;1.1 万事万物皆对象类&#xff1a;对对象向上抽取出像的部分、公共的部分以此形成类&#xff0c;类就相当于一个模板。对象&#xff1a;模板下具体的产物可以理解为具体对象&#xff0c;对象就是一个一个具体的实例&#xff0c;就…

Java文件传输要点

Java文件传输要点 一、前端 <form action"/upload" method"post" enctype"multipart/form-data"> <!--<form action"/upload" method"post">-->姓名: <input type"text" name"username…

Spring Boot 中使用 Lombok 进行依赖注入的示例

Spring Boot 中使用 Lombok 进行依赖注入的示例 下面我将展示 Spring Boot 中使用 Lombok 进行依赖注入的不同方式&#xff0c;包括构造器注入、属性注入和 setter 方法注入&#xff0c;以及相应的测试用例。 1. 构造器注入&#xff08;推荐方式&#xff09; import lombok.Req…