P10462 Number Base Conversion
Description题目传送门:P10462 Number Base Conversion。 直接套板子。 Analysis模拟,记得开 long long。 $\mathbb{n}$ 进制转十进制:套 c 语言库函数 strtol,该函数原型为 long int strtol(const char *str, char **endptr, int base)。其作用是将 $\mathcal str$ 转换成 $10$ 进制。 十进制转 $\mathbb{n}$ 进制:短除法,用基数 $n$ 去除,直到商为 $0$,逆序输出。 以 $114514$ 转 $16$...
P10522 [XJTUPC2024] 雪中楼
Description题目传送门:P10522 [XJTUPC2024] 雪中楼。 由于 $n \le 2 \times 10^5$,插入次数太多,考虑维护链表。 Analysis对于每次操作,输入 $a_i$,若 $i=0$ 就将 $a_i$ 插到链表尾部,否则插到 $a_i$ 左边,最后翻转完输出,就这么简单。 Code1234567891011121314151617181920212223242526272829303132#include <bits/stdc++.h>using namespace std;#define MAXN 2e5 + 10list <int> l;list <int> :: iterator number[int(MAXN)] = { l.begin() , l.end()};main(){ int n; cin >> n; for(int i = 1 ; i <= n ; i ++) { int x; cin >>...
P10520 [XJTUPC2024] 榕树之心
Description题目传送门:P10520 [XJTUPC2024] 榕树之心。 求: x^{\prime} = \frac{1}{2} x + \frac{1}{2} yy^{\prime} = \frac{\sqrt{3}}{2} x - \frac{\sqrt{3}}{2} yAnalysis直接模拟即可(运算记得带小数)。| 式子 | 作用 || :—————: | :—————: || $\frac{1}{2}x$ | $x \div 2.0\ \operatorname{or} \ 0.5 \times x$ || $\sqrt{x}$ | $\operatorname{sqrt}(x \times 1.0)$ | Code1234567891011#include <bits/stdc++.h>using namespace std;int main(){ int x , y; cin >> x >> y; cout << fixed << setprecision(6)...
P10532 [XJTUPC2024] 筛法
Description题目传送门:P10532 [XJTUPC2024] 筛法 求: \sum\limits_{i=1}^n\sum\limits_{j=1}^n\lfloor \dfrac{n}{\max(i,j)}\rfloor [i \perp j]显然发现答案为 $n^2$。 Analysis(转自讲评视频)我们可以从几何的角度出发: 考虑二维平面的 $n^2$ 个点 $(i,j)\ 1\le i,j\le n$。 从原点向每个满足 $i\perp j$ 的点 $(i,j)$ 引出一条射线,可以发现这 $n^2$ 个点均唯一存在于其中一条射线上,应为当 $\gcd(i,j)\not=1$ 时,$(i,j)$ 会被 $(\frac{i}{\gcd{(i,j)}},\frac{j}{\gcd{(i,j)}})$ 引出的射线覆盖。 我们再对每个 $i\perp j$ 的点对 $(i,j)$ 考虑其引出射线覆盖的点数,不难发现恰好就是 $\frac{n}{\max{(i,j)}}$,因为对所有 $1\le k\le \frac{n}{\max{(i,j)}}$,点对...
P10264 [GESP202403 八级] 接竹竿
Description题目传送门:P10264 [GESP202403 八级] 接竹竿 思维题,考虑倍增。 Analysis $30pts$ 模拟,$1\le a_i\le13$,根据题意,队列中不会存在两个相同的点数,所以队列的最大长度为 $13$,对于每一个 $(l,r)$,模拟加队列的过程,每添加一个牌从队列头开始查找有无相同的点数,如有则从队列中删除所有后续的元素。复杂度为 $O(T\times q\times N\times13)$。 $100pts$ 倍增,一共 $13$ 个点数,由题意,从自身出发,到下一个相同点数,这样的整段都可以被取走。每个点都可以维护下一个相同点数的位置。\但是这样的跳跃速度还是太慢了,通过倍增来加速。$nxt[i][j]$ 表示从 $i$ 出发的,第 $2\land j$ 个段的结尾位置。可知 $nxt[i][j+1]=nxt[nxt[i][j]+1][j]$。\复杂度 $O(T\times q\times \log...
✨简简单单写程序
每个伟大的梦想,都有一个微不足道的开始。 程序的设计目标和流程设计一个程序是为了让计算机始终不渝地遵循指令,以完成特定的任务。为了能让计算机听懂指令,我们编写程序来与计算机交流。 编程方法 使用IDE(集成编辑环境)例如:Dev C++ / CodeBlocks。 使用洛谷在线编程 https://www.luogu.com.cn/ide。 什么是编程程序 就是为实现特定目标或解决特定问题而用计算机语言编写的一系列令序列。 计算机语言 是人与计算机之间通信的语言。 编程 是程序员为解决特定问题,按照自己的思路,在遵循特定的计算机语言规则下编写程序的过程。 C++ 语言以 C++ 语言规则为例来学习编程。 直接原因: 信息学竞赛只允许使用 C++。 其他原因: 比较底层,运行速度快。 C++ 是编译语言,需要编译成可执行文件。 例1. 你好洛谷编写一个程序,让计算机告诉大家我爱洛谷,即I love...
P10314 [SHUPC 2024] 函数
题目传送门:P10314 [SHUPC 2024] 函数 解函数题。 函数解读f(x)=x-0.5+\frac{\arctan(\cot(\pi x))}{\pi} 函数 名称 $\operatorname{c++}$ $\arctan$ 反正切函数 $\operatorname{atan}(\operatorname{double} x)$ $\cot$ 余切函数 $1.0/\tan(\operatorname{double} x)$ $\pi$ 圆周率 std::numbers::pi 所以,我们可以得出代码: 1inline double f(double x){return x - 0.5 + atan(1.0 / tan(std::numbers::pi * x)) / std::numbers::pi;}CODE123456789101112131415161718#include <bits/stdc++.h>using namespace std;inline double f(double...