当前位置: 首页 > news >正文

Mashup-Math_Topic_One

Tutorial and Introspection

A Rudolf and 121

注意到第 1 1 1 位只能被第 2 2 2 位影响,以此类推位置,对于 a i a_i ai , 如果 < 0 < 0 <0 ,不合法 ; 否则, a i − = a i , a i + 1 − = 2 ∗ a i , a i + 2 − = a i a_i-=a_i,a_{i+1}-=2*a_i,a_{i+2}-=a_i ai=ai,ai+1=2ai,ai+2=ai

操作到最后再检查一下 n − 1 n-1 n1 n n n 这两个位置

void solve(){cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];}for(int i = 1; i <= n - 2; i ++){if(a[i] == 0){continue;}else if(a[i] < 0){cout << "NO\n";return ;}else{int tmp = a[i];a[i] -= tmp;a[i + 1] -= 2 * tmp;a[i + 2] -= tmp;}}if(a[n] == 0 && a[n - 1] == 0){cout << "YES\n";}else{cout << "NO\n";}
}

Divisible Pairs

这题主要考察对取模的理解

a + b a+b a+b mod x = 0, 即 a + b = p ∗ x a+b=p*x a+b=px , 所有数对 x x x 取模,a%=x,b%=x , 得 a + b = 0 o r x a+b=0\;or\;x a+b=0orx

a − b a-b ab mod x = 0, 取模 x, 即 a=b

一边读入一边计算,不会重复计算

void solve(){int n, x, y, res = 0;cin >> n >> x >> y;map<pair<int, int>, int> mp;for(int i = 1; i <= n; i ++){int tmp;cin >> tmp;if(mp.count({x - tmp % x, tmp % y})){res += mp[{x - tmp % x, tmp % y}];}else if(mp.count({-tmp % x, tmp % y})){res += mp[{-tmp % x, tmp % y}];}mp[{tmp % x, tmp % y}] ++;}cout << res << '\n';
}

Anna and the Valentine’s Day Gift

如果 x ≥ 1 0 m x\geq 10^m x10m , 在 x x x 没有前导零的情况下, 只需要 x x x 的长度为 m + 1 m+1 m+1 即可,知道这个性质贪心两边操作即可

(萨沙不需要最大化最终的数字,只要最大化数字的位数即可。)

void solve(){int n, m, res = 0;cin >> n >> m;vector<int> a(n + 5), c(n + 5);for(int i = 1; i <= n; i ++){cin >> a[i];res += to_string(a[i]).size();}auto check = [](int x) -> int{string tmp = to_string(x);int sz = tmp.size(), i = sz - 1;while(tmp[i] == '0') i --;return sz - i - 1;};sort(a.begin() + 1, a.begin() + n + 1, [&](int x, int y) -> bool{return check(x) > check(y);});for(int i = 1; i <= n; i += 2){res -= check(a[i]);}cout << (res >= m + 1 ? "Sasha" : "Anna") << '\n';
}

Physical Education Lesson

如果位置 n n n 的人报数为 x x x , 队伍长为 k k k , 不难发现

n = ( 2 k − 2 ) ∗ t + x n=(2k-2)*t+x n=(2k2)t+x , t ∈ [ 0 , ⌊ n − x 2 k − 2 ⌋ ] t\in[0,\lfloor\frac{n-x}{2k-2}\rfloor] t[0,2k2nx⌋]

n = ( 2 k − 2 ) ∗ t + k + k − x n=(2k-2)*t+k+k-x n=(2k2)t+k+kx , 即 t ∈ [ 1 , 1 + ⌊ n + x − 2 2 k − 2 ⌋ ] t\in[1,1+\lfloor\frac{n+x-2}{2k-2}\rfloor] t[1,1+2k2n+x2⌋]

n − x n-x nx n + x − 2 n+x-2 n+x2 分解因子,留下偶数因子对应的 k k k 插入 s e t set set 集合当中,

最后检查所有 k > = x k>=x k>=x 的合法解数量

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, x;
void solve(){set<int> s;cin >> n >> x;/*n = (2k-2)*t + xn-x = (2k-2)*tn = (2k-2)*t + k + k - xn + x - 2 = (2k-2) * tk < n*//*num = a * b*/auto op = [&](int num){set<int> tmp = set<int> ();for(int i = 1; i * i <= num; i ++){if(num % i == 0){if(i % 2 == 0) tmp.insert(i);if((num / i) % 2 == 0) tmp.insert(num / i);}}for(auto x : tmp){s.insert(x / 2 + 1);}};op(n - x);op(n + x - 2);int res = 0;for(auto k : s){if(k >= x){res ++;}}cout << res << '\n';
}signed main(){ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int T = 1;cin >> T;while (T --){solve();}return 0;
}
/*10 22356n-x=8, 2 4 8               2 3 5n+x-2=10 2  10
*/

