A  小苯的方格覆盖

思路:

怎么摆第三行都是横放的2*1;

故若n为奇数,总格子数3n为奇数,无法被2整除,直接排除。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定int n;cin >> n;if (n % 2 == 0) {cout << "YES" << endl;}elsecout << "NO" << endl;return 0;
}

B 小苯的数字折叠

思路:暴力+判断

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定ll t;cin >> t;while(t--){ll n, k;cin >> n >> k;ll i;bool pan1 = false;for (i = 0; i <= k; i++) {bool pan = true;vector<ll> a;ll w = n;while (w > 0) {a.push_back(w % 10);w /= 10;}ll pp = a.size();for (ll j = 0; j < pp; j++) {if (a[j] != a[pp - 1 - j]) {pan = false;break;}}if (pan) {pan1 = true;break;}if (i >= k) {break;}ll q = 1;ll j = pp - 1;while (a[j] == 0&&j>=0) {j--;}for ( ; j >=0; j--) {n += a[j] * q;q *= 10;}}if (!pan1) {cout << n <<" " << -1 << endl;}else {cout << n << " " << i  << endl;}}return 0;
}

C 小苯的波浪加密器

思路:

只要明白个位=个位*个位%10

所以范围为:\left [l ,max(l+9,r) \right ],暴力

但要考虑n==3时,a[4] 不存在

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定ll t;cin >> t;while(t--){ll n, l1, l2, r1, r2;cin >> n >> l1 >> r1 >> l2 >> r2;r1 = min(r1, l1 + 9);r2 = min(r2, l2 + 9);vector<ll >a(n + 1);for (ll i = 3; i <= n; i++) {cin >> a[i];}ll i, j;for (i = l1; i <= r1; i++) {bool pan = false;for (j = l2; j <= r2; j++) {if ((i % 10) * (j % 10) % 10 == a[3] && (n==3||(j % 10) * a[3] % 10 == a[4])) {pan = true;break;}}if (pan) {break;}}if (i > r1) {cout << -1 << " " << -1 << endl;}else {cout << i << " " << j << endl;}}return 0;
}

D  小苯的数字变换

思路:

多列几个数就可以发现 x \bigoplus \left \lfloor \frac{x}{2} \right \rfloor 会循环(看别人说是log(n)级别)

然后有两种:

一:将 a[i],和a[n +1- i]同时变换并记录,讨论每种情况;

二:将a[i] 遍历循环一次,看有没有a[n +1- i],然后min(k,u-k);k为第几次出现,u为循环数有几个

(或直接循环两次或x,y都循环一次)

方法一:不推荐

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int t, n;
int qwe(int i, int j) {if (i == j) {return 0;}map<int, int>  l, r;l.insert({ i,0 });r.insert({ j,0 });int u = 1;int min_sum = INT_MAX;while (1) {bool pan = true;if (l.find(i ^ (i / 2))==l.end()) {pan = false;i = i ^ (i / 2);l.insert({i,u});auto it = r.find(i);if (it == r.end()) {}else {min_sum = min(min_sum, u + it->second);}}if (r.find(j ^ (j / 2))==r.end()) {pan = false;j = j ^ (j / 2);r.insert({ j,u });auto it = l.find(j);if (it == l.end()) {}else {min_sum = min(min_sum, u + it->second);}}u++;if (pan) {break;}}return min_sum == INT_MAX ? -1 : min_sum;
}
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> t;while(t--){cin >> n;vector<int> a(n + 1);for (int i = 1; i <= n; i++) {cin >> a[i];}int i;ll sum = 0;for ( i = 1; i <= n/2; i++) {int y = qwe(a[i], a[n +1- i]);if (y == -1) {break;}else {sum += y;}}if (i <= n / 2) {cout << -1 << endl;}elsecout << sum <<  endl;}return 0;
}

