前言:这场的题解由于蓝桥杯比赛拖延几天才发

关于本篇题解,目前还是有部分题没有解答出来正在加油补题ing

补题链接:Here

A - Competition

题意:给定 \(X,Y,Z\) 代表的意义为,超市一以 Y 元卖 X 克食料包

现在超市二的一包食料包重 \(Z\) 克,请问超市二的售价为多少才能比超市一便宜

思路:

理解一下题意就容易发现:\(\lfloor\frac{YZ - 1}{X}\rfloor\)

B - Xor of Sequences

给定两个严格上升的整数序列 A,B,现求仅出现在A和B的数字,最后结果升序打印

思路:

由于两个序列数据范围不大,直接暴力循环即可

然后赛后看了一下高rank的代码发现了一个函数:set_symmetric_difference

**set_symmetric_difference **可构造区间S1,S2的对称差集(出现于S1但不出现于S2的元素以及出现于S2但不出现于S1的元素);返回值为指向输出区间的尾端。

void solve() {
int n, m;
cin >> n >> m;
vector<int> A(n), B(m);
for (int &x : A) cin >> x;
for (int &x : B) cin >> x;
vector<int> C;
set_symmetric_difference(A.begin(), A.end(), B.begin(), B.end(), back_inserter(C));
for (int x : C) cout << x << " ";
}

C - Max GCD 2

题意:给定一个区间,问 \(A \le x < y \le B\) 求问最大的 \(gcd(x,y)\)

说实话,比赛的时候还真没想到这个方法。

思路:

由于数对 \((x,y)\) 的个数最多 \(2\times 10^{10}\) ,所以我们不可能计算每一对 \((x,y)\) ,相反的、并考虑是非问题“是否存在一对 \((x,y)\) 使得 \(gcd (x,y) = c\)?”

因为 \(c\) 是最大公约数,所以 \(x,y\) 都应该是 \(c\) 的倍数,相反如果在 \([A,B]\) 区间中 \(c\) 的倍数多于两个值,则可以选择 \(x,y\) 使得 \(gcd(x,y) = c\) 成立

由于 \(B \le 2\times10^5\) 所以运行速度会足够快

把上面的话转化为数学表达式:A ~ B 之间 C 的倍数 = (C 的倍数在 \(1\) ~ \(B\) 之间) - (C 的倍数在 \(1\) ~ \(A\) 之间)= \(\lfloor\frac{B}{c}\rfloor - \lfloor\frac{A - 1}{c}\rfloor\)

再转化一下就是检查 \(\lfloor\frac{A}{c}\rfloor < \lfloor\frac{B}{c}\rfloor\)


Show Code
void solve() {
int A, B;
cin >> A >> B;
for (int c = B;; c--)
if ((A + c - 1) / c < B / c) {
cout << c << endl;
return;
}
}

D - Nowhere P

给定质数 \(P\) ,求有多少序列 \((A_1,A_2,\dots,A_N)\) 满足:

\[\forall i\in[1,n]_\mathbb{N},\sum_{j = 1}^i A_j \not \equiv 0\ (mod\ P)
\]

显然,当 \(n = 1\) 时答案为 \(P - 1\) ,对应合法序列为 \((1),(2),\dots,(p - 1)\)

