Vis
  • 2024-10-06题解:P11008 『STA - R7』异或生成序列
    Solution序列\(p\)是\(1\)~\(n\)的排列,因此考虑搜索回溯。由\(\sumn\le2\times10^6\)得知\(O(n^2)\)会炸,深感遗憾但仍考虑剪枝。坚信深搜过百万的蒟蒻。。。原\(b\)序列为长度\(n-1\)的序列:{\(b_1,b_2,b_3\cdotsb_n-1\)}将其前面插入一个元素\(
  • 2024-10-06topo sort
    P1038神经网络,拓扑排序板子题include<bits/stdc++.h>usingnamespacestd;constintN=1e2+10;structnode{intv,w;};vectorg[N];queueq;intn,m;boolflag=true;intc[N],in[N],out[N],vis[N];voidtopsort(){while(!q.empty()){intu=q.front();q.pop();
  • 2024-10-01题解:AtCoder Beginner Contest AT_abc373_d ABC373D Hidden Weights(格式美化版)
    题目传送门题目翻译给你一个NNN个点,MMM条边的有向图,其中边有边
  • 2024-09-30最短路
    最短路及其衍生讲解注意dij堆优化要在\(intu=q.top().seond\)下面写\(if(vis[u])continue;\)和\(vis[u]=1\),因为这是代表\(u\)此时放进与起点同一集合了。判负环spfa做,十分简单,记录一个点入队次数或到某个点路径长度,\(>=n\)即有负环,模板建反图其实就是当我们有多个起点,但
  • 2024-09-302507 城市和州 map
    #include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=2e5+10;//使用map来记录每个城市前两个字母和州的组合出现的次数map<string,int>vis;stringa,b;intn,ans;intmain(){//读取城市的数量cin>>n;for(inti
  • 2024-09-30P7730 [JDWOI-1] 蜀道难
    首先,区间增加定值并且要求单调不降,很容易想到差分。于是先把\(h\)数组差分一下,题目的要求即为最小代价使得\(h\)均为非负数。观察一下两种操作,发现\(n\)的范围很小,可以枚举操作的起点\(i\),然后如果操作是压低,相当于\(h[i]--,h[i+l[i]]++\)。而如果操作是抬高,相当于
  • 2024-09-29题解:AtCoder Beginner Contest AT_abc373_d ABC373D Hidden Weights
    题目传送门题目翻译给你一个NNN个点,MMM条边的有向图,其中边有边
  • 2024-09-29CSP模拟6
    T1一般图最小匹配点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=5000+107;intn,m,a[N];intread(){ intf=1,s=0;charch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=ge
  • 2024-09-29ABC 373(D-F)
    https://atcoder.jp/contests/abc373/tasksD:搞不清楚dfs还是bfs真的是有点太抽象(一直在想bfs)。每个点只要访问过就不再访问第二次直接dfs可过。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definepbpush_back#definepiipair<int,int>#define
  • 2024-09-29定重向
    $\quad$说一个随机数据很快的方法。$\quad$考虑优化\(O(Tn^2)\)的暴力,首先枚举删数的位置,然后求出此时的最小序列。$\quad$我们发现,当此时枚举的序列已经大于答案序列了,再去枚举该位置就毫无意义了,直接停止枚举即可,这样就会有70分。$\quad$那么还可以怎么优化呢?$\q
  • 2024-09-28题解:P9947 [USACO20JAN] Photoshoot B
    P9947[USACO20JAN]PhotoshootB题解纯模拟!在\(a_{1}\)算出来之后,我们就可以通过\(b\)数组可以求出以后\(a\)数组的所有元素。要判断是否为排列,我们可以使用一个\(vis\)做桶,为了保证字典序最小,我们可以从\(1\)开始枚举,每次枚举前要清空一下\(vis\)数组,最后使用
  • 2024-09-28『模拟赛』csp-s模拟赛6
    『模拟赛』csp-s模拟赛6挂分日寄:0+20+0+0喵喵赛时对拍拍了10000个点都没拍出来,赛后一下就拍出错来了,我谔谔。T1DP喵~首先sort一遍方便处理其实转移时加一个abs取绝对值就可,纯纯多此一举设\(f[i,j,1/0]\)为前\(i\)个数中选\(j\)个的最小值若选当前这个数,则\(f[i
  • 2024-09-28P3355 骑士共存问题
    P3355骑士共存问题我还没学网络流所以先讲二分图的做法,讲述下思路怎么推出来的。可以发现骑士可达的点的颜色总是与自己的颜色相反,放了这个骑士,周围可达的方格就不能放骑士,要求客房的最多骑士数量,发现这与二分图最大匹配是相同的,所以直接进行分点匹配。#include<bits/stdc++.
  • 2024-09-27二分图最大匹配/二分图最大权匹配
    二分图最大匹配匈牙利算法思路算法核心:找“增广路”遍历所有左侧点,每次进行一下流程:尝试去寻找一个右侧点来匹配;若该右侧点还没有匹配的左侧点,则找到了,回溯。否则进入改右侧点的匹配左侧点,回到1。代码constintN=505;intn,m,tag;vector<int>g[N];intmatch[N]
  • 2024-09-26题解 QOJ837 / ZROI1287【Giant Penguin】
    PetrozavodskWinter2020.Day3.300iqContest3.ProblemG.GiantPenguinGiantPenguin-Problem-QOJ.ac题目描述有一个\(n\)个点\(m\)条边的连通无向无权图,满足每个节点在至多\(k\)个简单环上(没有重复顶点的环是简单环)。\(q\)次操作支持:1.标记一个点;2.询问
  • 2024-09-25EGOI
    QOJ9182题目描述在一个环形跑道上,有\(N\)名参赛者,分别编号\(0\)到\(N-1\),你的编号为\(0\)。一开始所有参赛者都在起跑线后,你是其中最靠后的一个。就像这样:你知道在什么时候你超越了\(A\),或\(A\)超越了你。并且这些超越都不会在起跑线上发生。没有人往后跑,并且参赛
  • 2024-09-25【数据结构】图的遍历
    快乐的流畅:个人主页个人专栏:《C游记》《进击的C++》《Linux迷航》远方有一堆篝火,在为久候之人燃烧!文章目录引言一、深度优先遍历1.1定义1.2实现二、广度优先遍历2.1定义2.2实现三、DFS与BFS的对比引言前置知识:【数据结构】图的概念和存储结
  • 2024-09-25《如 何 速 通 一 套 题》5.1bug fixed
    好吧,那天晚上才发现数据错了,只能咕一下了,现在咕完了前情提要:5.0D补幺梨\(1\lem\le10^8\),\(1\len\le10^7\),一看就不是背包。那么,以背包的形式出现,但是不是背包,还能是什么呢?同余最短路。只能是同余最短路。然后由于\(n\)太大了,所以不同的值的数量估计不会很多,最大
  • 2024-09-22关于 最短路 及其 拓展算法 的粗浅总结
    关于最短路及其拓展算法的粗浅总结最短路(Dijkstra)Core_Codeinlinevoiddijkstra(){memset(vis,0,sizeofvis); memset(dis,0x3f,sizeofdis);dis[s]=0;priority_queue<pair<int,int>>q;q.push(make_pair(dis[s],s));while(!q.empty()){
  • 2024-09-20hdu2063过山车
    1、匈牙利算法;2、二分图最大匹配importjava.util.Scanner;publicclassMain{publicstaticbooleanfind(intcur,int[]pre,boolean[][]map,boolean[]vis){for(inti=1;i<pre.length;i++){if(map[cur][i]&&!vis[i]){
  • 2024-09-20二分图
    定义节点由两个集合组成,且两个集合内部没有边的图性质无奇环每条边都是从一个集合走向另一个集合。二分图判定使用染色法。进行\(dfs\),为图进行黑白染色,若可以完成则该图是二分图。boolvis[N];//0:未染色,1:黑色,2:白色boolflag=1;voiddfs(intx){ for(autoy:v[
  • 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,不是把边切掉),让某条边花费减半之