摘要:
树状数组+离散化+转化 一道树状数组好题!我们先来一发弱化版:如果只查询有多少个石头,怎么做?很简单,我们需要考虑权值树状数组,先离散化(因为我们只需要考虑高矮关系),如何离散化?考虑离线,将可能改变的值都存下来,离散化一下。每次的查询通过二分来找到对应的离散化之后的值。之后就是权值树状数组的常规操 阅读全文
摘要:
贪心+最小生成树 一读题目就知道是最小生成树,但是我们显然不能直接跑最小生成树。我们先从1号点跑一遍dfs,记录能到达的点,重新建图,建图时要加入两个端点中海拔较低的那个景点的海拔,之后排序时以海拔为第一关键字,权值为第二关键字。为什么?考虑我们要走过尽量多的点,所以说但凡我们能到的点最后必须加入到 阅读全文
摘要:
数论 我们考虑一个数x,如果她是一个合法解,那么她一定是d的约数(lcm(c,x)== d) ,又因为一个数 i 的约数个数远小于 sqrt(i);所以说我们可以枚举d的约数,check一下就好了2333333333333333333; code: include include include i 阅读全文
摘要:
打表 这道题一看只输入一个变量,并且感觉反素数应该不会太多,就打一打看看,发现确实很少,打出来就好了!! 直接N sqrt(N)打出表。 code: include using namespace std; int p[500]={1,2,4,6,12,24,36,48,60,120,180,240 阅读全文
摘要:
筛法||暴力 这道题是可以用筛法,先筛出2 sqrt(N)内的质数,然后让这些质数去筛掉L R内的合数,就行; ~~但我们显然不能向正解屈♂服~~ 我们用判断大质数的利器:M R算法,高效的判断一个数是否是质数,复杂度(R L+1) log(R L+1); code: include include 阅读全文
摘要:
刷了一个月的蓝紫题,该刷刷~~黑题~~绿题,黄题了。。。。。(但我觉得数学好难啊) 单子 1、gcd,lcm,打表 2、exgcd,费马小定理 3、各种筛 4、排列组合,容斥原理,概率与期望 5、卡特兰数 6、快速幂 6、M R 算法 7、素数的常见性质 8、矩阵 9,EXCRT,CRT 下边放板子 阅读全文
摘要:
休闲题 一道大水题,直接枚举每个点作为驻扎地,然后利用前缀和求出答案,取max就好了,复杂度(O(N^3)) ~~(要不是标签是蓝色我2min内绝对能切掉,假的难度导致我思考的过于复杂,7min才想出来)~~ include include include include include inclu 阅读全文
摘要:
码力+树论 我用的树链剖分版。有一个结论需要记住:一个严格次小生成树只与最小生成树的一条边不同,我们考虑枚举每一条没有加入到最小生成树中的边,如果将其加入,能够影响到边的两个端点的lca(整个区域将变为一个环),所以我们要删除一条最大的边,如果最大的边与其相等,那么删除一条次大的边。以此类推,最后求 阅读全文
摘要:
带限制的最短路 这道题是我做的第一个带限制的最短路题,所以许多细节我思考了好长时间~~并看了题解~~才会的。 首先我们关注条件:机器人无限个,所以我们可以认为有无限个机器人从1号点同时出发。摧毁一个点的代价为max(到达他的代价,破坏他的所有的保护器的代价);所以我们可以开三个数组和一个vector 阅读全文
摘要:
A 算法 这道题目我只得了80分qwq,因为我的hash表炸了。。。。。 思路: 估价函数就是空格到达要移动的棋子的距离的曼哈顿距离,hash时只需要hash两个坐标:空格坐标和要移动的棋子。之后压入优先队列,bfs就好了 收获: hash局面时要尽量的优秀,节省空间。注意题目的转化,写出尽量优美的 阅读全文