蓝桥杯 1223 第 2 场 小白入门赛

蓝桥小课堂-平方和

  • 模拟 1 2 + 2 2 + 3 2 + ⋯ + n 2 = n ⋅ ( n + 1 ) ⋅ ( 2 n + 1 ) 6 1^2+2^2+3^2+\cdots+n^2=\dfrac{n\;\cdot\;(n +1)\;\cdot\;(2n+1)}{6} 12+22+32++n2=6n(n+1)(2n+1)
 write(n * (n + 1) * (n * 2 + 1) / 6);

房顶漏水啦

  • m a x ( 最大的行 − 最小的行 , 最大的列 − 最小的列 ) + 1 max(最大的行-最小的行,最大的列-最小的列) + 1 max(最大的行最小的行,最大的列最小的列)+1

ps: 2 ≤ n ≤ 1 0 10 2\le n \le10^{10} 2n1010

signed main() {int T = 1;
//    T = read();while (T--) {int n = read(), m = read();int col1 = 1e12, col2 = -1e12, row1 = 1e12, row2 = -1e12;while (m--) {int u = read(), v = read();col1 = min(col1, u), col2 = max(col2, u);row1 = min(row1, v), row2 = max(row2, v);}write(max(col2 - col1 + 1, row2 - row1 + 1));}return 0;
}

质数王国

  • 思路:对每一个数找到其左右两个素数,最小操作次数就是较小差值。
  • 欧拉筛筛出 [ 1 , 1 0 5 + 10 ] [1\;,\;10^5+10] [1,105+10] (范围大于 1 0 5 10^5 105 你不能保证右边的素数不超过 1 0 5 10^5 105)的质数装入 s e t set set
  • 二分找较小差值。
signed main() {int T = 1;
//    T = read();while (T--) {int n = read();vector<int> a(n + 1);for (int i = 1; i <= n; ++i) a[i] = read();vector<bool> isprime(N, false);vector<int> prime(N);set<int> s;int cnt = 0;for (int i = 2; i <= N; ++i) {if (!isprime[i]) prime[++cnt] = i, s.insert(i);for (int j = 1; j <= cnt && i * prime[j] <= N; ++j) {isprime[i * prime[j]] = 1;if (!(i % prime[j])) break;}}int ans = 0;for (int i = 1; i <= n; ++i) {if (s.count(a[i])) continue;auto it = s.lower_bound(a[i]);int l, r;if (it == s.end()) r = INF;else r = *it;if (it == s.begin()) l = -INF;else l = *prev(it);ans += min(r - a[i], a[i] - l);}write(ans);}return 0;
}

取余

  • 思路:枚举 b i b_i bi 。以 b i b_i bi 为模一定能将 A A A 分成 A / b i + 1 A\;/\;b_i+1 A/bi+1 份。
    在这里插入图片描述
  • 如上图可以清晰的看出答案。只需要取下面与 [ S , T ] [S\;,\;T] [S,T] 重合的区间长度即可。你可以将其分成三部分思考(首,中间,尾)。
  • 对于 b i = 1 b_i =1 bi=1 的情况,只有当 S = 0 S = 0 S=0 时才有解,此时应该加上 A A A
signed main() {int T = 1;
//    T = read();while (T--) {int a = read(), b = read(), s = read(), t = read();int ans = 0;for (int i = 2; i <= b; ++i) {if (s > i - 1 || a < s) continue;int p = a / i + 1;if (p > 2) {ans += (p - 1) * (min(t, i - 1) - s + 1) - (s == 0);int cnt = a - (i - 1) - (p - 2) * i;if (cnt - 1 >= s) ans += min(t, cnt - 1) - s + 1;}else if (p == 2) {ans += min(t, i - 1) - s + 1 - (s == 0);int cnt = a - (i - 1);if (cnt - 1 >= s) ans += min(t, cnt - 1) - s + 1;}else ans += min(t, a) - s + 1 - (s == 0);ans += (s == 0) * a;write(ans);}return 0;
}

数学尖子生

  • 思路:容斥。
  • 不能被 a a a 整除,但一定能被 1 , 2 , ⋯ , 3 , a − 1 1,2,\cdots,3,a-1 1,2,,3,a1 整除。所以这个数一定是 1 , 2 , ⋯ , 3 , a − 1 1,2,\cdots,3,a-1 1,2,,3,a1 最小公倍数的倍数,考虑容斥,用 1 , 2 , ⋯ , 3 , a − 1 1,2,\cdots,3,a-1 1,2,,3,a1 最小公倍数的倍数的个数 − - 1 , 2 , ⋯ , 3 , a − 1 , a 1,2,\cdots,3,a-1,a 1,2,,3,a1,a 最小公倍数的倍数的个数。