方法二:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int N = 5e5 + 10;ll ans[N];
ll n;ll tsf(ll x, ll y){ll sum = 0;while(x != y){if(sum > 32) return -1;x = (x ^ (x / 2));sum++;}return sum;
}void solve()
{cin >> n;for(int i = 1; i <= n; i++)  cin >> ans[i];ll tot = 0;for(int i = 1; i <= n / 2; i++) {if(ans[i] == ans[n - i + 1]) continue;ll x = tsf(ans[i], ans[n - i + 1]),y = tsf(ans[n - i + 1], ans[i]);if(x == -1 || y == -1){cout << -1 << endl;return ;}tot += min(x,y);}cout << tot << endl;
}int main()
{ll t = 1;cin >> t;while (t--){solve();}
}

E  小苯的洞数组构造

思路:贪心

最大化洞数 数字8的洞数为2,是单个数字中洞数最大的。因此,尽可能多地使用数字8可以最大化洞数之和。构造全8的数字(如8, 88, 888等)可以高效地实现这一点,其次是4;

分配策略 为了确保总和不超过sum,需要合理分配数字的大小。通过计算平均每个数字的最大值x,可以确定使用多少位的全8数字。如果x足够大,直接使用全8数字;否则,调整数字范围,确保总和不超过sum。

边界处理 当sum<n时,无法满足每个数字至少为1的条件,直接输出-1。其他情况下,通过动态调整每个数字的大小,确保总和不超过sum的同时最大化洞数之和。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
ll t, n, sum;
ll a[11];
ll shu(ll i) {ll j = 0;while (i > 0) {j++;i /= 10;}return j;
}
void solve() {cin >> n >> sum;if (sum < n) {cout << -1 << endl;return;}ll l,  r;ll x = sum / n;ll y = shu(x);ll o = a[y] + 4 * pow(10, y);if (x >= a[y]) {l = a[y], r = o;}else if(x>=o/10){l = o / 10; r = a[y];}else {l = a[y - 1], r = o / 10;}for (int i = 0; i < n; i++) {if (sum / (n - i) >= r) {cout << r << " ";sum -= r;}else {cout << l << " ";sum -= l;}}cout << endl;return;
}
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> t;for (int i = 1; i <= 10; i++) {a[i] = a[i - 1] * 10 + 8;}a[0] = 1;while(t--){solve();}return 0;
}

F   小苯的数组计数

思路: 单调栈

核心思路是利用单调栈分别从左到右和从右到左遍历数组,统计满足条件的子数组。

  1. 单调栈预处理:从左到右遍历数组,维护一个单调递减栈,记录每个元素左边最近的比它大的元素位置。(左小于右)
  2. 统计条件满足的子数组:在遍历过程中,如果当前元素与栈顶元素的位置差 ≥ 2且值不相等,则说明存在满足条件的子数组。
  3. 反向遍历:从右到左重复相同操作,确保覆盖所有可能的子数组情况。
  4. 去重处理:避免重复计数,确保每个子数组只被统计一次。(右小于左)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int t, n;
int main(){ios::sync_with_stdio(false);        // 禁用同步cin.tie(nullptr);                   // 解除cin与cout绑定cin >> t;while(t--){cin >> n;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}stack<int> q;ll sum = 0;for (int i = 0; i < n; i++) {while (!q.empty() && a[i] > a[q.top()]) {q.pop();}if (!q.empty() && i - q.top() >= 2&&a[i]!=a[q.top()]) {sum++;}q.push(i);}while (!q.empty()) {q.pop();}for (int i = n-1; i >=0; i--) {while (!q.empty() && a[i] > a[q.top()]) {q.pop();}if (!q.empty() && q.top()-i >= 2 && a[i] != a[q.top()]) {sum++;}q.push(i);}cout << sum << endl;}return 0;
}

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

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

相关文章

高并发内存池(16)-三层缓存的回收过程

高并发内存池&#xff08;16&#xff09;-三层缓存的回收过程 内存池的回收过程是内存管理系统的关键环节&#xff0c;它通过分层协作和智能合并机制&#xff0c;确保内存高效重复利用。以下是完整的回收流程解析&#xff1a;一、回收触发场景 ThreadCache回收&#xff1a;线程…

