- 博客(148)
- 资源 (1)
- 收藏
- 关注

原创 历年NOIP/CSP题解(持续更新)
文章目录2020年NOIPCSPJCSPS2019年CSPJCSPS2018年NOIP普及组NOIP提高组2017年NOIP普及组NOIP提高组2016年NOIP普及组NOIP提高组2015年NOIP普及组2020年NOIPNOIP2020T1题解NOIP2020T2题解NOIP2020T3题解NOIP2020T4题解:暂无CSPJCSP-J2020第一题(优秀的拆分)题解CSP-J2020第二题(直播获奖)题解CSP-J2020第三题(表达式)题解CSP-J2020第四题(方格取数)
2021-08-20 21:16:51
2501
22

原创 C++快读快写(适用于整数变量)模版(详细注释版)
前言快读快写就是通过一小部分的手动实现(当然要调一些函数),达到快速输入/输出的效果.快读思路通过从头到尾读取字符,记录是否有负号,其余部分用累加器累加(注意不同数位的处理).代码template<typename T> inline void read(T &x) { // template的用法详见https://www.jianshu.com/p/31d7e18372e2,里面的typename代表变量类型,如果换作class代表<>里的变量类型,适用于cl
2021-03-04 20:19:00
2871
6
原创 蒟蒻君的刷题日记Day15(计算几何T1):P3219 [HNOI2012]三角形覆盖问题
Good Good 贺题,Day Day Up!!
2022-02-10 21:50:20
454
3
原创 蒟蒻君的刷题日记Day12(线段树专题T4):P8082 [COCI2011-2012#4] KEKS 线段树版题解
Good Good 贺题,Day Day Up!!
2022-02-08 14:01:53
740
原创 蒟蒻君的刷题日记day10(DP专题T1):CF453A Little Pony and Expected Maximum
解题思路水一发题解。由结论 [1,x][1,x][1,x] 共有 xnx^nxn 种方案可知:若我们取的 nnn 次中最大值为 xxx , 则总方案数为:∑i=1min−(i−1)nmn×i=∑i=1m[(im)n−(i−1)n]×i\sum_{i=1}^m{\frac{i^n-(i-1)^n}{m^n} \times i} = \sum_{i=1}^m \left [{\left ( \frac{i}{m} \right)^n- \left (i-1 \right )^n} \right ] \t
2022-02-07 19:56:23
369
2
原创 蒟蒻君的刷题日记Day9(数学专题T3):CF294C Shaass and Lights
Good Good 贺题, Day Day Up !!
2022-02-04 16:13:48
457
原创 蒟蒻君的刷题日记之Day8(数学专题T2):CF983A Finite or not?
Good Good 贺题, Day Day Up !!
2022-02-03 10:06:46
748
3
原创 蒟蒻君的刷题日记Day5(线段树专题T2):CF703D Mishka and Interesting sum
文章目录解题思路:树状数组代码实现解题思路:树状数组题目中要求的是出现偶数次数的异或和。可知,两个相同的数异或为000,则 答案 = l−rl-rl−r所有数的异或和 ⊕\oplus⊕ 出现过数的异或和,这样出现奇数次的就 无 啦~这些异或和需要用树状数组维护一下。总结一下,这道题考察了树状数组的应用,作为紫题较水。因为本题求得是出现次数为偶数次数的异或和,我们可以知道,两个相同的数异或和为0,那么区间l-r之间的异或和即为出现次数为奇数个数数的异或和,这样我们再求一下区间l-r中不同数的异
2022-01-25 10:32:13
469
原创 蒟蒻君的刷题日记Day3:CF1C Ancient Berland Circus
大家好,我是你们最喜欢的蒟蒻君~从今天开始,蒟蒻君将和大家一起刷CF。每天一道CF,十年后你将AKCF!!今天是第三天,距离AKCF还剩3647天,加油~~文章目录题目大意解题思路代码实现题目大意给出多边形的三个顶点,求多边形最小面积。解题思路众所周知,这是一道计算几何题。很明显,正多边形的顶点肯定都在这三个顶点构成三角形的外接圆上;首先,我们可以求出外接圆的半径;然后,根据求出三角形的三个角,和对应圆心角;最后,枚举3−1003-1003−100边形,依次判断即可。需要用到
2021-12-19 19:11:10
399
8
原创 蒟蒻君的刷题日记Day2:CF1B Spreadsheets
大家好,我是你们最喜欢的蒟蒻君~从今天开始,蒟蒻君将和大家一起刷CF。每天一道CF,十年后你将AKCF!!今天是第二天,距离AKCF还剩3648天,加油~~文章目录题目大意解题思路代码实现题目大意题目中给出了两种表示位置的方法:Excel表示法:用大写字母A→ZA \to ZA→Z表示列,数字表示行。对于大写字母表示列:从右到左,第iii个字符的权值是26i−126^{i-1}26i−1,值是这个字母在大写字母表里的顺序 ×\times×权值,列数则是所有字母值之和。例如,BC23表示
2021-12-19 17:29:37
467
原创 蒟蒻君的刷题日记Day1:CF1A Theatre Square
每天一道CF,十年后你将AKCF!!今天是第一天,距离AKCF还有3649天~~
2021-12-19 16:22:17
530
2
原创 蒟蒻君的数学学习之路2——质数相关算法
⭐前言若ppp为质数,则:p∈Np \in Np∈N且p>1p>1p>1;pmod ∀i∈[2,p−1]≠0p \mod \forall i \in [2,p-1] \neq 0pmod∀i∈[2,p−1]=0。即ppp为>1>1>1的整数且ppp有且仅有111和ppp两个因数。今天,蒟蒻君将和大家一起学习质数相关算法。文章目录⭐前言⭐一、质数判定????1.1n1.1 \sqrt n1.1n试除????思路????代码????1.21.21.2
2021-11-29 22:01:33
2547
10
原创 蒟蒻君的数学学习之路1:斐波那契数列的n种解法
文章目录前言一、 递推1.1 思路1.2 优化:滚动数组1.3 效率分析1.4 代码二、递归2.1 思路2.2 效率分析2.3 代码三、矩阵快速幂3.1 数学知识:矩阵与矩阵快速幂3.2 思路3.3 效率分析3.4 代码四、通项公式4.1 公式及证明:待定系数法4.2 效率分析4.3 代码五、算法比较前言一、 递推1.1 思路1.2 优化:滚动数组1.3 效率分析1.4 代码二、递归2.1 思路2.2 效率分析2.3 代码三、矩阵快速幂3.1 数学知识:矩阵与矩阵快速幂3.2 思路
2021-11-16 21:21:16
1115
17
原创 C++黑客小白的进阶之路(第一世界初识Windows编程之第一关)——Windows的消息机制
哈罗大家好,我是你们喜欢的蒟蒻君~从今天开始,蒟蒻君要和大家一起学习C++黑客啦!!注:代码在DEV-C++上是编译不了的,需要用vscode或者vc才行。文章目录简介:消息机制?初探API函数调试消息机制:查看记事本属性简介:消息机制?Windows中应用是基于消息机制哒~ 消息,就是系统生成的一个32位(相当于int类型)的值,这个值就想系统说明了一个事件 (不会重复)。比如用户点了一下鼠标,敲了一下键盘,或者拖动了一下窗口,这些都会报告给Windows。了解完什么是Windows的消息.
2021-09-23 20:47:22
3395
39
原创 手撕STL(2)——队列的内部实现
文章目录前言代码(链表存储)前言队列小伙伴们一定不陌生,本节课蒟蒻君来带大家学习队列的内部实现。代码(链表存储)#include <bits/stdc++.h>using namespace std;// 定义链表 template<class T>struct node { T num; node<T>* nxt;};template<class T>class MyQueue { private: .
2021-09-11 11:57:46
867
27
原创 手撕STL(1)——栈的内部实现
文章目录前言代码(详见注释)前言蒟蒻君开始写STL了…代码(详见注释)#include <bits/stdc++.h>#include <cstddef>using namespace std;// 定义链表template <class T>struct node { T num; node<T>* nxt;};template<class T>class MyStack { private: .
2021-09-11 09:50:34
381
原创 NOIP2014提高组Day1T1(生活大爆炸版石头剪刀布)题解
文章目录题目信息解题思路法1:纯模拟(T(n) + O(n))法2:数学优化(T(min{n, na * nb / GCD(na, nb)}) + O(n))代码实现法1法2题目信息题目传送门解题思路法1:纯模拟(T(n) + O(n))模拟n比赛,用两个变量记录两个人出到周期的第几位了,然后判断谁能赢。法2:数学优化(T(min{n, na * nb / GCD(na, nb)}) + O(n))若n ≤ na * nb,即小A和小B已经重新回到na1对nb1了,那么直接按照法1模拟一.
2021-09-04 21:40:48
427
6
原创 NOIP2014普及组T3(螺旋矩阵)题解
文章目录题目信息解题思路法1:模拟(T(n^2^) + O(n^2^))+ 50pts法2:数学(T(1) + O(1)) + 100pts代码实现法1法2题目信息题目传送门解题思路法1:模拟(T(n2) + O(n2))+ 50pts直接用螺旋矩阵的排列方式模拟,一直右下左上。但是…TLE+MLE啊QWQ。法2:数学(T(1) + O(1)) + 100pts细心的小伙伴会发现,我们只需要查询矩阵中的第一个数,也就是说不需要构造出矩阵中所有数。我们可以找到(x, y)在第几圈,然.
2021-09-04 17:18:24
592
3
原创 C++桌面贪吃蛇,能通关的都是大神(Windows可编译)
文章目录运行效果代码实现(详见注释)运行效果传送代码实现(详见注释)#include <bits/stdc++.h>#include <windows.h>#include <commctrl.h>#include <shlobj.h>#define get GetAsyncKeyState#define send SendMessageA#define LVM LVM_SETITEMPOSITION#define msg Message
2021-08-30 12:22:04
5699
91
原创 算法初探系列14——线性DP进阶之最大子段和与最长上升子序列
文章目录概述问题题目描述输入格式输出格式输入输出样例说明/提示数据规模与约定分析法1:枚举(T(n^3^) + O(1))法2:枚举+前缀和优化(T(n^3^) + O(1))法3:DP(T(n) + O(n))法4:DP + 前缀和优化(T(n) + O(1))法5(拓展):分治法(T(n) + O(n))实现法1法2法3法4法5概述上节课蒟蒻君和大家一起学习了线性DP初步,相信聪明伶俐的你已经很熟悉啦~这节课蒟蒻君带领大家解决线性DP的一个经典问题。问题题目描述给出一个长度为 n 的序
2021-08-27 22:02:32
1151
15
原创 算法初探系列13——线性DP初步
文章目录概述基本思想术语使用条件实现步骤题目1:蒟蒻君逛超市概述上节课我们学习了递推(新手建议看),这节课我们来学习和递推很类似的动态规划,即DP。基本思想问题的答案可以通过子问题的答案推出。让我们先回顾一下递归的基本思想:例如问题的参数为(10,11),我们可以将他化解为几个子问题,这几个子问题再继续化解,直到所有子问题都是有解的,在自底向上累加。动态规划其实就是记忆化搜索(不会的小伙伴可以忽略),每次将子问题的解存到一个表里,以后需要直接调用就可以,不用每次都继续向下分。目前,我们可以暂
2021-08-27 18:05:02
575
5
原创 算法初探系列12——递推
文章目录概述代入问题1:爬楼梯问题2:平面分割一、递推概念题目1:斐波那契题目2:错排概述大家好,我是颜值与才华并存的蒟蒻君~这节课,蒟蒻君将和大家一起学习最简单的动态规划——线性DP初步。代入问题1:爬楼梯共有n级台阶,蒟蒻君站在第0级的位置,每次能上1或2级台阶。请问,蒟蒻君走到第n级台阶有多少种走法?问题2:平面分割在一个平面上画n条直线,最多能将平面分割成多少部分?一、递推概念大家通过仔细观察后会发现,以上两道题都可以用找规律的方法解决。我们定义dpi为n = i时的答案,则:
2021-08-27 09:09:15
566
2
原创 NOIP2002普及组T2(过河卒)题解
文章目录题目信息解题思路法1:dfs(60pts)法2:dp(正解)代码实现法1法2题目信息题目传送门解题思路法1:dfs(60pts)先算出所有“马的控制点”,然后用深度优先搜索尝试每一条不途径这些点的路径。不熟悉dfs请点这里,这里和这里。法2:dp(正解)定义dpij为从起点走到(i, j)的总方案数。每个点可以从左边或者上边走过来,即dpij = dpi-1j + dpij-1马和马的控制点不能走,即这些地方的dp为0。不熟悉dp请点这里(链接暂空)代码实现法1#i
2021-08-26 20:33:13
529
1
原创 错题集7——池塘里的鱼
文章目录题目信息解题思路算法1(对于前40%数据):DP+滚动数组优化算法2(对于后60%数据):状压DP代码实现题目信息解题思路算法1(对于前40%数据):DP+滚动数组优化**状态定义** dpi为还剩i条鱼时第一条鱼的存活概率。滚动数组:时间复杂度: O(nlogn232)算法2(对于后60%数据):状压DP**状态定义:** dpk为到达状态k的概率。状态转移:tips: 上述popcnt为库函数 __builtin_popcount,求一个数的二进制表示中有多少
2021-08-25 17:34:00
434
3
原创 错题集6——听君一席话,如听一席话
文章目录题目信息解题思路代码实现题目信息解题思路O(n)递推算出每个字符串的长度,判断k是否合法。利用长度找规律,O(n)时间求出答案。代码实现#include <bits/stdc++.h>using namespace std;typedef long long ll;const string s1 = " words"; // size = 5const string s2 = " Listeningtoyour"; // size = 15const stri
2021-08-25 14:46:44
1045
3
千行代码的跑酷游戏,效果炫酷
2021-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人