24年CCPC郑州邀请赛VP
发布时间:
24年CCPC郑州邀请赛暨第六届CCPC河南省赛 A. Once In My Life 题意:一个数的数位包含 1~9 并且至少两个数位是 d 的十进制正整数都是幸运数。给出 d 和一个正整数 n,输出一个 k 使得 n*k 是幸运数。 题解:我们需要先构造出乘积。1234567890 满足包含 1~9 的条件,再加上 d 满足幸运数。为了不影响这个数幸运数的性质,我们可以在这个数后面添加几... Read more
发布时间:
24年CCPC郑州邀请赛暨第六届CCPC河南省赛 A. Once In My Life 题意:一个数的数位包含 1~9 并且至少两个数位是 d 的十进制正整数都是幸运数。给出 d 和一个正整数 n,输出一个 k 使得 n*k 是幸运数。 题解:我们需要先构造出乘积。1234567890 满足包含 1~9 的条件,再加上 d 满足幸运数。为了不影响这个数幸运数的性质,我们可以在这个数后面添加几... Read more
发布时间:
2024贵州省赛题解 A. 破解住宿信息 简单判断。输入字符串含空格,整行输入。 string s; getline(cin,s); int sum=0,x; x=s.find("GZU"); while(x!=-1){ sum++; x=s.find("GZU",x+1); } if(sum==0) cout<<"yezhulin"; else if(sum%2) cout&l... Read more
发布时间:
12届集美大学校赛题解 官方难度排序参考: Easy:GBJHD Medium:CAEL Hard:KIF A. 地砖 题意:n×m 的矩形,向每个格子中填充字母,使得所有同字母联通块必须为正方形。最小化从上到下、从左到右的字典序。 题解:最小化字典序是经典的贪心问题。按照从上到下、从左到右的顺序枚举每一个未填充格子的颜色,判断是否可行。 B. 逃离蜂巢 题意:有 n 个陷阱,每拆除一个陷阱... Read more
发布时间:
题目描述 GZU 的农学院在阅湖养了 n 只鸭子,每只鸭子的肉质都有其对应的鲜美度,第 i 只鸭子的鲜美度是在 \([l_i,r_i]\) 中的任意整数。求这 n 只鸭子的鲜美度单调不减的方案数,对 998244353 取模。 输入:第一行一个整数 n (1≤n≤500);接下来 n 行每行两个整数 \(l_i,r_i (1≤l_i,r_i≤10^9)\) 输出:满足条件的方案数,对 998... Read more
发布时间:
动态规划学习(1) 《算法竞赛入门到进阶》学习。 《算法竞赛入门到进阶》 1. 动态规划的概念和思想 DP(Dynamic Programming)是一种算法思想,不是一个特定的算法。 DP 与分治法的区别: 分治法是将问题分成独立的子问题,每个子问题能独立解决 DP 的子问题是相关的,前面子问题的解决结果被后面的子问题使用。 求解 DP 有 3 步:定义状态、状态转移、算法实现。 2. 基... Read more
发布时间:
两个二分函数自定义对于结构体的二分查找,还有官方的自定义比较函数。 lower_bound() 有两种形式: lower_bound (first, last, val);(无自定义比较) lower_bound (first, last, val, Compare comp);(自定义比较) 在有序的前提下,lower_bound 返回指向第一个值不小于 val 的位置,也就是返回第一个大... Read more
发布时间:
常见优化技巧包含 4 个部分:双指针法,空间换时间,单调栈,单调队列。 双指针法 双指针又叫尺取法或者 two-pointers,用两个指针维护一段序列区间的方法,一般 \(O(n)\) 即可解决。 双指针法本质上是使用队列维护一个符合条件的区间。右指针增加相当于入队,左指针增加相当于出队。 一般双指针题目也就是两个指针遍历一遍,时间复杂度一般为 \(O(n)\)。 习题1:P1102 A-... Read more
发布时间:
C++的pb_ds库 pb_ds 库是 GNU C++ STL 的一部分,它提供了一系列灵活、高效的数据结构,允许开发者根据具体需求定制数据结构的行为。在本篇博客中,我们将深入了解 pb_ds 库中提供的主要功能和数据结构。 1. Ordered Set 和 Ordered Map 这两个数据结构允许自定义排序规则,提供了有序集合和有序映射的功能。 Ordered Set 主要操作: ins... Read more
发布时间:
部分记忆不深算法 set、排序、排列、二进制。 set 的几个函数 set<int> st; st.find(k); //返回一个迭代器,指向键值k st.lower_bound(k);//返回一个迭代器,指向键值大于等于k的第一个元素 st.upper_bound(k);//返回一个迭代器,指向键值大于k的第一个元素 sort 的相关函数 stable_sort();//如果排... Read more
发布时间:
LaTeX基础学习 1. LaTeX的基本结构 1.1 基本结构 LaTeX 中主要分为导言区和正文区。 % 导言区 \documentclass{article} \usepackage{ctex} %正文区 \begin{document} Hello \end{document} 1.2 导言区 导言区通常用于定义文档的格式、语言等(全局设置)。 \documentclass Clas... Read more
发布时间:
一个各种刷题网站统计比赛和刷题数据的项目,可以通过这个查询自己各网站刷题数占比,各网站比赛时间和当前分数最高分数,有 Windows 和 Android 版本。 GitHub 项目地址:2754LM/oj_helper 点击 Release 下载对应版本即可。 oj_helper 2.5.0 版本有如下功能: 查询主流刷题网站比赛时间 查询各网站解题数量 查询各网站排位分 包含 ccpcfi... Read more
发布时间:
Typora插件配置 将 Typora 0.9.93 更新至 0.9.98,并且更改注册表使得右键可以新建 md 文档,并且安装 Typora 的相关插件,实现模板写入及更多便利功能。 Typora 0.9.98版本下载 在网上找到的资源,0.9.98 是最后一个免费版本。我原本使用的是 0.9.93,但是安装插件后出现插件警告提示版本过低(后来发现插件配置可以关掉这个提示),后更新至 0.... Read more
发布时间:
前端学习 列表,表格,表单,语义化,字符实体。 列表 列表分类:无序列表、有序列表、定义列表。 无序列表 标签:ul 嵌套 li,ul 是无序列表,li 是列表条目。 <ul> <li>第一项</li> <li>第二项</li> <li>第三项</li> ...... </ul> 注意事项: ul... Read more
发布时间:
前端学习 标签语法,基本骨架,注释,标题,文本,图像,路径,超链接,音视频。 1. 标签语法 HTML 超文本标记语言——HyperText Markup Language 超文本是什么?链接 标记是什么?标记也叫标签,带尖括号的文本 双标签基本格式:<开始标签>内容<结束标签> 基本语法: 标签成对出现,中间包裹内容 < > 里面放英文字母(标签名) 结... Read more
发布时间:
《算法竞赛》第 4 章 高级数据结构 1. 并查集 并查集的基本操作 DSU用于处理一些不相交结合的合并问题。 初始化:表示 s[i] 是元素 i 所属的并查集。 s[i]=i; 查询:查找元素属于哪个并查集。(路径压缩) int find_set(int x){ if(x!=s[x]) s[x]=find_set(s[x]); return s[x]; } 合并:将两个元素并查集合并一起。... Read more
发布时间:
24年CCPC郑州邀请赛暨第六届CCPC河南省赛 A. Once In My Life 题意:一个数的数位包含 1~9 并且至少两个数位是 d 的十进制正整数都是幸运数。给出 d 和一个正整数 n,输出一个 k 使得 n*k 是幸运数。 题解:我们需要先构造出乘积。1234567890 满足包含 1~9 的条件,再加上 d 满足幸运数。为了不影响这个数幸运数的性质,我们可以在这个数后面添加几... Read more
发布时间:
优先队列重载 STL 中对优先队列进行封装,我们可以直接定义使用。插入与取出的时间复杂度为 \(O(log_2n)\)。 普通定义: priority_queue<int> pq; 调用系统排序定义: priority_queue<int,vector<int>,greater<int> > pq; priority_queue<int,... Read more
发布时间:
2024贵州省赛题解 A. 破解住宿信息 简单判断。输入字符串含空格,整行输入。 string s; getline(cin,s); int sum=0,x; x=s.find("GZU"); while(x!=-1){ sum++; x=s.find("GZU",x+1); } if(sum==0) cout<<"yezhulin"; else if(sum%2) cout&l... Read more
发布时间:
几道DP题目 牛客练习赛 139C,25 武汉邀请赛 FG 等 C-大卫的密码(牛客练习赛139) 题意:给定一个 \(n\times m\) 的网格图,从 (s,1) 出发,每次可以向右或者向下移动,当光标移动到最后一行的某个格子时,继续向下移动则会到达 (1,i) 格子。需要移动光标到达 (t,m),求最大价值和。 题解:二维 DP+限制。定义状态 \(dp[i][j]\) 表示在 (i... Read more
发布时间:
《算法竞赛》第 5 章 动态规划 1. DP概念和编程方法 1.1 DP的概念 DP是求解多阶段决策问题最优化的一种算法思想。 解决的问题具有两个特征。 重叠子问题:子问题会重叠,即多个不同问题会用到相同子问题 最优子结构:大问题的最优解由小问题最优解得来,但小问题最优解求解过程与大问题无关。 1.2 DP的两种编程方法 自顶向下(先大问题,再小问题),即递归记忆化搜索。 自底向上(先小问题... Read more
发布时间:
12届集美大学校赛题解 官方难度排序参考: Easy:GBJHD Medium:CAEL Hard:KIF A. 地砖 题意:n×m 的矩形,向每个格子中填充字母,使得所有同字母联通块必须为正方形。最小化从上到下、从左到右的字典序。 题解:最小化字典序是经典的贪心问题。按照从上到下、从左到右的顺序枚举每一个未填充格子的颜色,判断是否可行。 B. 逃离蜂巢 题意:有 n 个陷阱,每拆除一个陷阱... Read more
发布时间:
Codeforces Round 1023 (Div. 2) 补题 此次排名情况: 共 8k+,排名 1651,做出 ABC 三题。 Rating +81,当前为 1442。 比赛链接 A. LRC and VIP 题意:有一个长度为 n 的数组 a,你需要将数组分成 2 个序列,每个元素只能属于二者之一,每个序列至少包含一个元素,两个序列全部 GCD 不相等。 题解:当数组 a 中的元素全... Read more
发布时间:
题目描述 GZU 的农学院在阅湖养了 n 只鸭子,每只鸭子的肉质都有其对应的鲜美度,第 i 只鸭子的鲜美度是在 \([l_i,r_i]\) 中的任意整数。求这 n 只鸭子的鲜美度单调不减的方案数,对 998244353 取模。 输入:第一行一个整数 n (1≤n≤500);接下来 n 行每行两个整数 \(l_i,r_i (1≤l_i,r_i≤10^9)\) 输出:满足条件的方案数,对 998... Read more
发布时间:
动态规划学习(1) 《算法竞赛入门到进阶》学习。 《算法竞赛入门到进阶》 1. 动态规划的概念和思想 DP(Dynamic Programming)是一种算法思想,不是一个特定的算法。 DP 与分治法的区别: 分治法是将问题分成独立的子问题,每个子问题能独立解决 DP 的子问题是相关的,前面子问题的解决结果被后面的子问题使用。 求解 DP 有 3 步:定义状态、状态转移、算法实现。 2. 基... Read more
发布时间:
Codeforces Round 1022 (Div. 2) 补题 此次排名情况: 共 8k+,排名 3037,做出 ABC 三题。 Rating +35,当前为 1361。 比赛链接 A. Permutation Warm-Up 题意:给定一个数字 n,求 \(1\sim n\) 的所有排列与 \(1 \sim n\) 差值的和的不同数量。 赛时通过部分样例总结规律,得出会 \(1,1,2... Read more
发布时间:
VP天梯赛 比赛时间 3 小时。 L1 共 100 分,拿 95 分; L2 共 100 分,拿 82 分; L3 共 90 分,拿 38 分; 总共 290 分,拿 199 分。 因题目难度原因,部分题目不列举。 L1-6 这不是字符串题 大模拟,不知为啥一个测试点错误一个测试点段错误。我采用 vector 只能拿 10 分,知乎大佬采用 string 能拿满。 Read more
发布时间:
DP学习 DP入门学习 清华大学翁家翌将其分为 8 类,分别为序列 DP、区间 DP、坐标 DP、数轴 DP、树型 DP、数位 DP、状压 DP、记忆化搜索。 北京大学 yxc 将其分为 10 类,分别为背包问题、线性 DP、区间 DP、计数 DP、数位 DP、状压 DP、树形 DP、记忆化搜索、基环树 DP、插头 DP。 罗勇军老师的《算法竞赛》和洛谷进阶篇将其分为 4 类,分别为数位 D... Read more
发布时间:
Educational Codeforces Round 178 补题 此次排名情况: 共 1.2w+,排名 3905,做出 ABCD 四题。 Rating +20,当前为 1326。 比赛链接 A. Three Decks 签到题 int a,b,c; cin>>a>>b>>c; c-=abs(a-b); c-=max(a,b); if(c<0) ... Read more
发布时间:
Bitset 在 STL 中有一个好用的结构叫做 bitset,今天学习其相关运用。 bitset 是一个由位(bit)组成的数组,每个位可以是 0 或者 1。和数组一样从 0 开始,每个元素都能单独访问,下标编号为 [0,N)。bitset 的大小在编译时就需要确定,如果你想要不确定长度的,请使用 vector<bool>。 1. 定义 bitset<N> b; 初... Read more
发布时间:
牛客周赛 Round 91 背单词+牛客周赛 A-while #include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ string s,str="while"; int ans=0; cin>>s; for(int i=0;i<5;i++){ if(s[i]!=... Read more
发布时间:
A*算法 模板: #include<bits/stdc++.h> using namespace std; //变量 struct node{ int st;//状态 double f;//状态对应估价函数值 node(int s){//构造函数 //计算估值函数 } //重载运算符 friend bool operator <(node y,node x){ return... Read more
发布时间:
蓝桥算法回顾 一些函数与算法 1. 字符串相关函数 截取字符串 str=s.substr(开始位置,截取长度); 插入字符串 str=s.insert(开始位置,插入字符串); 查找字符串 tmp=s.find(查找串,开始查找位置); 删除字符串 s.erase(开始位置,删除长度); 输入一行 getline(cin,字符串名); 2. STL回顾 容器 vector 定义:vector... Read more
发布时间:
重大BUG+对拍模板+常数优化 某些单词 GitHub 会报错 + 图片博客网页加载不了。 代码为以下这部分,防止报错每个以 . 隔开。报错原因在于双重的 {},通过这种方式设置二维数组也会报错。 \.g.r.a.p.h.i.c.s.p.a.t.h.{.{.f.i.g./.}.}. \.g.r.a.p.h.i.c.s.p.a.t.h.{.{.f.i.g.2./.}.}. 第二个 BUG 为图... Read more
发布时间:
英语+数位DP 记了 1 个 list 单词。 数位DP:基于数字的每一位进行状态转移和递推 数位DP(Digit DP),通过拆分一个数的每一位来进行状态转移,从而解决涉及数字限制(如范围内的数字,满足某些条件的数字等)的计数问题。 基本思路: 数字的拆解:通常将数字从高位到低位拆解成每一位,这样就可以对每一位进行状态转移,逐步构建答案。 状态定义:由当前处理到的位置、是否还受到限制以及其... Read more
发布时间:
启发式搜索 A*算法:优先走估值函数的分支 估值函数可以为: \[f^*(x)=g(x)+h^*(x)\] \(g(x)\) 表示从起点到 x 的代价,\(h(x)\) 表示 x 到终点的代价的估计值。 当 \(h(x)=0\) 时,A* 算法就退化成了普通的 BFS。当 \(h^*(x)\) 越大,算法效率越高。 注意:但 \(h^*(x)\) 的值超过了实际到达终点的代价 \(h(x)\... Read more
发布时间:
算法+牙痛 下午看了看中科大的校赛,只做得出一题。 P12035 Hackergame 题意:在一个字符串中找到合法字符串并输出。 题解:用数组存储下左括号和右括号的位置,便于等会二分迅速找到最近的右括号和左括号。然后使用 find() 函数一直查找就行。 P12037 数学分析 这第四题就是算一个积分,但我数学没学好……题解说是个大学生都能做出来。 P12036 摩拉 这第三题就是一个斐波... Read more
发布时间:
单词+算法 单词+算法 考研 背诵了 List6 这一部分单词。 P1120 小木棍(剪枝) 题意:有一些同样长的小木棍,然后随意砍成几段,直到每段的长都不超过 50。现在想把小木棍拼接成原来的样子,但是不知道开始时有多少根木棍和它们的长度。给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。 剪枝:设原始木棍长度为 m: 原始木棍长度 m 一定是所有长度和的因数 m 最小也是现在所有... Read more
发布时间:
两个二分函数自定义对于结构体的二分查找,还有官方的自定义比较函数。 lower_bound() 有两种形式: lower_bound (first, last, val);(无自定义比较) lower_bound (first, last, val, Compare comp);(自定义比较) 在有序的前提下,lower_bound 返回指向第一个值不小于 val 的位置,也就是返回第一个大... Read more
发布时间:
常见优化技巧包含 4 个部分:双指针法,空间换时间,单调栈,单调队列。 双指针法 双指针又叫尺取法或者 two-pointers,用两个指针维护一段序列区间的方法,一般 \(O(n)\) 即可解决。 双指针法本质上是使用队列维护一个符合条件的区间。右指针增加相当于入队,左指针增加相当于出队。 一般双指针题目也就是两个指针遍历一遍,时间复杂度一般为 \(O(n)\)。 习题1:P1102 A-... Read more
发布时间:
C++的pb_ds库 pb_ds 库是 GNU C++ STL 的一部分,它提供了一系列灵活、高效的数据结构,允许开发者根据具体需求定制数据结构的行为。在本篇博客中,我们将深入了解 pb_ds 库中提供的主要功能和数据结构。 1. Ordered Set 和 Ordered Map 这两个数据结构允许自定义排序规则,提供了有序集合和有序映射的功能。 Ordered Set 主要操作: ins... Read more
发布时间:
部分记忆不深算法 set、排序、排列、二进制。 set 的几个函数 set<int> st; st.find(k); //返回一个迭代器,指向键值k st.lower_bound(k);//返回一个迭代器,指向键值大于等于k的第一个元素 st.upper_bound(k);//返回一个迭代器,指向键值大于k的第一个元素 sort 的相关函数 stable_sort();//如果排... Read more
发布时间:
崔添翼的背包九讲
发布时间:
JAVA基础语法学习1 学习了JAVA包和类,获取时间,生成随机数,类和方法,方法重载和this关键字。 1. 创建项目和类 创建项目名称后,右击项目的 src 目录,在弹出菜单中选择 New→Package,然后输入包名,右击包名选择 New→Java Class。 2. IDEA代码格式化快捷键 Alt+Ctrl+L 3. 获取当前时间 这是标准时间,当地时间需要+时区。 long t ... Read more
发布时间:
崔添翼的背包九讲