VIS
  • 2024-09-16搜索 DFS深度优先搜索
    洛谷P1363幻象迷宫这种恶魔样例究竟是哪个天才想出来的?!!!!!!620#.##.##.##.##.##.##.#.##.##.##.##.##.##.#.##.##.##.##.##.##.S.#..#..#..#..#..#..##..#..#..#..#..#..##..#..#..#..#..#..##md,交了好几发都没过,看了一下这个样例,心都凉了。能想出来这题解的更是天才Orz
  • 2024-09-14模板库
    数据结构莫队普通莫队题目来源:P1494[国家集训队]小Z的袜子。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=2e5+10;structnode{intl,r,id;}q[N];structnode2{intc,s;}ans[N];intn,m;inta[N],st[N
  • 2024-09-14P4568 [JLOI2011] 飞行路线
    P4568[JLOI2011]飞行路线考虑跑多层图,每层图连条边权为0的边,跑dijkstra即可。#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=1e7+10;intn,m,k,s,t;intcnt;inthead[N];structss{ intto,w,next;}a[N];voidadd(intu,int
  • 2024-09-13浅谈分层图
    分层图讲真的…感觉有点像那么一点点的种类并查集简单来说,就是把一个图分成很多层,然后对图进行一些处理比较模板一点的东西就是直接在分层图上跑最短路,这个时候就涉及到了很多决策,每一个决策能进行一些特殊的操作,比如让某条边免费(边权为0,不是把边切掉),让某条边花费减半之
  • 2024-09-11dijkstra and spfa
    spfastructNode{ intw,to,nxt;}edg[maxn];inthead[maxn],tot;voidadd_edge(intu,intw,intv){ edg[++tot].nxt=head[u];edg[tot].to=v; edg[tot].w=w;head[u]=tot;}boolvis[maxn];intcnt[maxn],dis[maxn];boolspfa(intn,ints){ memset(dis,0x3f,sizeof
  • 2024-09-10题解:[USACO07DEC] Sightseeing Cows G
    洛谷P2868题目大意有个nnn个点,mmm条边的有向图,点有点权,边有边
  • 2024-09-10搜索
    DFS与BFSDFS定义:深度优先搜索(DFS)是一种以深入探索图的分支为目标,直到到达指定的“深度”,无法继续前进为止,然后通过回溯探索其他分支。用途:通过枚举的方式来遍历当前的所有状态搜索图或者树例如:解决迷宫问题,路径查找、检查图中是否存在环、排序问题等。优点空间复杂
  • 2024-09-0851nod 石子分配
    可以发现步数限制把数轴变为了环。环之间不可以交换,环内相邻两点可以交换,然后我们只需要对每个环操作,最后累加。对于环上的每个石子堆,我们需要将其石子数调整到均值\(avg\)。因此,我们首先计算每个堆石子相对于\(avg\)的偏差,即\(nowa[i]-avg\)。因为相邻节点不一定能凑齐
  • 2024-09-07图论板子
    Primtypedefpair<int,int>P;intprim(){intans=0,cnt=0;priority_queue<P,vector<P>,greater<P>>q;fill(d+1,d+n+1,INF);d[1]=0;q.push(P(d[1],1));while(!q.empty()&&cnt<
  • 2024-09-07ACM中的AC题(BFS,三维vis,牛客小白月赛)
    题目来源:https://ac.nowcoder.com/acm/contest/88878/D//题意:迷宫中,两个人,走的每一步两个人的方向都是相反的,问两个人都走到地图中‘@’,最少的步数(地图上多个‘@’)。//思路:难点就在可以一个人到了,然后另一个人再独自走,就不用考虑到了那个人了。说明一个人独自走是可能会走重复
  • 2024-09-06题解:AT_abc369_e [ABC369E] Sightseeing Tour 详细版
    题目大意给定一个NNN个点,MMM条边的无向图。其中边有边权。有
  • 2024-09-06CF381B题解
    我们先理解题意,大致意思是:给你一个序列让你组成一个中间有一个数,左侧递增右侧递减的数列。从这道题的题意来看,大概思路是:1.我们要将最大值设为中间的数,然后左右两端尽可能的小。2.跑两遍循环,分别为左边的递增边的递减。3.还有,因为一个数可以出现很多次,我们需要一个vis
  • 2024-09-05基环树
    找环无向图拓扑排序找环点击查看代码boolvis[N];queue<int>q;voidtp(){ for(inti=1;i<=n;i++)if(du[i]==0)q.push(i); while(!q.empty()) { intx=q.front(); for(inti=h[x];i;i=nxt[i]) { inty=to[i]; if(du[y]>1)//入度>=2的点即为环上的点
  • 2024-09-04洛谷 P5340 大中锋的游乐场
    洛谷P5340大中锋的游乐场题意给出一张\(n\)个点\(m\)条边的图,每个点有一个点权\(1\)或\(-1\)。给出点\(s,t\),求出\((s,t)\)间满足以下条件的最短路。任意时刻,走过的路径上点权和均\(\in[-k,k]\)。思路分层图最短路。\(dis_{i,j}\)表示走到\(i\),点权和为\(j
  • 2024-09-03基环树的一些基本问题
    其实没啥。主要就两个一、求基环树的最大直径二、判环的简洁办法其中第一个问题比较关键,是一个非常常用的基环树森林模型。而且我基环树虽然写了7,8道了,写的却总是很冗长。基本全靠码力弥补才勉强不出错。。最近写的题目也是调了很久不出来,就是代码不够简洁导致的。很多细节可
  • 2024-09-03洛谷 P3225 矿场搭建
    洛谷P3225矿场搭建题意煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。请
  • 2024-09-01P10934 西瓜种植 解题报告
    题目传送门这道题也可以用贪心来做,这里讲一下差分约束的做法。看到题中给出了\(m\)条限制性的语句就联想到差分约束(差分约束的题还是很显眼的)。做差分约束的题首先得把题面抽象成很多个不等式,所以我们先来转化一下题意。首先发现求最小值,那么先确定转化方向:将所有条件转换成
  • 2024-09-01题解:AT_abc257_d [ABC257D] Jumping Takahashi 2
    [ABC257D]JumpingTakahashi2博客食用更佳:Myblog。大体思路这题是一道二分题,因为\(S\)越大,就越容易满足题目要求,\(S\)越小,就越难满足题目要求,符合二分的特点。下面先贴上二分代码。LLl=0,r=1e10;while(l<r){intmid=l+r>>1;if(check(mid))
  • 2024-08-290828-T3 天气预报
    0828-T3天气预报题意有\(4\times4\)的村庄,有一朵\(2\times2\)的云,需要控制云上下左右移动,保证每个村庄都不会连续\(7\)天以上不下雨,也不会在不能下雨的时间下雨。问是否可以做到。思路搜索。需要注意的是打标记时只用记录时间,云的位置,四个角落的村庄连续未下雨的天
  • 2024-08-28二分图网络流选讲
    前言完稿时间:2024.6.30二分图网络流选讲二分图定义无向图节点可两集合每个集合中的节点互不连边性质将两个集合中的点分别染成黑色和白色,可以发现二分图中的每一条边都一定是连接一个黑色点和一个白色点(废话)图中没有长度为奇数的环证明性质2:因为每一条边都是从一个
  • 2024-08-25题解:CF235C Cyclical Quest
    题意给定一个主串\(S\)和\(n\)个询问串,求每个询问串的所有循环同构在主串中出现的次数总和。分析后缀自动机好题。循环同构的过程可以看作从该串的头部删除一个字符,并在尾部加入一个字符。在后缀自动机上,跳parent树的过程就相当于删除头部的若干个字符。所以我们可
  • 2024-08-25[AGC067B] Modifications
    MyBlogs[AGC067B]Modifications谔谔,做过类似的题还是不会啊啊啊。首先考虑给定一个\(a\)序列如何进行判定。倒着做这个覆盖的过程,每次可以看成是,如果\([l_i,r_i]\)剩下的点的颜色都相同,则可以把\([l_i,r_i]\)删掉。如果最后能删空就是合法的。区间DP判定这个过程:\(f
  • 2024-08-24P3547 [POI2013] CEN-Price List 题解
    Description给定一个\(n\)个点\(m\)条边的无向图,边权均为\(a\)。现在将原来图中满足最短路等于\(2a\)所有的点对\((x,y)\)之间加一条长度为\(b\)的无向边。给定\(k\),求点\(k\)到所有点的最短路是多少。\(1\leqn,m\leq10^5\)。Solution首先有个显然的结论是
  • 2024-08-24SPFA && dijkstra 模版
    boolSPFA(ints){ intcnt=0; memset(dis,0x3f,sizeof(dis)); queue<int>q; q.push(s); vis[s]=1;dis[v]=0; while(!q.empty()) { intu=q.front();q.pop(); vis[u]=0; for(inti=0;i<g[u].size();i++) { intv=g[u][i].v,w=g[u][i].w; if(d
  • 2024-08-24牛客小白月赛99
    牛客小白月赛99\(A\)牛客NC275617材料打印\(AC\)\(by+a\times\min(x,y)\)即为所求。点击查看代码intmain(){llt,a,b,x,y,i;cin>>t;for(i=1;i<=t;i++){cin>>a>>b>>x>>y;cout<<b*y+a*min(x,y)