深入解析MyBatis Mapper接口工作原理

在Java持久层框架中&#xff0c;MyBatis以其灵活性和易用性赢得了广大开发者的青睐。作为MyBatis的核心概念之一&#xff0c;Mapper接口机制极大地简化了数据库操作代码的编写。本文将深入剖析MyBatis Mapper接口的工作原理&#xff0c;从基础概念到底层实现&#xff0c;帮助开…

疯狂星期四文案网第49天运营日记

网站运营第49天&#xff0c;点击观站&#xff1a; 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 常州苏州那些ip锲而不舍的扫了很多php的页面 今日搜索引擎收录情况 k页面比较严重了&#xff0c;哎。 我感觉不该做其他类型文案的 网…

从GPT-5发布来分析LLM大模型幻觉收敛(一)

GPT-5 号称在任何领域都有博士级别能力。在医疗健康领域&#xff0c;能够对专业的癌症诊断报告做通俗易懂的解读。对复杂的放射治疗方案决策&#xff0c;也能提供详细的分析报告&#xff0c;帮助病人权衡利弊。一位癌症患者的家属在发布会上表示&#xff0c;“ 真正鼓舞人心的是…

大模型安全概述、LlamaFirewall

资料搜集整理自网络。 概述 大模型爆火之后&#xff0c;衍生出大模型安全这一个比较新的领域。和之前的文章一样&#xff0c;本文有不少新颖的名词、概念、理论。 信通院、清华大学等多个单位联合发布的《大模型安全实践&#xff08;2024&#xff09;》&#xff0c;提出LLM安…

【目标检测】论文阅读3

Lightweight tomato ripeness detection algorithm based on the improved RT-DETR 论文地址 摘要 番茄具有很高的营养价值&#xff0c;需要对成熟果实进行准确的成熟度鉴定和选择性采收&#xff0c;以显著提高番茄收获管理的效率和经济效益。以往对番茄智能收获的研究往往只以…

Python音频分析与线性回归:探索声音中的数学之美

摘要&#xff1a;通过Python实现WAV音频信号处理与线性回归建模&#xff0c;揭示双声道音频的数学关联性&#xff0c;为声音特征分析提供新视角。1. 音频数据处理流程 1.1 WAV文件读取与预处理 使用scipy.io.wavfile读取音频文件&#xff0c;获取采样率与时域信号数据&#xff…

Linux shell脚本数值计算与条件执行

变量的数值计算实践 1 算术运算符 如果要执行算术运算&#xff0c;就会离不开各种运算符号&#xff0c;和其他编程语言类似&#xff0c;Shell 也有很多算术运算符。 下面就给大家介绍一下常见的 Shell 算术运算符&#xff1a; 、-&#xff0c;一元正号和负号。、-&#xff0c;加…

C#实战:基于iTextSharp实现PDF加密小工具

目录 1、技术框架 2、代码实战 2.1 创建窗体 2.2 后台代码逻辑 2.3 PDF加密用户类型 2.4 PDF加密权限列表 3、运行效果 4、总结 大家日常办公中有时候为了文档资料的安全需要对文档进行加密,尤其是针对PDF文档这个场景还是非常广泛的。今天给大家分享使用C#来实现PDF…

基于Labview的旋转机械AI智能诊断系统

1.摘要本文基于 CWRU 公开轴承数据集提出了一套“AI 轻量级模型 LabVIEW 智能诊断系统”。首先&#xff0c;LabVIEW 端构建了可视化、可交互的智能诊断平台。系统能够加载本地振动信号数据&#xff0c;调用训练好的深度学习模型进行故障识别与状态判断。界面集成信号时域监测、…

Qt从qmake迁移到cmake的记录

文章目录1.UI程序[开启/关闭]控制台2.增加宏定义3.在主项目中引入子项目4.使用C语言文件1.UI程序[开启/关闭]控制台 qmake&#xff1a; CONFIG console DEFINES QT_MESSAGELOGCONTEXTcmake&#xff1a; set(CMAKE_WIN32_EXECUTABLE OFF) # ON为关闭控制台 OFF为开启控制台2…