之后在这些合法序列后插入新数时,每个序列都有且仅有一个数使得这个数插入后该序列非法(该数即为 \((-\sum_ia_i)\ mod\ p\)

故答案为:\((p -1)(p-2)^{N-1}\)

跑 qpow 的时候记得取模

Show Code
const int mod = 1e9 + 7;
ll qpow(ll a, ll b) {
ll ans = 1;
a %= mod;
for (; b; b >>= 1, a = a * a % mod)
if (b & 1) ans = ans * a % mod;
return ans;
}
void solve() {
ll N, P;
cin >> N >> P;
cout << (P - 1) * qpow(P - 2, N - 1) % mod;
}

E - Level K Palindrome

本题所有的字符串均指只由小写英文字母构成的字符串

对字符串 \(s\),

  • 定义其反转为: \(\operatorname{rev}(s)\), 则 \(s\) 是回文串 \(\Longleftrightarrow\) \(s = rev(s)\)
  • \(+\) 运算定义为字符串的拼接
  • 定义字符串上的变换为:将其中某一字符替换为一小写英文字母

定义 \(k\) 阶回文串如下:

  • 空串,非回文串为 \(0\) 阶回文串
  • 对 \(i\) 阶非空回文串 \(s\) 定义 \(s + rev(s)\) 为 \(i + 1\) 阶回文串
  • 对 \(i\) 阶非空回文串 \(s\) 和单个字符 \(c_i\) \(s + c + rev(s)\) 为 \(i + 1\) 阶回文串

给一字符串 \(s\) 问至少经几次变换可使其恰好为 \(k\) 阶回文串

解题思路

显然,若有解则 \(k\) 不可能过大

待补

F - Max Matrix

有一个长为 \(n\) 的全零序列 \(a\) 和长为 \(m\) 的全零序列 \(b\) ,对其做如下操作

  • 将 \(a\) 中的某个数赋一个值
  • 将 \(b\) 中的某个数赋一个值

这两种操作一共进行 \(Q\)次,要求每次操作后都要输出

\[\sum_{i = 1}^n\sum_{j =1}^Mmax\{a_i,a_j\}
\]

待补

G - Spanning Tree

有n个点,考虑以这n个点为顶点,满足如下条件的所有图:

  • 无向图
  • 给出一个矩阵 \(A\)
    • 若 \(A_{i,j}=0\),则点 \(i\) 和点 \(j\) 间没有边
    • 若 \(A_{i,j}=0\),则点 \(i\) 和点 \(j\) 间没有边
    • 若 \(A_{i,j}=-1\),则为上述两种情况的任-种

求这些图中树的个数

思路

首先,考虑所以已经存在的边构成的图,如果有环了,则答案一定为0,否则森林中的每个树都可缩成一个点,之后用矩阵树定理即可

H - Shipping

给一个带权无向图,求满足如下条件的子图的最小边权和

\[\forall \in[1,M]_\mathbb{N},dis(x_i,y_i) \not= ∞
\]

题解 - Japanese Student Championship 2021的更多相关文章

  1. @atcoder - Japanese Student Championship 2019 Qualification - F@ Candy Retribution

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 请找到满足以下条件的长度为 N 的非负整数序列 A1, A2, ...

  2. @atcoder - Japanese Student Championship 2019 Qualification - E@ Card Collector

    目录 @description@ @solution@ @accepted code@ @details@ @description@ N 个卡片放在 H*W 的方格图上,第 i 张卡片的权值为 Ai ...

  3. PAT甲级题解-1047. Student List for Course (25)-排序

    一开始是建立了course[2501][40001]数组,存储每节课的学生编号然后for循环两层输出,但这样复杂度为O(2500*40000),也很明显导致最后时间超时后来发现最多40000学生,每个 ...

  4. yhm的丘赛题解(其中的一些简单题)

    有选择地做了丘赛里的一些简单题,不定期更新     目录 [简单组合数学]2011丘赛个人[应数计算数学概统]第3题题解 [拉格朗日多项式插值]2011丘赛个人[应数计算数学概统]第2题题解 [概率] ...

  5. MySql基本查询、连接查询、子查询、正则表达查询解说

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 查询数据指从数据库中获取所须要的数据.查询数据是数据库操作中最经常使用,也是最重要的操作.用户 ...

  6. 35. Romantic Love and Ideal Romantic Relationship 爱情及理想爱情关系

    35. Romantic Love and Ideal Romantic Relationship 爱情及理想爱情关系 ① Romantic love has clear evolutionary r ...

  7. mysql数据库查询

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  8. Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  9. OI卷题记录

    2021.8.2 LG3386 匈牙利算法 二分图 LG1377 笛卡尔树 题解 2021.8.3 LG2962 \(\text{Meet in middle}\) LG3389 高斯消元 高斯-约旦 ...

  10. Solution Set - 神奇 NOIP 模拟赛

    \[\mathfrak{\text{Defining }\LaTeX\text{ macros...}}\newcommand{\vct}[1]{\boldsymbol{#1}}\newcommand ...

随机推荐

  1. .NET 与 OpenEuler 共展翅,昇腾九万里

    openEuler 已支持 X86.ARM.SW64.RISC-V.LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完善多样性算力生态体验. openEuler 社 ...

  2. 开发工具使用:CubeMX、KEIL MDK-ARM

    来源:成电<微机原理与嵌入式系统>漆强 第四章 STM32CubeMX软件的使用 来源:成电<微机原理与嵌入式系统>漆强 第五章 MDK-ARM软件的使用 一.STM32的Cu ...

  3. C#中await /async 的使用场景,优点,使用方法介绍

    async/await 是 C# 中异步编程的关键特性,它使得异步代码编写更为简单和直观.下面深入详细描述了 async/await 的使用场景.优点以及一些高级使用方法,并提供了相应的实例源代码. ...

  4. 必知必会Java

    你好,我是阿光. 最近想着把工作中使用过的java命令都梳理一下,方便日后查阅.虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获.这也是这篇笔记的由来. 今天先聊聊 jps 命令. 命令概述 ...

  5. K8s 里如何优雅地使用 /dev/shm 实现容器间共享内存

    目录 1. 从 docker run 的 --shm-size 参数聊起 2. Linux 里的 /dev/shm 3. Docker 对共享内存的支持 4. K8s 里如何设置 /dev/shm 大 ...

  6. 数字孪生系统为何需要将GIS系统进行融合?

    数字孪生是一种通过数字模型实时仿真现实世界的技术,而GIS(地理信息系统)则是用于收集.存储.处理和展示地理数据的工具.将数字孪生系统与GIS系统进行融合,可以为各行业带来诸多优势和创新.那么数字孪生 ...

  7. 可视化大屏与GIS之间如何实现互补?

    在当今数字化时代,可视化大屏和地理信息系统(GIS)是两个在不同领域发挥重要作用的技术.可视化大屏以其生动.直观的图表.图像和动画展示方式,为数据可视化和信息展示提供了强大的工具.而GIS则通过地理空 ...

  8. ElasticSearch之Analyze index disk usage API

    本API用于分析.统计指定index当前占用的存储空间. 考虑到本特性目前仍然处于预览状态,因此使用方法.参数等可能会发生变化,或者未来也许会被删除. 本API暂时不建议在生产系统中使用. 命令样例如 ...

  9. 斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 01.基础AI与行为树

    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 前言&摘要 本篇文章是基于斯坦福UE4 C++课程的学习记录.因为B站用户surkea由于学业原因,暂停了课程 ...

  10. 昇腾实战丨DVPP媒体数据处理图片解码问题案例

    摘要:本期就分享几个关于DVPP图片解码问题的典型案例,并给出原因分析及解决方法. 本文分享自华为云社区<DVPP媒体数据处理图片解码问题案例>,作者:昇腾CANN . DVPP(Digi ...