Eat the chip

纵向距离决定谁吃谁,然后进行模拟,被吃者逃离,捕食者靠近, O ( h ) O(h) O(h)

实际存在 O ( 1 ) O(1) O(1) 做法就能判断,这里不做深究

#include<bits/stdc++.h>
using namespace std;
#define int long long// void solve(){
// 	int h, w, x1, y1, x2, y2;
// 	cin >> h >> w >> x1 >> y1 >> x2 >> y2;
// 	auto out = [](int op){
// 		if(op == 1) cout << "Alice\n";
// 		else if(op == 2) cout << "Bob\n";
// 		else cout << "Draw\n";// };// if(x1 >= x2){// 	out(3);// }
// 	else{
// 		int dis = abs(y1 - y2);
// 		if(dis <= 1){
// 			if(abs(x1 - x2) % 2){
// 				out(1);
// 			}
// 			else{
// 				out(2);
// 			}
// 		}
// 		else{
// 			out(3);
// 		}
// 	}
// }
/*获胜条件 : 当被捕食者进入攻击区域时,捕食者通过之前的操纵使得两者距离之差不超过 3除非距离间隔为 1, 捕食者直接发起进攻否则被捕食者一定
*/
/*如果两者距离为 0, 捕食者不改变, 否则,捕食者令距离减 -1;被捕食者一定要让距离 + 1捕食者先手, 而被捕食者进入判定区域时先手假设横向距离为 3,纵向距离为 51 : 22 : 33 : 24 : 3h <= 1e6即纵向的距离, 显然题目比较善良,让我们通过 O(h) 而非 O(1)的操作完成题目那么就可以通过模拟解决了
*/
void solve(){int h, w, x1, y1, x2, y2;cin >> h >> w >> x1 >> y1 >> x2 >> y2;auto out = [](int op){if(op == 1) cout << "Alice\n";else if(op == 2) cout << "Bob\n";else cout << "Draw\n";};// 计算横向距离auto dis = [&] () -> long long {return abs(y1 - y2);};// a 远离 bauto a_away_b = [&] () -> void {for(int i = -1; i <= 1; i ++){int tmp = y1 + i;if(tmp >= 1 && tmp <= w && abs(tmp - y2) >= dis()){y1 = tmp;}}};auto a_in_b = [&] () -> void {for(int i = -1; i <= 1; i ++){int tmp = y1 + i;if(tmp >= 1 && tmp <= w && abs(tmp - y2) <= dis()){y1 = tmp;}}};auto b_away_a = [&] () -> void {for(int i = -1; i <= 1; i ++){int tmp = y2 + i;if(tmp >= 1 && tmp <= w && abs(tmp - y1) >= dis()){y2 = tmp;}}};auto b_in_a = [&] () -> void {for(int i = -1; i <= 1; i ++){int tmp = y2 + i;if(tmp >= 1 && tmp <= w && abs(tmp - y1) <= dis()){y2 = tmp;}}};if(x1 >= x2){out(3);}else{// 进入判定区域的时候,结局就已经注定了if((x2 - x1) % 2 == 1){ // A 吃 Bfor(int i = 1; i <= x2 - x1 - 1; i ++){if(i & 1){a_in_b();}else{b_away_a();}}if(abs(y1 - y2) <= 1) out(1);else out(3);}else{ // B 吃 Afor(int i = 1; i <= x2 - x1 - 1; i ++){if(i & 1){a_away_b();}else{b_in_a();}}if(abs(y1 - y2) <= 1) out(2);else out(3);}}}
signed main(){ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int T = 1;cin >> T;while (T --){solve();}return 0;
}
// 每次移动改变两棋子之间的横向距离 dis_x 和纵向距离 dis_y
// 先手到达 dis_x = 0 且 dis_y = 0 的玩家获胜
// 如果无人取胜,平局。
// 每次操作,纵向距离必然 -1
// 如果两者距离为奇数, 必然是 A 尝试吃掉 B 或者平局
// 如果两者距离为偶数,必然是 B 尝试吃掉 A 或者平局

Increasing Subsequences

题解写的很好

让我们来看看构建所需数组的解决方案之一。

假设数组 a a a x x x 个递增子序列。如果我们在数组末尾添加一个新的最小值,那么新数组中的递增子序列数等于 x + 1 x+1 x+1 (因为新元素不会与其他元素形成递增子序列)。(由于新元素不会与其他元素形成递增子序列,因此只会添加由该元素组成的子序列)。如果我们在数组的末尾添加一个新的最大值,那么新数组中的递增子序列数等于 2 x 2x 2x (因为新元素与其他元素形成递增子序列)。

利用上述事实,我们来定义一个递归函数 f ( x ) f(x) f(x) ,它返回的数组恰好有 x x x 个递增子序列。对于奇数值 x x x ,返回 f ( x ) = f ( x − 1 ) + m i n f(x) = f(x-1) + min f(x)=f(x1)+min (这里的 + 表示在数组末尾添加一个元素);对于偶数值 x x x ,返回 f ( x ) = f ( x 2 ) + m a x f(x) = f(\frac{x}{2}) + max f(x)=f(2x)+max 。现在我们需要估算通过这种算法得到的数组中的元素个数。需要注意的是,第一种类型( x → x − 1 x \rightarrow x-1 xx1 )不能有两次连续的运算,因此每两次运算, x x x 的值至少减少两次。因此,数组的大小满足 200 200 200 的限制。

#include<bits/stdc++.h>
using namespace std;
#define int long longvector<int> f(int x){vector<int> res;if(x == 2){res.push_back(0);}else if(x & 1){res = f(x - 1);res.push_back(*min_element(res.begin(), res.end()) - 1);}else{res = f(x / 2);res.push_back(*max_element(res.begin(), res.end()) + 1);}return res;
}void solve(){int x;cin >> x;auto res = f(x);cout << res.size() << '\n';for(auto a : res) cout << a << ' ';cout << '\n';
}signed main(){ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int T = 1;cin >> T;while (T --){solve();}return 0;
}