LangChain4J-(3)-模型参数配置

LangChain4j 提供了灵活的模型参数配置方式&#xff0c;允许你根据不同的 AI 模型&#xff08;如 OpenAI、GPT-4、Anthropic 等&#xff09;设置各种参数来控制生成结果。后面手撸代码继续在之前章节的代码上拓展一、日志配置&#xff08;Logging&#xff09;在 LangChain4j 中…

LangGraph - API多种访问方式

本文介绍了Langgraph服务的四种调用方式&#xff1a;1. 通过LangGraph Studio UI界面手动测试&#xff1b;2. 使用Python SDK进行同步/异步调用&#xff1b;3. 通过REST API测试&#xff1b;4. 使用JavaScript SDK接入。Langgraph 服务端代码 graph.pyfrom langchain_openai im…

HEI-612 HART/EtherNet/IPModbus TCP 网关:打通工业通信壁垒

在工业自动化领域&#xff0c;HART 协议设备的广泛应用与以太网网络的高效管理常面临 “协议孤岛” 难题 —— 老旧 HART 传感器、变送器难以接入 EtherNet/IP 或 Modbus TCP 系统&#xff0c;数据双向交互卡顿、调试复杂、兼容性差等问题&#xff0c;严重制约生产效率提升。上…

OSPF 的工作过程、Router ID 机制、报文结构

视频版讲解>>>>>>>>>>>>>>路由协议深度解析&#xff1a;从静态路由到 OSPF 实战 一、回顾静态路由&#xff1a;拓扑与核心逻辑 我们先回到上周讲解的拓扑图&#xff0c;这张图是理解静态路由的核心载体 —— 路由器作为网段分割的…

Qt 6 与 Qt 5 存在的兼容性差异

之前有提到。我的是Qt5&#xff0c;我朋友的是Qt 6&#xff0c;由于版本不兼容问题&#xff0c;在迁移时会有问题。所以这一我们说说这两个的区别。&#xff08; 正文开始喽&#xff01; 总结来说&#xff1a;Qt5迁移至 Qt 6 需&#xff1a;1. 破坏性变更&#xff08;必须修改…

本地windows电脑部署html网页到互联网:html+node.js+ngrok/natapp

目录 核心概念&#xff1a;为什么不能直接分享HTML文件&#xff1f; 1&#xff0c;html文件修改 2&#xff0c;安装设置node.js 3&#xff0c;路由器虚拟服务器 4&#xff0c;采用ngrok工具进行内网穿透&#xff08;国外工具&#xff09; 5&#xff0c;采用natapp工具进行…

electron离线开发核心环境变量npm_config_cache

npm_config_cache 这个环境变量。它在离线环境配置中扮演着核心角色。什么是 npm_config_cache&#xff1f;npm_config_cache 是一个环境变量&#xff0c;用于直接设置 npm 的缓存目录的绝对路径。npm 在安装包时&#xff0c;会遵循一个特定的工作流程&#xff1a;检查缓存&…

CTFshow系列——命令执行web57-60

本篇文章介绍命令执行的另一种情况&#xff0c;CTFshow的Web57-60关的讲解解析&#xff1b;要想了解其它关卡可查看我以往的文章&#xff0c;感谢关注。 文章目录Web57&#xff08;新方法&#xff09;Web58&#xff08;POST型&#xff09;不可用函数可用函数Web59第二种方法&am…

域名、ip、DSN、URL

目录 1、ip 2、域名 3、DSN 4、URL 1、ip 每个连接到Internet上的主机都会分配一个IP地址&#xff0c;此ip是该计算机在互联网上的逻辑地址的唯一标识&#xff0c;计算机之间的访问就是通过IP地址来进行的。写法&#xff1a;十进制的形式&#xff0c;用“.”分开&#xff0…