- 博客(32)
- 收藏
- 关注
原创 codeforces刷题+补题
可知删除桥会使得顶点对的数目最小,所以先缩点形成一颗树,然后再枚举删除树上哪条边会使得顶点对最小。时,首先枚举那两个位置的数构成一个两位数,求最小时,当后面一个数为1时,前面符号为。题意:给定一个长度为 𝑛 的序列 𝑎和一个长度为 𝑚的序列 b,其中 𝑚≥𝑛。时,每次需要y-1次操作使得x被y整除后重新变为1,所以执行k次操作后。题意:一个无向连通图,求删除一条边后,各个连通块内。时,模拟需要多少次操作可以使得x能被y整除。题意:有n个字符数字,在其中插入n-2个。时,数字有0时,答案为0;
2024-10-09 14:34:34
979
1
原创 Codeforce 963
思路:除了全是偶数的情况,其他的情况都需要将偶数转换为奇数。最少的操作步数是偶数个数,如果有一步操作执行之前最小的偶数都比最大的奇数大,则操作步数要加1,即最后结果是偶数个数+1.思路:将每盏灯的每个打开时刻标记为1,关闭时刻标记为-1。当前时刻的前缀和为1即表示有一盏灯打开,为0则表示没有灯打开。最后判断是否有时刻打开灯的数量为n。思路:对于中位数,大多数情况可以考虑二分。本题的trik是删除k个连续数的技巧。考点:二分+序列DP。
2024-08-27 19:04:37
348
原创 基础算法——位运算/递推与递归/前缀和与差分/二分/排序/RMQ
思路:用递推的方式,先将第一排等全部变成1,然后通过控制下一层开关,来使得当前层的灯全变成1.思路:两个数直接相乘会超出数据存储范围。因此可以用快速幂的思路,将乘法变成加法,龟速乘模板。sum(p,k)k为加法项的个数,即最高次加一(最高次为k-1).思路:求出A,B两点的坐标。思路:可以用数论的方式,用乘法的递推公式。题意:求将5*5的正方形经过6步以内变化,使得全变成1.题意:求规划到n层,街道A,B的直线距离。题意:求两个很大的数相乘模p后的余数。题意:求两个很大的数乘方的约数之和。
2024-05-22 10:18:02
370
原创 图论——树上前缀和和树上差分(LCA应用)
然后用set存有哪些点,最好答案还要减去m,因为根节点为0,但是其不表示边。注意set适合去重,存点,但是有顺序的时候得慎重考虑,因为set会自动排序。题意:让一条边长度(时间)变为0,求所有运输计划所需最大时间最小。3.当累积为0次时,答案加m,说明删除此边就满足条件,然后随便删除一条附加边即可。开心,一遍敲过,想代码时间应该占完成题目总时间的七成,想好了,bug才很少。1.当边累积超过1次,则说明删除此边不能形成满足条件,所以不会影响答案。2.当累积为1次时,答案加一,删除此边和构成环的附加边。
2024-05-22 10:16:33
604
原创 动态规划——概率&期望DP
题意:有2^n支球队比赛,每次和相邻的球队踢,两两淘汰,给定任意两支球队相互踢赢的概率,求最后哪只球队最可能夺冠。有两种方法求:记忆化搜索、拓扑排序。拓扑排序(反向建图)
2024-05-22 10:00:51
517
原创 动态规划——背包问题优化
一般f[i][j]表示的是前i个物品中,总体积不超过(恰好)j的所有方案的最大价值。一般n表示物品种类数,m表示背包容量,v表示物品体积volume,w表示物品价值worth,s表示物品个数。背包问题核心:物品数,体积,决策(状态转移的过程)。
2024-05-09 15:44:41
1023
原创 图论——网络流问题
网络流最大流算法模板题EK算法dinic算法二分图匹配飞行员的配对问题圆桌问题上下界可行流无源汇上下界可行流有源汇上下界最大流例题——东方文花帖有源汇上下界最小流多源汇最大流多源汇最大流(最大流,超级源汇点)关键边伊基的故事 I - 道路重建最大流判定秘密挤奶机(最大流,最大流判定,二分)星际转移问题(最大流,最大流判定,分层图)拆点(不相交路径,只能用k次)餐饮(最大流,拆点)最长递增子序列问题(最大流,拆点,DP)企鹅游行(最大流+拆点+枚举汇点)建图实战猪(最大流,分层图,困难题)最小割模板Dinic
2024-05-05 17:26:19
709
原创 图论——最近公共祖先(LCA)
/倍增int n,m,s;i=0;i>=0;cin>>a>>b;dfs(s,0);int u,v;cin>>u>>v;// int a,b;i
2024-04-01 21:32:58
330
原创 数据结构——线段树学习
pushdown和update有联系,update不用裂开的时候按照条件更改当前节点权值,pushdown更改左右子节点的权值,相同的操作。p是二叉树的下标,下标从1开始,l,r分别表示所维护区间的左右端点(w数组的左右区间下标),sum表示当前节点维护区间的总和。和上一题一样,关着的灯表示状态0,开着的灯表示状态1,求区间内开着的灯的数量。可维护的区间信息包括。
2024-03-24 15:01:44
729
2
原创 天梯赛L1
天梯赛L100100200300400500600700800901001101201301401501601701801902002102202302402502602702802903003103203303403503603703803904004104204304404504604704804905005105205305405505605705805906006106206306406506606706806907007107207307407607607707807908008108208308
2024-03-23 09:29:15
977
原创 天梯赛L2
天梯赛L2001002003004005006011007008009010012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048001最短路径模板题1.最短路径求法dist,st,g2.不同的需求可以开不同的数组来表示,救援sum,cnt3.求最短路径的个数num和最短路径的过程pre#include<bits/stdc
2024-03-23 09:28:22
357
原创 蓝桥杯第四场周赛/传智杯/百度之星补题
这四个题考得都很典型,都需要熟练的使用STL容器解决问题。通过本次题目,对STL容器有了一个全新的认识。
2023-11-28 17:24:39
819
1
原创 STL容器和一些常用的函数
利用第一种构造函数创建对象时,输入字符串后直接进行字符串拼接,而第二种构造方式,在进行字符串拼接时,首先把原本的字符串覆盖掉,之后再进行拼接。前置常识:A.begin(),A.end()是指从begin到end-1位置。表示在begin和end内是否存在num,是返回true,否返回false。求当前排列的下一个排列,如果没有下一个排列返回false,否则返回true。求当前排列的上一个排列,如果没有上一个排列返回false,否则返回true。注意:fabs()是cmath中的函数,求浮点数的绝对值。
2023-11-28 16:13:45
1983
1
原创 图论——负环&差分约束&最近公共祖先&强连通分量&二分图&欧拉路径&拓扑排序
第三章图论负环虫洞观光奶牛单词环差分约束糖果区间排队布局雇佣收银员最近公共祖先(LAC)祖孙询问距离次小生成树暗之锁有向图的强连通分量受欢迎的牛学校网络最大半联通子图银河无向图的双连通分量冗余路径电力矿场搭建二分图关押罪犯棋盘覆盖机器任务骑士放置捉迷藏欧拉回路和欧拉路径铲雪车欧拉回路骑马修栅栏单词游戏拓扑排序家谱树奖金可达性统计车站分级负环虫洞原题链接题意:求负环思路:spfa求负环1.先将所有点加入队列中,并且都标记;2.加一个cnt数组,表示到该点经过了多少条路径,如果路径长度大于n
2023-09-23 16:36:02
156
1
原创 图论——最短路&最小生成树
图论经验单源最短路的建图方式热浪信使香甜的黄油最小花费最优乘车昂贵的聘礼单源最短路的综合应用新年好通信线路道路与航线最优贸易单源最短路的扩展应用选择最佳路线拯救大兵瑞恩最短路计数观光Floyd算法牛的旅行排序观光之旅牛站最小生成树最短路网络局域网繁忙的都市联络员连接格点最小生成树的扩展应用新的开始北极通讯网络走廊泼水节秘密的牛奶运输经验g,h,dist,st,p(并查集)这些数组记得初始化,根据情况初始化g数组加边的时候记得min一下dijkstra朴素版NN,堆优化版mlogm,bellman(
2023-09-23 16:35:44
166
1
原创 搜索——迭代加深&&双向DFS&&IDA*(DFS)
迭代加深的思路非常的重要。一步一步扩大搜索的深度进行搜索。本题是一个动态规划的01背包问题,但是n*m会超过时间复杂度。如果用不优化的dfs,最大时间复杂度是2的46次方,也会超时所以我们想到用双向dfs减少时间复杂度(2的23次方),先搜索前一半的物品,将每种选取方式得到的总量(价值)记录下来,方便后面匹配二分。然后搜索后一半,找到不超过m的最大总重量。双向dfs,先搜索前面一半,记录起来,然后搜索后一半,搜索的和前面一半记录的进行判断。搜索顺序方向很重要。
2023-09-03 15:52:59
161
1
原创 搜索——DFS之剪枝与优化
这种题型很常见,放到已有组或者新开一个组运用了优化搜索顺序,可行性,最优化剪枝初始化ones,map,状态数组row,col,cell根据字符串,完成初始状态设置,draw(i,j,t,true)进行搜索,选择分支数量最少的位置,即能填数最少的点。然后依次试验可不可行,注意恢复现场(get,lowbit)每个位置能填的数,取决与横列和小宫格的状态&,是1即能填这个位置的数。初始化不填每个位置均为1。状态压缩dfs的优化搜索顺序非常的重要。
2023-09-02 21:11:57
83
原创 搜索——DFS之搜索顺序
flag要放for循环里面,不然就只能用一次,那个是判断a[u]是否能放在第i组里面。最后一个开头的字母,不要用char来读入,不然会读回车的。用string,yyds。每次从前往后扫描,将互质的数都装进一个组。每次扫描结束后都重新开一个组。为每个数找到适合的组放进去,或者重新开一个放进去。
2023-09-01 20:46:07
79
1
原创 搜索——A*算法(BFS)
A*算法,首先求出当前状态到终点的估计距离(一定比真实距离小或者相等),可以逆向思维,即终点到当前距离的最小值。用当前真实距离和估计距离排序(priority_queue),取最小的点来继续扩展。和bfs差不多,就是找点进行扩展。A*算法就是用当前距离加估计距离排序的,所以dist和估计距离f(s)都不能缺少。利用最小点扩展swap函数的用法。
2023-09-01 17:58:19
70
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人