相关文章:

Mashup-Math_Topic_One

Tutorial and Introspection A Rudolf and 121 注意到第 1 1 1 位只能被第 2 2 2 位影响&#xff0c;以此类推位置&#xff0c;对于 a i a_i ai​ , 如果 < 0 < 0 <0 &#xff0c;不合法 ; 否则&#xff0c; a i − a i , a i 1 − 2 ∗ a i , a i 2 − a …...

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…...

逐步学习Go-Select多路复用

概述 这里又有多路复用&#xff0c;但是Go中的这个多路复用不同于网络中的多路复用。在Go里&#xff0c;select用于同时等待多个通信操作&#xff08;即多个channel的发送或接收操作&#xff09;。Go中的channel可以参考我的文章&#xff1a;逐步学习Go-并发通道chan(channel)…...

王道:OJ15

课时15作业 Description 读取10个元素 87 7 60 80 59 34 86 99 21 3&#xff0c;然后建立二叉查找树&#xff0c;排序后输出3 7 21 34 59 60 80 86 87 99&#xff0c;针对有序后的元素&#xff0c;存入一个长度为10的数组中&#xff0c;通过折半查找找到21的下标&#xff08…...

【案例·查】数据类型强制转换,方便查询匹配

问题描述&#xff1a; MySQL执行中需要将某种数据类型的表达式显式转换为另一种数据类型&#xff0c;可以使用 SQL 中的cast()来处理 案例&#xff1a; SELECT CAST(9.0 AS decimal) #String化为小数类型SELECT * FROM table_1 WHERE 1888-03-07 CAST(theDate AS DATE) …...

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…...

使用certbot为网站启用https

1. 安装certbot客户端 cd /usr/local/bin wget https://dl.eff.org/certbot-auto chmod ax ./certbot-auto 2. 创建目录和配置nginx用于验证域名 mkdir -p /data/www/letsencryptserver {listen 80;server_name ~^(?<subdomain>.).ninvfeng.com;location /.well-known…...

Unity 背包系统中拖拽物体到指定位置或互换位置效果的实现

在Unity中&#xff0c;背包系统是一种常见的游戏系统&#xff0c;可以用于管理和展示玩家所持有的物品、道具或装备。 其中的拖拽功能非常有意思&#xff0c;具体功能就是玩家可以通过拖拽物品图标来移动物品在背包中的位置&#xff0c;或者将物品拖拽到其他位置或界面中&…...

iOS客户端自动化UI自动化airtest+appium从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图

