- 博客(41)
- 收藏
- 关注
原创 双错排问题
如果当前数字没放错(比如 pi=i),就把它和下一个位置 i+1的数字交换。如果最后剩下一个数字恰好和自己位置相等(比如 5 在 5 的位置),就把它和前面任意一个位置交换。next_permutation(a.begin(),a.end())——枚举a的所有排列。假设现在初始状态是 1,2,3,4,5 我们要错排。这样一操作,所有数字都不在自己位置上了。
2026-11-09 20:38:38
157
原创 贝尔数(组合数学)
贝尔数:讲n个不同数划分为任意集合组合的方法数。大数据可用递推公式优化为O(n log(n))求解方法:贝尔三角形 O(n^2)
2026-11-09 18:59:08
163
原创 树上倍增&&LCA
思路:DFS,回溯时把子树合并到父节点;遇到预先存好的询问,如果另一个点已经访问,当前并查集根就是 LCA。3)给定任意节点i,可以快速查询,从i节点往上走的路径中位于第s层的节点,O(log(n))2)建立每个节点往上跳2^i步能到达的节点编号,ST表,O(n*log(n))两点不断跳链顶,直到同一条链,深度浅的就是 LCA。优势:单次 O(1),查询天花板;给定树上任意两个节点a和b,快速求出a和b的最近公共祖先。1)BFS建立深度表,deep数组,O(n):u 的 2^k 级祖先。
2026-11-07 20:19:52
155
原创 牛客周赛R166(max型瓶颈最短路,前后缀DP合并)
优先队列 Dijkstra:按当前瓶颈值从小到大取点;O((n+m)logn)或者二分答案 + BFS/DFS 判断连通性;O((n+m)logV)或者按点权排序后用并查集。
2026-10-23 23:25:51
131
原创 大二第二周作业
题解是构造,我这个不咋一样,((和))位置固定,我们()只能交替放,看看会不会发生前缀)和大于前缀(。先枚举m长度,后枚举每个元素是否可用。
2026-09-24 17:32:02
21
原创 最短路。。。
是用来求任意两个结点之间的最短路的.复杂度比较高,但是常数小,容易实现(只有三个for).适用于任何图,不管有向无向,边权正负,但是最短路必须存在.(不能有个负环)
2026-09-04 20:39:18
234
原创 牛客周赛R159
存入unordered_map,枚举每一种情况,通过ump查找。一直除以2,记录第一个和最后一个1,和1的个数。前缀和数组,二分查找所在区间。树上差分、欧拉序、树状数组。通过ump模拟整个过程。
2026-09-03 12:21:39
51
原创 2026牛客暑假多校训练营3
把标记位置放入差分数组,标记数目就是当前位置(i,j)到原点矩形内所有差分数组之和。求不规则多边形面积:将点标注连续序号,按序号两两叉乘,相加。主包一开始用斜率做的,浮点错误了,化简成乘法其实一样。一个大佬队的代码妙不可言。必胜态:至少有一条路径可走到终结点或必败态。向量叉乘,正为legt,负为right。状压DP,矩阵快速幂,同类合并降复杂度。我们是先遍历找终结点,再多源BFS。必败态:所有路径都只能走到必胜态。几何问题一般就是向量和三角函数。终结点:游戏结束的位置。
2026-08-19 17:48:10
204
原创 2026牛客暑假多校训练营2
边数<=点数-1时,没有环,答案最大,大于时,多一条边答案就少1。这线性基有点意思,第一次见。先说推导:分成两组,异或结果为x和y,ans=x+y,S=所有元素异或值,S是定值,我们只要结论:T=x&y 里能是 1 的 bit,。求maxT就是求wi最大子集异或值。
2026-07-26 17:52:16
245
原创 2026牛客暑假多校训练营1
2.因为加入节点值越来越大,我们往前推就行,要吃掉当前节点值,就先吃完连通块其他值(因为都比他小)得达到当前节点值大小,如果不到就查看增加值,如果增加值比以前的大就更新。这次比赛我主要在写这个了,最后还是没写出来,总结一下问题:1.博弈部分想不出来。把点分成两部分,一个部分的元素到另一部分任意元素距离范围都在要求内即可,不难但是没见过,积累经验吧。2.选择后手可以最大化的牌迫使对手选择第二选择。后手选择:1.先手1时直接选择最优选择。胜负:1.比较两者最大值2.比较先手选择后手最优选择与后手第二选择的值。
2026-07-22 02:08:14
208
原创 区间DP。
区间DP就是dp数组维护区间范围内的要求值,大区间值与小区间有关,最后输出答案区间的值最经典基础的区间DP下面有些名都是我自己瞎起的。
2026-07-20 20:56:29
157
原创 第六届上海理工大学ACM程序设计全国挑战赛
比赛很不错,都不是很难,主要靠思维吧,学东西多了,喜欢把问题复杂化了,反而看不懂题目的本质桶排序简单查询,二分和哈希表都行思路:查找一个序列中元素配对元素在另一个序列中的位置,记录下来,元素之间的顺序不能改变(不能直接找有多少个配对元素,新序列必须一一配对),问题就转化成了以坐标为元素的最大上升子序列问题。
2026-07-20 01:41:23
249
原创 矩阵连乘。
1确定递推公式和我们要求什么2将我们要求的东西用前项表示出来,用到的元素就是。通项公式,log10+1。对值取模(1en)即可。3元素之间的递推关系组成。比较麻烦,思路清晰的。
2026-07-08 14:22:07
194
原创 校赛六月月赛
做的真是一坨,每次月赛感觉做的都不好,出去玩了两天头玩晕了,固定算法做的不熟练,多练练基础吧。最难崩一题,函数名都写的BFS,还是写成了DFS,真是脑子宕机了。这段代码我改了一上午就完事RE,得出结论:林大OJ不能用IOS。哥德巴赫猜想:所有大于4的偶数都可以拆成2个质数之和。剩下我们需要讨论奇数,奇数满足条件一定是2+质数。不想说怎么了,wa了无数遍发现忘排序了。打表找规律,感觉规律并不好找。这个也不难,全分2,3。
2026-06-17 12:08:05
34
原创 第二十一届黑龙江省ccpc省赛
大一蒟蒻第一次打,感觉运气还不错,自己A了5题,团队6题,幸运拿末银,学校一队ac了9题,继续加油吧题解ppt不知道能不能发,有需要的私信吧题目可以去PTA做。
2026-06-12 21:08:46
196
原创 牛客练习赛R154
这几周打周赛一直上分,感觉自己行了,树也学一些了,第一次打练习赛,给自己打回原形了,真菜啊。第一次的思路对了,但是1没特判,也不该用素数筛直接做,范围不够。刚知道一题不出不参与rating,就出了一题掉大分。wa了好多次,成功把分wa没了。官方题解没看懂什么意思。
2026-06-06 19:40:31
16
原创 牛客R146
官方题解(枚举方法第一次见,一个数组用来进行枚举)简单的DP,当时没做出来,多练练DP吧。分两类:底边平行于x轴和平行于y轴。看了两位大佬的滚动数组不错。
2026-06-02 20:48:31
38
原创 树形DP。
一般都是递归进行例题通常,树形 DP 状态一般都为当前节点的最优解.先 DFS 遍历子树的所有最优解,然后向上传递给子树的父节点来转移,最终根节点的值即为所求的最优解.。
2026-05-30 21:20:59
232
原创 牛客R144(F树形DP没写)
知识点:两个数异或和为n,则两个数对n取模相等。简单找规律(没想到m>n+1要特判)就ac一个,全都错一个点无语了。没啥好说的,n=3写错个数。树的dfs,挺有意思的。
2026-05-27 10:23:13
16
原创 14讲——最短路问题
(0)设置辅助数组Dist,其中每个分量Dist[k]表示:当前所求得的从源点到期于各个顶点k的最短路径。(1)在所有从原点出发的边中去一条权值最小的边,即为第一条最短路。按照最短路径的长度递增的次序,依次求得原点到其余各点的最短路径。(3)选出下一条最短路径,重复以上操作,直到找到所有最短路。(2)修改其他各顶点的Dist[k]的值。Dijkstra算法。图的存储(邻接矩阵)神奇的思路:设置一个。
2026-04-13 16:37:55
25
原创 第3讲——并查集
方法:将深度小的树合并到深度大的树;找某个元素属于哪个集合;每个集合用一颗有根树表示。(2)kruskal算法。用最小元素标记所在集合。(1)prime算法。
2026-04-13 13:20:50
47
原创 string
find() 用于查找子串 / 字符的位置,返回首次匹配的索引;找不到返回 string::npos(一个特殊值,表示不存在)。可以用[]或at()访问单个字符,两者的区别是:at()会做越界检查,抛出异常;[]不检查,越界会崩溃。比较(按 ASCII 码顺序),也可以用。省略,截取到字符串末尾。
2026-03-23 20:41:44
62
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2