03 2022 档案
摘要:数论分块的结论 给定一个n,n / i的取值有级别个,并且对于每一个i,它对应的分块的区间为(i, n / (n / i)). A - 区间最大值 题目链接 https://ac.nowcoder.com/acm/contest/30896/A 解析 n % i = n - (n
阅读全文
摘要:第一讲 递推与递归 递推 基础题目 AcWing 717. 简单斐波那契 典型题型 AcWing 95. 费解的开关 AcWing 1208. 翻硬币 分析: (1) 费解的开关首先假设第一行不按,由此发现后面行的操作是固定的,模拟即可,然后应用二进制枚举去看第一行的按法. (2) 翻硬币可以看作是
阅读全文
摘要:题目描述 给定一个的地图,地图上各字符含义如下: .表示空地 #表示障碍 A表示起点 B表示终点 规定移动规则如下: 移动:从当前所在格子移动到上下左右相邻的某个.格子, 需要花费. 闪烁:使用跳刀装备,花费无视障碍跳跃到切比雪夫距离不超过的.格子(即$
阅读全文
摘要:ABC244 E - King Bombee 题目链接 https://atcoder.jp/contests/abc244/tasks/abc244_e 解析 本题就是给了一个无向无环图,然后问你从s到t经过k条路径的方案数,要求经过的路径中x只出现了偶数次.采用dp的做法. 如果不考虑x出现偶数
阅读全文
摘要:H -字符串 题目链接 https://ac.nowcoder.com/acm/contest/29439/H 解析 首先用KMP处理出来所有区间的起点,然后贪心地去覆盖(就是从左往右扫描,尽可能删掉右边的),由于数据范围为1e7,所以应O(n)地求解,采用双指针算法,保证处理出来的a数组中每个元素
阅读全文
摘要:ABC244 D - Swap Hats 题目链接 https://atcoder.jp/contests/abc244/tasks/abc244_d 解析 读题要慢要冷静,不着急,一句一句地读,关键在于是偶数次,所以当恰有一对需要交换的时候是不能实现的 3个字符相比较,只有三种情
阅读全文
摘要:ABC244 C - Yamanote Line Game 题目链接 https://atcoder.jp/contests/abc244/tasks/abc244_c 解析 感觉这个交互题的要求相对明确,而且就只是加了一句fflush(stdout),不知道是不是典型交互。 写的时候wa了一发是因
阅读全文
摘要:ABC 236 E - Average and Median 题目链接 https://atcoder.jp/contests/abc236/tasks/abc236_e 解析 想到了dp以及状态表示,但是没想出来怎么状态转移,主要没想到是用dp来判断mid行不行的,总体框架来看是个二分答案的题 本
阅读全文
摘要:AcWing 836. 合并集合 题目链接 https://www.acwing.com/problem/content/838/ 解析 并查集的代码模板很短很好写,本题重点学习读入hh Ac代码 点击查看代码 #include <iostream> #include <cstdio> #inclu
阅读全文
摘要:Kruskal算法 AcWing 859. Kruskal算法求最小生成树 题目链接 https://www.acwing.com/problem/content/861/ 算法思想 定义结构体存边,重载运算符便于排序 sort所有的边,从最小的边开始加,只要边连接的两个点不在同一个连通块中,就加入
阅读全文
摘要:最短路计数 AcWing 1134. 最短路计数 题目链接 https://www.acwing.com/problem/content/1136/ 解析 n个点m条边的无向无权图 通过dp递推记录最短路条数 需证明求最短路的过程中可以递推地计数,可以证明用dijkstra和bfs求最短路的时候点的
阅读全文
摘要:朴素Dijkstra-- 题目链接 https://www.acwing.com/problem/content/851/ Ac代码 点击查看代码 #include <iostream> #include <cstdio> #include <cstring> #include
阅读全文
摘要:AcWing 2875. 超级胶水 题目链接 https://www.acwing.com/problem/content/2878/ 解析 本题的关键在于证明使用的胶水数量与粘贴顺序无关。可以设abc模拟一下三个的情况,设abcd模拟一下四个的情况。 Ac代码 点击查看代码 #include <i
阅读全文
摘要:AcWing 3346. 你知道你的ABC吗 题目链接 https://www.acwing.com/problem/content/3349/ 解析* 大小比较,推理。排序后首先得A和A+B+C,然后得B + C,剩余数中最小的为B,作差求得C. Ac代码 点击查看代码 #include <ios
阅读全文
摘要:stack ABC 243 D 题目链接 https://atcoder.jp/contests/abc243/tasks/abc243_d 语法总结 stack<int> stk; //stack的定义 stk.empty() //判断栈是否为空 stk.top() //返回栈顶元素 stk.po
阅读全文
摘要:D - AND and SUM 题目链接 https://atcoder.jp/contests/abc238/tasks/abc238_d 题意 给你a和s,问是否存在x和y,使得 解析 已知$x &
阅读全文
摘要:ABC238 C - digitnum 题目链接 https://atcoder.jp/contests/abc238/tasks/abc238_c 解析 是一个比较容易找规律的数学题,坑点在于取模,史上见过最恶心的取模题,很多很多地方都容易爆long long. 对于式子:((a + 1) * a
阅读全文
摘要:ABC240 C 题目链接 https://atcoder.jp/contests/abc240/tasks/abc240_c 解析 看到这个题首先想到的是二进制枚举,但是数据范围太大了显然是不可能的,所以考虑dp,有点以空间换时间的意味。f[i][j]表示走i步是否可以到达j,然后递推就行了。dp
阅读全文
摘要:牛客小白月赛45 E筑巢 题目链接: https://ac.nowcoder.com/acm/contest/11222/E 题意概述: 给一棵n个节点的树,有边权和点权,权值可能为负,要求在树中取一个连通块,使该连通块的权值最大。 解析: 树形dp模板题。用f[i]表示以i为根的子树的权值最大值,
阅读全文
摘要:1072. 树的最长路径 点击查看代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1e4 + 10, M = 2 *
阅读全文
摘要:848. 有向图的拓扑序列 题目链接 https://www.acwing.com/problem/content/850/ 解析 要掌握拓扑排序的基本思路:每次找到入度为0的点加入队列,可以用数组存答案,根据加入队列的数的个数可以判断是否可以进行拓扑排序。 Ac代码 #include <iostr
阅读全文