int gcd(int a, int b) {return b? gcd(b, a % b): a;}
int lcm(int a, int b) {return a * b / gcd(a, b);}
signed main() {int T = 1;T = read();vector<int> p(N);int cnt = 0;p[cnt] = 1;while (p[cnt] < 1e16) {++cnt;p[cnt] = lcm(p[cnt - 1], cnt);}while (T--) {int a = read(), n = read();if (a > cnt) puts("0");else writeln(n / p[a - 1] - n / p[a]);}return 0;
}

魔术师

  • 思路:线段树 + 矩阵
  • 举例: [ a , b , c ] [\;a\;,\;b\;,\;c\;] [a,b,c]
    • o p t 1 a b opt_1\;a\;b opt1ab [ a b c ] × [ 0 1 0 1 0 0 0 0 1 ] \begin{bmatrix}\;a\quad b\quad c\;\end{bmatrix}\times\begin{bmatrix}\;0\quad 1\quad 0\;\\\;1\quad 0\quad 0\;\\\;0\quad 0\quad 1\;\end{bmatrix} [abc]× 010100001
    • o p t 2 a b opt_2\;a\;b opt2ab [ a b c ] × [ 0 0 0 1 1 0 0 0 1 ] \begin{bmatrix}\;a\quad b\quad c\;\end{bmatrix}\times\begin{bmatrix}\;0\quad 0\quad 0\;\\\;1\quad 1\quad 0\;\\\;0\quad 0\quad 1\;\end{bmatrix} [abc]× 000110001
    • o p t 3 a b opt_3\;a\;b opt3ab [ a b c ] × [ 2 0 0 0 1 0 0 0 1 ] \begin{bmatrix}\;a\quad b\quad c\;\end{bmatrix}\times\begin{bmatrix}\;2\quad 0\quad 0\;\\\;0\quad 1\quad 0\;\\\;0\quad 0\quad 1\;\end{bmatrix} [abc]× 200010001

ps:要用懒标记,其实和一般线段树下放懒标记没太大区别,第一次接触可能需要自己体会一下。

