蓝桥杯 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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter、postman、python 三大主流技术如何操作数据库?

1、前言 只要是做测试工作的&#xff0c;必然会接触到数据库&#xff0c;数据库在工作中的主要应用场景包括但不限于以下&#xff1a; 功能测试中&#xff0c;涉及数据展示功能&#xff0c;需查库校验数据正确及完整性&#xff1b;例如商品搜索功能 自动化测试或性能测试中&a…

CentOS 7 设置网络

CentOS 7 设置网络 正常情况 ①登陆进去之后使用下面的命令修改文件 echo ONBOOTyes >> /etc/sysconfig/network-scripts/ifcfg-ens33②如果是虚拟机重启后使用如下命令进行查看IP地址 ip addr注&#xff1a;到这里如果显示有两部分&#xff0c;则代表网络设置成功&a…

在同一局域网下连接共享文件夹失败,提示:你不能访问共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问

1.尝试打开guest访问。 &#xff08;1&#xff09;使用键盘 win R 键&#xff0c;打开运行窗口&#xff0c;并输入 gpedit.msc 打开本地组策略编辑器窗口 &#xff08;2&#xff09;选择计算机配置------->管理模板-------->网络-------->Lanman工作站。 &#…

WorkPlus超级APP助力企业节省IT人力成本,实现快速移动化

在信息化时代&#xff0c;移动应用已经成为企业发展的重要组成部分。然而&#xff0c;开发和维护原生客户端的成本却相对较高&#xff0c;需要大量的iOS、安卓和桌面端工程师。为了解决这一问题&#xff0c;WorkPlus作为一个功能完备的超级APP&#xff0c;为企业节约了大量的IT…

【算法提升—力扣每日一刷】五日总结【12/18--12/22】

文章目录 2023/12/18LeetCode每日一刷&#xff1a;[20. 有效的括号](https://leetcode.cn/problems/valid-parentheses/) 2023/12/19LeetCode每日一刷&#xff1a;[150. 逆波兰表达式求值&#xff08;后缀表达式运算&#xff09;](https://leetcode.cn/problems/evaluate-rever…

EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)

EA常见活动图&#xff0c;状态图画法 类图:111&#xff08;1&#xff09;给关系添加注释&#xff08;2&#xff09;设置关系线样式 包图&#xff1a;&#xff08;1&#xff09;创建包图&#xff08;2&#xff09;在包中添加子包&#xff1a;&#xff08;3&#xff09;在包中添加…

【OAuth】快速入门

一、引言 1、什么是OAuth2.0&#xff1f; OAuth 2.0是一个关于授权的开放网络协议&#xff0c;允许用户授权第三方应用访问其在服务提供商上存储的资源&#xff08;如照片、视频、联系人列表&#xff09;&#xff0c;而无需将用户名和密码提供给第三方应用。OAuth 2.0在第三方应…

该酷的酷该飒的飒,穿出自己的潮流前线

精选匈牙利白鸭绒填充&#xff0c;柔软蓬松 舒适感很强&#xff0c;回弹性好 没有什么异味很干净安全 宝贝穿上去保暖又舒适 树脂拉链&#xff0b;金属按扣&#xff0c;松紧帽檐&#xff0b;袖口 下摆还做了可调节抽绳&#xff0c;细节满满防风保暖很nice 短款设计相较于…

分享 | 软件测试的基本流程是什么?软件测试流程详细介绍

软件测试 软件测试和软件开发一样&#xff0c;是一个比较复杂的工作过程&#xff0c;如果无章法可循&#xff0c;随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化&#xff0c;并且快速、高效、高质量地完成测试工作&#xff0c;需要制订完整且具体的测试…

12.21~12.24最短路,dij,堆优化dij,spfa

有条件的最短路径一定长于无条件的最短路径 朴素dij dij的思路就是先入起点&#xff0c;然后从起点开始向四周遍历&#xff0c;每次确定一个实际最短的&#xff0c;&#xff0c;这里注意&#xff0c;正是因为没有负权&#xff0c;所以越早遇到的最短&#xff0c;就一定是最短…

智能变电站协议系列-2、SV/SMV协议示例(IEC61850)以及5G专网下的电力方案分析

文章目录 一、前言二、资料准备三、libiec61850的SV运行示例及抓包分析1、单独编译示例程序2、运行示例程序及5G专网场景下部署3、wireshark抓包分析 四、最后 一、前言 之前我们对IEC61850协议有了整体的了解&#xff0c;对一些概念有了一定的认识&#xff0c;并针对GOOSE协议…

JWT、session、token区别和实现

JWT、session、token区别和实现 这里需要用到Redis和JWT。 springboot版本是3.2.1 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><…

【MySQL】mysql执行查询超过30秒之后报错

出现场景&#xff1a; 用workbench&#xff0c;查本地数据库&#xff0c;执行查询超过30秒之后&#xff0c;会报错断开连接&#xff0c;报错信息&#xff1a;Error Code: 2013. Lost connection to MySQL server during query 解决办法&#xff1a; 修改配置设置&#xff0c…

数据可视化分析大屏,大数据统计UI页面源文件(信息分析平台免费PS资料)

数据可视化可以帮助数据分析者更好地理解数据&#xff0c;发现数据中的规律和趋势。通过图表和图形等可视化工具&#xff0c;数据分析者可以更快速地发现数据中的关系&#xff0c;比如相关性、趋势、异常值等。对于普通用户来说&#xff0c;理解复杂的数据可能会很困难。通过数…

【开源】基于JAVA语言的学校热点新闻推送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新闻留言模块2.4 新闻评论模块2.5 新闻收藏模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 新闻类型表3.2.2 新闻表3.2.3 新闻留言表3.2.4 新闻评论表3.2.5 新闻收藏表 四、系统展…

Anylogic Pro 8.8.x for Mac / for Linux Crack

Digital twins – a step towards a digital enterprise AnyLogic是唯一一个支持创建模拟模型的方法的模拟建模工具&#xff1a;面向过程&#xff08;离散事件&#xff09;、系统动态和代理&#xff0c;以及它们的任何组合。AnyLogic提供的建模语言的独特性、灵活性和强大性使…

上传文件到七牛云的相关代码(可直接用)

首先在七牛云注册&#xff0c;然后选择对象存储&#xff0c;按照以下配置&#xff1a; 我的存储地区是华南-广东&#xff0c;注意这个如果选择不一样&#xff0c;后面的代码调用会有一点区别&#xff0c;访问控制选择公开&#xff0c;不然回显的外链无法访问。 记住这个空间名称…

HarmonyOS构建第一个ArkTS应用(Stage模型)

构建第一个ArkTS应用&#xff08;Stage模型&#xff09; 创建ArkTS工程 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发…

深入了解 Android 中的应用程序签名

深入了解 Android 中的应用程序签名 一、应用程序签名介绍1.1 应用程序签名1.2 应用程序签名的意义1.3 应用程序签名的流程1.4 应用程序签名的方案1.5 签名的重要性和应用场景 二、AOSP 的应用签名2.1 AOSP的应用签名文件路径2.2 应用程序指定签名文件 三、Android Studio 的应…

10:IIC通信

1&#xff1a;IIC通信 I2C总线&#xff08;Inter IC BUS&#xff09; 是由Philips公司开发的一种通用数据总线&#xff0c;应用广泛&#xff0c;下面是一些指标参数&#xff1a; 两根通信线&#xff1a;SCL&#xff08;Serial Clock&#xff0c;串行时钟线&#xff09;、SDA&a…