Android客户端自动化UI自动化airtest从0到1搭建macos脚本设计demo演示全网最全最详细保姆级有步骤有图-CSDN博客 避坑系列-必读&#xff1a; 不要安装iOS-Tagent &#xff0c;安装appium -这2个性质其实是差不多的都是为了安装wda。注意安装appium最新版本&#xff0c;安装完…...

每周编辑精选|在线运行 Deepmoney 金融大模型、AI 偏好等多个优质数据集上线

目前&#xff0c;AI 领域对金融模型的研究成果大多是基于公共知识进行训练的&#xff0c;但在实际的金融实践中&#xff0c;这些公共知识对于当前市场的可解释性往往严重不足。一个理想的金融大模型应该能够理解新闻或数据事件&#xff0c;并能够即时地从主观和量化两个角度对事…...

C++多重继承与虚继承

多重继承的原理 多重继承(multiple inheritance)是指从多个直接基类中产生派生类的能力。 多重继承的派生类继承了所有父类的属性。 在面向对象的编程中&#xff0c;多重继承意味着一个类可以从多个父类继承属性和方法。 就像你有一杯混合果汁&#xff0c;它是由多种水果榨取…...

请简单介绍一下Shiro框架是什么?Shiro在Java安全领域的主要作用是什么?Shiro主要提供了哪些安全功能?

请简单介绍一下Shiro框架是什么&#xff1f; Shiro框架是一个强大且灵活的开源安全框架&#xff0c;为Java应用程序提供了全面的安全解决方案。它主要用于身份验证、授权、加密和会话管理等功能&#xff0c;可以轻松地集成到任何Java Web应用程序中&#xff0c;并提供了易于理解…...

TouchGFX之Button

TouchGFX中的按钮是一种感应触控事件的控件&#xff0c;能够在按钮被按下/释放时发送回调 代码 #ifndef TOUCHGFX_ABSTRACTBUTTON_HPP #define TOUCHGFX_ABSTRACTBUTTON_HPP #include <touchgfx/Callback.hpp> #include <touchgfx/events/ClickEvent.hpp> #includ…...

计算机组成原理 — 指令系统

指令系统 指令系统指令的概述指令的格式指令的字长取决于 操作数类型和操作种类操作数的类型数据在存储器中的存放方式操作类型 寻址方式指令寻址数据寻址立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址堆栈寻址 RISC 和 CISC 技术RISC 即精简指令…...

使用easyYapi生成文档

easyYapi生成文档 背景1.安装配置1.1 介绍1.2 安装1.3 配置1.3.1 Export Postman1.3.2 Export Yapi1.3.3 Export Markdown1.3.4 Export Api1.3.6 常见问题补充 2. java注释规范2.1 接口注释规范2.2 出入参注释规范 3. 特定化支持3.1 必填校验3.2 忽略导出3.3 返回不一致3.4 设置…...

蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)

目录 一、摆花 思路一&#xff1a; 确定状态&#xff1a; 初始化&#xff1a; 思路二&#xff1a; 确定状态&#xff1a; 初始化&#xff1a; 循环遍历&#xff1a; 状态转移方程&#xff1a; 二、数字三角形加强版 一、摆花 题目描述 小明的花店新开张&#xff0c;为了吸…...

Elasticsearch(15) multi_match的使用

elasticsearch version&#xff1a; 7.10.1 multi_match是Elasticsearch中的一种查询类型&#xff0c;允许在一个或多个字段上执行全文本搜索&#xff0c;并合并各个字段的结果得分。这种查询有助于实现跨多个字段的统一搜索体验。 语法 {"query": {"multi_m…...

nodejs的线程模型和libuv库的基本使用

文章目录 nodejs中集成addon本地代码的回调问题单线程事件驱动模型libuvlibuv基本框架addon中使用libuv代码nodejs中集成addon本地代码的回调问题 在C++的代码中,回调函数是一个基本的代码调用方式。而在我自己的开发实践中,需要在addon这样一个nodejs的本地化模块中实现一个…...

Uni-app/Vue/Js本地模糊查询,匹配所有字段includes和some方法结合使用e

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.第一步 需要一个数组数据 {"week": "全部","hOutName": null,"weekendPrice": null,"channel": "门市价","hOutId": 98,"cTime": "…...

深度学习pytorch——激活函数损失函数(持续更新)

论生物神经元与神经网络中的神经元联系——为什么使用激活函数&#xff1f; 我们将生物体中的神经元与神经网络中的神经元共同分析。从下图可以看出神经网络中的神经元与生物体中的神经元有很多相似之处&#xff0c;由于只有刺激达到一定的程度人体才可以感受到刺激&#xff0c…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...