#include <bits/stdc++.h>
#define il inline
#define get getchar
#define put putchar
#define is isdigit
#define int long long
#define dfor(i,a,b) for(int i=a;i<=b;++i)
#define dforr(i,a,b) for(int i=a;i>=b;--i)
#define dforn(i,a,b) for(int i=a;i<=b;++i,put(10))
#define mem(a,b) memset(a,b,sizeof(a))
#define memc(a,b) memcpy(a,b,sizeof(a))
#define pr 114514191981
#define gg(a) cout<<a,put(32)
#define INF 0x7fffffff
#define tt(x) cout<<x<<'\n'
#define tf(x) cout << "-> " << x << " <-" << '\n';
#define endl '\n'
#define ls i<<1
#define rs i<<1|1
#define la(r) tr[r].ch[0]
#define ra(r) tr[r].ch[1]
#define lowbit(x) (x&-x)
#define ct cin.tie(nullptr),ios_base::sync_with_stdio(false)
using namespace std;
typedef unsigned int ull;
typedef pair<int, int> pii;
int read(void) {int x=0,f=1;char c=get();while(!is(c)) (f=c==45?-1:1),c=get();while(is(c)) x=(x<<1)+(x<<3)+(c^48),c=get();return x*f;
}
void write(int x) {if (x < 0) x = -x, put(45);if (x > 9) write(x / 10);put((x % 10) ^ 48);
}
#define writeln(a) write(a), put(10)
#define writesp(a) write(a), put(32)
#define writessp(a) put(32), write(a)
const int N = 1e5 + 10, M = 2e5 + 10, SN = 1e3 + 10, mod = 1e8, MOD = 998244353;
int c[N], a[N << 2][3], base[3][3], lazy[N << 2][3][3];
void init(int p[3][3]) {for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) p[i][j] = i == j;}
}
void pushup(int i, int a[][3]) {for (int j = 0; j < 3; ++j) a[i][j] = (a[ls][j] + a[rs][j]) % MOD;
}
void pushdown1(int a[3][3], int b[3][3]) {int t[3][3];mem(t, 0);for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) {for (int k = 0; k < 3; ++k) t[i][j] = (t[i][j] + a[i][k] * b[k][j]) % MOD;}}for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) a[i][j] = t[i][j];}
}
void pushdown2(int a[3], int b[3][3]) {int t[3];mem(t, 0);for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) t[i] = (t[i] + a[j] * b[j][i]) % MOD;}for (int i = 0; i < 3; ++i) a[i] = t[i];
}
void build(int i, int l, int r) {init(lazy[i]);if (l == r) { a[i][c[l] - 1] = 1; return ;}int mid = (l + r) >> 1;build(ls, l, mid), build(rs, mid + 1, r);pushup(i, a);
}
void modify(int i, int l, int r, int L, int R) {if (L <= l && r <= R) {pushdown1(lazy[i], base);pushdown2(a[i], base);return ;}pushdown1(lazy[i << 1], lazy[i]), pushdown1(lazy[i << 1 | 1], lazy[i]);pushdown2(a[ls], lazy[i]), pushdown2(a[rs], lazy[i]);init(lazy[i]);int mid = (l + r) >> 1;if (L <= mid) modify(ls, l, mid, L, R);if (R > mid) modify(rs, mid + 1, r, L, R);pushup(i, a);
}
signed main() {int T = 1;
//    T = read();while (T--) {int n = read(), m = read();for (int i = 1; i <= n; ++i) c[i] = read();build(1, 1, n);while (m--) {int l = read(), r = read(), op = read(), cla = read() - 1;init(base);if (op == 3) {base[cla][cla] = 2;}else {int clb = read() - 1;if (op & 1) {base[cla][cla] = base[clb][clb] = 0;base[cla][clb] = base[clb][cla] = 1;}else base[cla][cla] = 0, base[cla][clb] = 1;}modify(1, 1, n, l, r);writesp(a[1][0]), writesp(a[1][1]), writeln(a[1][2]);}}return 0;
}

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

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

相关文章

九:爬虫-MongoDB基础

MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。它支持的数据结构非常松散&#xff0c;因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大&#xff0c;其…

Tomcat与Netty比较

Tomcat介绍Tomcat支持的协议Tomcat的优缺点Netty介绍Netty支持的协议Netty的优点和缺点Tomcat和Netty的区别Tomcat和Netty的应用场Tomcat和Netty来处理大规模并发连接的优化Tomcat与Netty的网络模型的区别Tomcat与Netty架构设计拓展 Tomcat介绍 Tomcat是一个免费的、开放源代码…

JavaOOP篇----第十五篇

系列文章目录 文章目录 系列文章目录前言一、有没有可能两个不相等的对象有相同的hashcode二、拷贝和浅拷贝的区别是什么?三、static都有哪些用法?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通…

RabbmitMQ基础

RabbmitMQ基础 1.1 什么是MQ MQ(Message Queue)&#xff0c;从字面意思看&#xff0c;本质是个队列&#xff0c;FIFO先入先出&#xff0c;队列中存放的是message。是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中&#xff0c;MQ是一种非常常见的上下游…

10 NAT网络地址转换

广域网技术 上面聊的内容都是内网的一些配置&#xff0c;但内网终将要访问外网的&#xff0c;我们需要怎么处理呢&#xff1f;一般使用HDLC&#xff08;高级数据链路控制协议&#xff09;或者PPP&#xff08;点对点协议&#xff09;。 使用PPP安全接入Internet PPP&#xff0…

PHP函数定义和分类

函数的含义和定义格式 在PHP中&#xff0c;允许程序员将常用的流程或者变量等组件组织成一个固定的格式实现特定功能&#xff0c;也就是说函数是具有特定功能特定格式的代码段。 函数的定义格式如下&#xff1a; function 函数名(参数1&#xff0c;参数2&#xff0c;参数n) {…

基于SSM的双减后初小教育课外学习生活活动平台的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说&#xff0c;我们将使用ILI9431显示器作为显示设备&#xff0c;并通过UDP协议将图片数据从发送端传输到ESP8266。最后&#xff0c;我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中&#xff0c;我们将面临一些编程挑战&…

STM32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件

