[CF718E]Matvey's Birthday 题意:给你一个长度为n的,由前8个小写字母组成的字符串s.构建一张n个点的无向图:点i和点j之间有一条长度为1的边当且仅当:|i-j|=1或$s_i=s_j$,求这个图的直径,及直径条数. $n\le 10^5$ 题解:首先有一个比较关键的性质:原图任意两点间的最短路不超过2*8-1.证明显然,因为每个字符在最短路上最多出现2次. 我们先预处理一些东西:f[i][a]表示从i走到任意一个$s_j=a$的点j的最短路,g[a][b]表示从任意一个…
埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法.对于求解不大于n的所有素数,我们先找出sqrt(n)内的所有素数p1到pk,其中k = sqrt(n),依次剔除Pi的倍数,剩下的所有数都是素数. 具体操作如上述 图片所示. C++实现 #include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n;…
推荐学习labuladong大佬的动态规划系列文章:先弄明白什么是动态规划即可,不必一次看完.接着尝试自己做,没有思路了再回过头看相应的文章. 动态规划一般可以由 递归 + 备忘录 一步步转换而来,不必被名字唬住.通常只要找到状态转移方程问题就解决了一大半,至于状态的选择只要题目做多了自然就会形成经验,通常是问什么就设什么为状态. 常见四种类型 Matrix DP (10%) Sequence (40%) Two Sequences DP (40%) Backpack (10%) 注意: 贪心算…
1.前言 正式开始的第一周的任务--把NOIP2010至NOIP2015的所有D1/2的T2/3写出暴力.共22题. 暴力顾名思义,用简单粗暴的方式解题,不以正常的思路思考.能够较好的保证正确性,但是最大的问题在于效率.搞OI这么久,每次考试也经常纠结于暴力与正解之间,其实这两者概念上本来就没有明显的界限,是一组相对概念. 下面尽可能的不提到正解,但是如果正解容易到我都能够轻松秒的话就还是说一下了. 普通的DFS/BFS搜索是暴力,但暴力不局限于此.根据向总的话,记忆化搜索亦属于暴力,名字逼格这…
基础算法 高精 模拟 分治 贪心 排序 DFS 迭代加深搜索 BFS 双向BFS 动态规划 DAG上DP 树上DP 线性DP 图算法 最短路 FLYD DJATL BF 最大流 Dinic ISAP 最小费用最大流 关键路径 有向图的强连通分量 拓扑排序 割点割边 点双连通 边双连通 最小生成树 次小生成树 最小瓶颈路 最近公共子祖先 二分图匹配 匈牙利树 差分约束系统 2-SAT 数据结构 基础数据结构 队列 栈 堆 高级数据结构 散列 hash trie 点分治 AC自动机 树链剖分 线段树…
一面: 1.自我介绍 2.平时用什么编程语言比较多 python,另外学过C语言和JAVA 3.c语言里指针占多少内存 答成8位了,应该根据机器而言是16位或32位 4.python里的map函数,讲一下它的作用和返回值 传入一个函数和一个list,将这个函数作用于这个list的每个元素上.返回值是一个新的list. 5.什么是梯度下降法 6.手写代码:归并两个有序数组 7.知不知道什么数据结构的查找的时间复杂度是O(1) 哈希表,也就是python中的dict 8.哈希表的原理是什么 利用哈希…
1.前言 正式开始的第一周的任务——把NOIP2010至NOIP2015的所有D1/2的T2/3写出暴力.共22题. 暴力顾名思义,用简单粗暴的方式解题,不以正常的思路思考.能够较好的保证正确性,但是最大的问题在于效率.搞OI这么久,每次考试也经常纠结于暴力与正解之间,其实这两者概念上本来就没有明显的界限,是一组相对概念. 下面尽可能的不提到正解,但是如果正解容易到我都能够轻松秒的话就还是说一下了. 普通的DFS/BFS搜索是暴力,但暴力不局限于此.根据向总的话,记忆化搜索亦属于暴力,名字逼格这…
图论 图论解题报告索引 DFS poj1321 - 棋盘问题 poj1416 - Shredding Company poj2676 - Sudoku poj2488 - A Knight's Journey poj1724 - ROADS(邻接表+DFS) BFS poj3278 - Catch That Cow(空间BFS) poj2251 - Dungeon Master(空间BFS) poj3414 - Pots poj1915 - Knight Moves poj3126 - Prim…
注意到怼大佬的操作至多只能进行两次.我们逐步简化问题. 首先令f[i][j]表示第i天结束后自信值为j时至多有多少天可以进行非防御操作(即恢复自信值之外的操作).这个dp非常显然.由于最终只需要保证存活,那么取f中的最大值即可(可以在第n天之前使大佬自信值为0而结束),之后就不用再管自己的自信值.复杂度是O(n·mc),数据范围远远没有开满,可能是怕提示做法吧. 现在知道了有多少天可以用来攻击(当然可以有些天划水).对于攻击操作,哪一天进行是没有区别的.那么先不考虑还嘴操作. 只剩下怼大佬的操作…
1162. 地图分析 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离.(PS:你看看这个翻译) 我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的距离是 |x0 - x1| + |y0 - y1| . 如果我们的地图上只…