牛客刷题-Day23

news/2025/11/20 15:59:31/文章来源:https://www.cnblogs.com/Cocoicobird/p/19247443

牛客刷题-Day23

今日刷题:\(1041-1045\)

1041 习题-回文数

6a5aaedf-1554-4dc8-8f4f-6888032f5a2d

解题思路

构成回文数的情况:

  1. 出现次数为奇数的数最多一个
  2. 在情况一的基础上,\(0\) 出现次数不为零且有出现次数至少为 \(2\) 的数,或者 \(0\) 出现次数为 \(1\) 无其余数。

当可以构成回文数,要求回文数最小,因此在不存在前导零的情况下,首位为不为零的最小数,若存在 \(0\),则在安排完首位之后先安排 \(0\),之后依次按照递增的顺序安排数字。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 10, M = 110;int cnt[N];
int s[N];int main() {int flag = 0, total = 0, t = -1;for (int i = 0; i < N; i++) {scanf("%d", &cnt[i]);if (cnt[i] % 2) {flag++;t = i;}total += cnt[i]; // 总个数}if (flag > 1) {printf("-1\n");return 0;}if (cnt[0]) {flag = 0;for (int i = 1; i < N; i++)if (cnt[i] > 1)flag = 1;if (!flag) {if (cnt[0] > 1) {printf("-1\n");return 0;}}}int idx = 1;for (int i = 1; i < N; i++) {if (cnt[i] && cnt[i] > 1) {while (cnt[i] > 1) {s[idx] = i, s[total + 1 - idx] = i;cnt[i] -= 2;idx++;if (cnt[0]) {while (cnt[0] > 1) {s[idx] = 0, s[total + 1 - idx] = 0;cnt[0] -= 2;idx++;}}}}}if (t != -1)s[idx] = t;for (int i = 1; i <= total; i++)printf("%d", s[i]);return 0;
}

1043 习题-[NOIP1999]回文数

b1786dc3-fd14-4278-acba-dfe2f45740ae

解题思路

牛客的题目描述不是很清晰:\(n\) 的取值为 \([2,10]\),或者 \(n=16\);其次输入的数字长度不超过 \(100\)

按照题目的描述模拟加法过程,当超过 \(30\) 次之后的数仍不是回文数,则输出 Impossible!
因为两个同样位数的数加和最多多一位,因此如果使用数组,则最多进 \(30\) 位。另外需要注意 \(16\) 进制的数会使用大写字母 \([A,F]\)

C++ 代码

#include <bits/stdc++.h>
using namespace std;int n;
string s;
vector<int> num;vector<int> add(vector<int> num, int k) {vector<int> a = num, b, c;for (int i = num.size() - 1; i >= 0; i--)b.push_back(num[i]);int t = 0;for (int i = 0; i < num.size(); i++) {t += a[i] + b[i];c.push_back(t % k);t /= k;}if (t)c.push_back(1);return c;
}int solve(vector<int> &num, int k) { // k 进制int cnt = 0;while (1) {bool flag = true;for (int i = 0, j = num.size() - 1; i <= j; i++, j--) {if (num[i] != num[j]) {flag = false;break;}}if (flag)return cnt;num = add(num, k);cnt++;if (cnt > 30)break;}return cnt;
}int main() {cin >> n >> s;for (int i = s.size() - 1; i >= 0; i--) {if (s[i] >= '0' && s[i] <= '9') {num.push_back(s[i] - '0');} else {num.push_back(s[i] - 'A' + 10);}}int step = solve(num, n);if (step <= 30) {printf("STEP=%d\n", step);return 0;}puts("Impossible!");return 0;
}

1045 习题-I love you

7c9836dc-2ea5-40f1-bb19-326606cf3471

解题思路

\(f_{i,j}\) 表示 \(t[0-j-1]\)\(s[0-i-1]\) 的匹配个数,状态计算如下:

  • 初始化:\(f_{0,0}=1\),空序列匹配。
  • \(s_{i-1}==t_{j-1}\),则 \(f_{i,j}+=f_{i,j}\)

在实现时对数组进行降维。

C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 10;string s;
int f[N];int main() {f[0] = 1;getline(cin, s);string t = "iloveyou";for (int i = 0; s[i]; i++) {bool flag = true;for (int j = 0; t[j]; j++)if (s[i] == t[j] || s[i] - 'A' + 'a' == t[j]) {f[j + 1] = (f[j + 1] + f[j]) % 20010905;}}printf("%d\n", f[8]);return 0;
}

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

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

相关文章

大厂都在用的测试基础设施:深度解析Dify工作流引擎的设计哲学与最佳实践

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 当今软件开发领域,测试基础设施的效率和可靠性直接关系到产品的交付质量与速度。随着AI技术的普及,如何将智能能力深度融入测试流程成为各…

2025 年 11 月手工冰淇淋厂家推荐排行榜,0添加冰淇淋,低脂冰淇淋,低糖冰淇淋,巧克力冰淇淋,国潮冰淇淋,磨巧冰淇淋厂家推荐

2025年11月手工冰淇淋厂家推荐排行榜:专业采购指南 随着消费者对健康饮食和品质生活需求的不断提升,手工冰淇淋市场呈现出蓬勃发展的态势。0添加冰淇淋、低脂冰淇淋、低糖冰淇淋、巧克力冰淇淋、国潮冰淇淋以及磨巧冰…

当 Git 账号密码输错后,凭证会被缓存下来怎么办?

当 Git 账号密码输错后,凭证会被缓存下来怎么办?清除缓存的凭证 根据上一步的排查结果,选择对应的方法清除缓存。清除内存缓存 (cache) 如果你使用的是 credential.helper=cache,可以通过以下命令清除内存中的临时…

素数与素数筛

素数与素数筛 素数 素数是指大于1的整数,除了1和自身之外没有其他正因数的数。换句话说,素数只有两个正因数:1和自身。注:1不是素数,2是素数 小素数的判定 当需要判定的数n≤​​时,用Miller-Rabin算法. 试除法 …

oop-实验3 - fg

task1 Button.hpp1 #pragma once2 3 #include<iostream>4 #include<string>5 6 class Button{7 public:8 Button(const std::string &label_);9 const std::string& get_label() const; 1…

2025一对一教育机构口碑排行榜:最新家教辅导平台深度解析

在小学至高中的关键成长期,家长为孩子挑选一对一 家教或辅导机构时,常常陷入重重困境。当下课外补习市场乱象丛生,教育机构质量参差不齐,想要从中找出靠谱的机构犹如大海捞针。市面上各类测评榜单良莠不齐,部分掺…

11.20模拟赛div-3

场次 CF题解 ABC比较水,然而细节比较多,共耗时1h D一个神秘的交互题,二分卡我1h结果输出答案的时候查询了一次炸了(警示后人) E构造题上个厕所5min瞪出结论,10min写完 补F,赛时在想二分答案结果场后qzr嘴构造左…

基于日志的邮件安全事件检测:从异常行为到攻击溯源

在邮件系统的安全防护中,日志分析是最基础、最重要的手段之一。通过对邮件服务器日志的深入分析,管理员可以识别并防范各种恶意行为,如自动化攻击、大量邮件投递、非法登录等安全事件。本文将探讨如何利用邮件系统日…

Playwright自动化测试框架与AI智能体应用公开课

自动化 数据驱动 MCP协议 智能体,四位一体打造下一代测试体验 本次Playwright自动化测试框架与AI智能体应用的课程将带您深入了解如何利用Playwright这一现代Web自动化测试框架,结合AI智能体技术,提升测试效率与…

火山引擎Data Agent赋能金融行业,打造智能投顾与精准营销新范式

在近日举办的平安寿险第二届AIGC嘉年华“智领未来AI赋能金融”活动上,火山引擎数智专家提出,企业正从“数据驱动”迈向“认知驱动”的新时代。这一转型的核心在于构建能够沉淀集体智慧的“企业级认知引擎”,其不仅是…

学习率调度器 (Learning Rate Scheduler)

🧠 深度学习中的 Scheduler 在深度学习训练中,Scheduler 通常指的是学习率调度器 (Learning Rate Scheduler)。 学习率调度器 (Learning Rate Scheduler)作用: 是一种在训练过程中动态调整优化器学习率的策略或算法…

why did I speak English

English is useful because the 26 speakers tend to give benefits to only 26. They thinks "a/an" is the best words of all languages. "Back and deep down on the tie-ribs of consciousness, i…

2025年涡轮球阀pvdf管生产厂家权威推荐榜单:涡轮蝶阀pvdf管/涡轮蝶阀pvdf管/热熔球阀pvdf管源头厂家精选

在化工、水处理等苛刻工况领域,三家各具特色的涡轮球阀PVDF管生产厂家正以专业能力赢得市场认可。 涡轮球阀PVDF管作为工业管道系统的重要组成部分,因其优异的耐腐蚀性、高机械强度和稳定的密封性能,在化工、水处理…

Java 类加载机制与反射

Java 类加载机制与反射 系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类。 JVM和类 当调用java程序运行某个java程序时,该命令将会启动一个java虚拟机进程。不管java程序有多么复杂,该程序…

面向对象程序设计—第一章作业总结

前言 在三次对单部电梯调度程序类的设计中,题目由一个类到多个类,由未考虑单一职责原则到类设计遵循单一职责原则(SRP),与此同时乘客的请求变得更加详细,都使得我们需要不断的对原来的程序进行修改和完善,下面是我…

2025年电子散件手工源头厂家权威推荐榜单:灯具加工外发/手工编织加工/电子产品手工加工源头厂家精选

在电子制造产业链中,那些专注于手工环节的厂家,凭借其对精度与稳定性的极致追求,成为行业里不可或缺的关键角色。 电子散件手工加工,虽处产业链一隅,却直接影响到最终产品的性能与可靠性。当前,这一领域正朝着高…

2025年北京高压配电室检测公司权威推荐榜单:北京配电室检测项目/北京配电室加载检测/北京配电室防雷检测服务机构精选

在首都电网规模持续扩张与智能化升级的背景下,高压配电室的安全稳定运行已成为保障城市能源命脉的关键环节。据最新行业数据显示,2024年北京市高压配电室数量已突破3万间,其中运行超过10年的老旧配电室占比接近40%。…

宏觀對沖的組合管理 Portfolio Management for Macro Hedging

宏觀對沖的組合管理 Portfolio Management for Macro Hedging核心觀點第二代宏觀對沖,包含三個部份:宏觀面、技術面、交易交易系統。但2025年有兩大痛點:①第一,遲疑了未戰略轉移到權益資產,錯過了2025年的港A美權…

2025 电加热器厂家最新推荐排行榜:实力制造商深度解析,覆盖多场景加热设备优质解决方案

引言 工业加热器作为生产流程中的核心关键设备,其性能优劣直接关系到工艺稳定性、产品质量精度与企业运营成本,广泛应用于机械制造、化工、新能源、船舶、航空等多个重要领域。当前市场上加热器品牌繁杂,产品质量参…

技术筑牢供应链安全防线:从全链路防控到体系化治理

在数字化协同深度渗透的今天,供应链已从传统 “物资流转链路” 演变为 “技术、数据、服务交织的复杂生态”。供应链安全风险不再局限于单一环节故障,而是呈现跨层级、跨领域传导的特性,技术防护已成为构建安全屏障…