资料下载: https://download.csdn.net/download/vvoennvv/88658447 一、概述 关于IAP的原理和Ymodem协议&#xff0c;本文不做任何论述&#xff0c;本文只论述bootloader如何使用串口通过Ymodem协议接收升级程序并进行IAP升级&#xff0c;以及bootloader和主程序两个工程的配置…

最常见的SQL报错注入函数(floor、updatexml、extractvalue)及payload总结

SQL报错注入是一种常见的SQL注入攻击方式&#xff0c;攻击者通过注入恶意代码&#xff0c;触发数据库的错误响应&#xff0c;并从错误信息中获取有用的信息。 下面介绍最常见的三个报错注入函数用法及payload总结&#xff1a; 1、floor() 使用floor报错注入&#xff0c;需要…

Centos 7.9安装Oracle19c步骤亲测可用有视频

视频介绍了在虚拟机安装centos 7.9并安装数据库软件的全过程 视频链接&#xff1a;https://www.zhihu.com/zvideo/1721267375351996416 下面的文字描述是安装数据库的部分介绍 一.安装环境准备 链接&#xff1a;https://pan.baidu.com/s/1Ogn47UZQ2w7iiHAiVdWDSQ 提取码&am…

Java经典框架之Spring

Java经典框架之Spring Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring简介 2.…

T-Dongle-S3开发笔记——相关配置

portTICK_PERIOD_MS设置 Flash配置 Flash SPI mode 默认是DIO&#xff0c;改为QIO (W25Q128支持QIO) DIO与QIO区别&#xff1a; esp8266&#xff0c;esp32中的SPI FLASH 访问模式&#xff08;QIO QOUT DIO DOUT&#xff09;_qio dio-CSDN博客 Dual SPI:MOSI 和 MISO 引脚…

等腰三角形两底角相等

等腰三角形定义: 是指至少有两边相等的三角形。相等的两个边称为这个三角形的腰 二.证明 有等腰△ABC,AB和AC是腰,p是BC的中点 证明等腰三角形两底角相等 即 ∠ A B P ∠ P C A ∠ABP∠PCA ∠ABP∠PCA ∴ ∴ ∴ 三角形内角和为180 ∵ { ∠ A B P ∠ A P B ∠ B A P 180 …

什么是视频号小店?怎么开通,上架产品,一篇详解!

大家好&#xff0c;我是电商糖果 一个做了七年电商的95后&#xff0c;现居河南郑州。 混迹互联网多年&#xff0c;电商圈的gai溜子&#xff0c;偶尔会抽抽风。 这篇文章分享的内容是糖果在2022年做的电商项目——视频号小店。 因为它是刚出来的&#xff0c;很多人对此不是很…

leetcode 1576. 替换所有的问号(easy)(优质解法)

链接&#xff1a;1576. 替换所有的问号 代码&#xff1a; class Solution {public String modifyString(String s) {char[] charSs.toCharArray();int lengthcharS.length;//遍历找到 &#xff1f;for(int i0;i<length;i){if(charS[i]?){//遍历 a ~ z 选择一个合适的字符来…

12.21 汇编点亮STM32MP157小灯

.text .global _start _start: 时钟使能LDR r0,0x50000A28LDR r1,[r0]ORR r1,r1,#(0x1<<4)ORR r1,r1,#(0x1<<5)ORR r1,r1,#(0x1<<1)STR r1,[r0]配置GPIO模式LDR r0,0x50006000LDR r1,[r0]BIC r1,r1,#(0x2<<20)ORR r1,r1,#(0x1<<20)BIC r1,r1,#(…

Redis高并发缓存设计问题与性能优化

Redis高并发缓存设计问题与性能优化 缓存设计典型问题缓存穿透缓存失效(击穿)缓存雪崩热点缓存key重建优化缓存与数据库双写不一致 开发规范与性能优化一、键值设计1. key名设计2. value设计big key的危害&#xff1a;1.导致redis阻塞2.网络拥塞3. 过期删除 big key的产生&…

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作&#xff0c;照着流程操作会清除整个硬盘里的文件&#xff0c;请考虑清楚哦&#xff5e; 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…

AI日报:2024年人工智能对各行业初创企业的影响

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 2024年人工智能对初创企业的影响具体行业医疗金融服务运输与物流等 新趋势 2024年人工智能对初创企业的影响 2023年见证了人工智能在各个行业的快速采用和创新。随着我们步入2024年&#xff0c;人工智能初创公司正…