首页 > TAG信息列表 > Vis
CF241E Flights 题解
CF241E 简要题意 \(n\) 个点,\(m\) 条有向边,每条边初始边权是 \(1\),让将一些边的边权变为 \(2\),使所有从点 \(1\) 到 \(n\) 的路径长度相等。 分析 首先发现如果一条边不在 \(1\) 到 \(n\) 的任意一条路径上,可以给它任意赋边权,因此只需考虑在 \(1\) 到 \(n\) 路径上的边。设 \(1\)[kuangbin带你飞]专题四 最短路练习
Til the Cows Come HomePOJ - 2387 题意:给你一幅地图,点1~N,双向正权路,问你N到1的最短路径? 算法:Dijkstra或者SPFA 思路:因为是正权路径,可以用Dijkstra算法;SPFA区别就是可以判断负权环。 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <algorithmCodeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022
Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 A:Mainak and Array 思维 题意: 给定一串序列,你可以进行如下操作 询问经过多次操作后,得到的(an-a1)的最大值。 思路: 情况1:如果选择整个区间,我们只能选择相对下标差为n-1的两个数 情况2[Google] LeetCode 1631 Path With Minimum Effort 优先队列
You are a hiker preparing for an upcoming hike. You are given heights, a 2D array of size rows x columns, where heights[row][col] represents the height of cell (row, col). You are situated in the top-left cell, (0, 0), and you hope to travel to the bottomTimus 1569
https://acm.timus.ru/problem.aspx?space=1&num=1569 题意就是给你一个无向图,求最小直径生成树。 这题\(O(n^3)\)的题解有很多,但是这题其实可以做到\(O(\frac{n^3}{\omega})\),其中\(\omega\)是bitset中的,可能是\(32\)或\(64\)。 首先设最优的生成树是\(T\)。那么假设\(T\)的直径ABC263 G - Erasing Prime Pairs
拆点 + 最大流 G - Erasing Prime Pairs (atcoder.jp) 题意 有 n(n <= 100)种互不相同的数,分别是 \(A[i]\) (<=1e7), 每个有 \(B[i]\) 个 每次可以任意取两个数,如果相加是素数就消去这两个数,求最多操作次数 思路 思路一、 不考虑 1 + 1 = 2 出现偶素数,可以将奇数,偶数分开,能消掉的连边洛谷 P1123 取数游戏(dfs)
https://www.luogu.com.cn/problem/P1123 题目大意:给定一个n*m的矩阵,问我们从里面怎样取能取到最大的总和? 条件是选了一个数,下次它的八个方向上的数字就不能选了 输入 #1复制 3 4 4 67 75 63 10 29 29 92 14 21 68 71 56 8 67 91 25 2 3 87 70 85 10 3 17 3 3 1 1 1 1 99 1 1 1LC695
//需要自己指定开始位置(循环寻找) int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; int vis[55][55]; int bfs(vector<vector<int>>& grid,int x,int y){ int res=1; queue<pair<int,int> > q; q.push({x,y}); vis图的几种存储方法
作为我们学习图论的基点,我们有必要了解几种常用的图存储方法,并比较他们的优劣与适用范围。 本文参考了https://oi-wiki.org/graph/save/ 直接存边: 由于直接存边的遍历效率低下,一般不用于遍历图。 在 Kruskal算法中,由于需要将边按边权排序,需要直接存边。 在有的题目中,需要多次建图(C20220805T3 零和
当构造出长度为22的随机 \([1,5]\) 的集合后,出现合法方案的概率很大,所以可以先随便构造一种方案,然后再通过背包求出其他取值中可以满足的方案数(即先构造22个极小的整数,去找到其他负数,并将这几个负数以01背包的方式求出对应的方案数),最后离线 \(t\) 组询问,若有解就继续,若无解就重新ABC265F,G
ABC265F 题解做法 by Mikukuovo #include<bits/stdc++.h> #define ll long long using namespace std; const int mod=998244353; int n,d; int main(){ ios::sync_with_stdio(false); cin>>n>>d; vector<int>p(n),q(n); for(int i=0;i&l「NOI2016」网格 题解
「NOI2016」网格 题解 前言 感谢 zqm 学长提供调代码服务! 本文中,所有没有特殊说明的连通都是指四连通,相邻都是指上下左右相邻。 题目大意 有一个 $ n \times m $ 的网格,上面有 $ c $ 个障碍物,求至少还需要多少个障碍物才能使空地不连通。 输入 第一行有一个整数 $ T $,表示数据组数做题记录:P4013 数字梯形问题
首先这题是最大费用最大流。 然后几乎没什么细节好主意的。 遵守以下规则: 梯形的第一行有 mm 个数字。 从梯形的顶部的 mm 个数字开始 在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。 scanf("%lld%lld",&m,&n); s=1e6,t=1e6+1;//p[i][j]为点(i,5.营救
码学堂 同第一题,最短路径的板子题 这种题的一般思路: 广搜: 1.初始状态标记(初始元素入队,初始元素vis,ans,cnt等数据初始化) 2.进入while(!q.empty()) (1)取出队首元素放入now(不要忘记pop掉) (2)枚举所有可能出现的可拓展情况(这里可以用for的临界来整活) vis标记保证每个位点都只到达一次,这一填涂颜色
输入 输出 已经填好数字 2的完整方阵。 样例输入 6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 样例输出 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 1 用bfs将闭合圈之外的0染色 最后在反向输出就行了 #3.面积
码学堂 这个题和第二题是一个意思,只不过把换成2改成计数而已 1 #include<iostream> 2 #include<queue> 3 #include<algorithm> 4 using namespace std; 5 int n=10; 6 int map[15][15]; 7 bool vis[15][15]; 8 typedef pair<int,int>PII;//+typedef PII变量变类型2.填涂颜色
题目链接(码学堂) 题目链接(洛谷) 分析:这是一个简单的单一连通块问题 对于这种分类明显的题,我们可以通过分类来界定 一部分是 连通块以外0 vis[i][j]=1; 一部分是 连通块中的1 map[i][j]=1; 一部分是 连通块包含的0 else map[i][j]=2; 这里我们很难保证第一1038 虫洞 Wormholes 判断负环+各种细节
链接:https://ac.nowcoder.com/acm/contest/26077/1038来源:牛客网 题目描述 John在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前)。John的每个农场有M条小路(无向边)连接着N(从1到N全排列问题
要求一个答案中没有重复的数字,就要设一个标志数组visited表明某个数字已经被某位用过了,在枚举数位的时候跳过:vis[i]表示数字i在这个答案中已经出现 从前往后枚举每一位,每一位上枚举所有数位上可能的数,检查标志数组后这一位就能被确定,为这个可能做标记并记录到答案中。如果所有如果76. 最小覆盖子串
76. 最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们55. 跳跃游戏
55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 38.19总结
啊~,本周的第一个暴零 所罗门王的宝藏 \(solution\) 第一眼的时候完全没有想到是图论,当然暴零不是这个原因 把行和列进行连边,因为行i的旋转次数+列j的旋转次数一定等于\(c_{i,j}\),所以bfs一遍,如果无法同时满足\(a_i+b_j=w_{i,j}\),\(a_{i1}+b_{j1}=w_{i1,j1}\),则不行,否则可以 AC Ccontempt
Contempt is a pattern of attitudes and behaviour, often towards an individual or group, but sometimes towards an ideology, which has the characteristics of disgust and anger. The word originated in 1393, from the Latin word contemptus meaning "scorn&1017 [USACO 2007 Ope B]Bronze Cow Party dij 板子题
链接:https://ac.nowcoder.com/acm/contest/26077/1017来源:牛客网 题目描述 One cow from each of N farms (1 <= N <= 1000) conveniently numbered 1..N is attending the big cow party to be held at farm #X (1 <= X <= N). Each of M (1 <YbtOJ 「图论」第2章 最小生成树
为什么区间 dp 又咕咕咕了QAQ 于是随机抽取了一个幸运章节来做。 目前处于半摆烂状态。 例题1.繁忙都市 板子。写了下以前几乎没写过的堆优化 Prim。 code #include<bits/stdc++.h> #define pii pair<int,int> #define fi first #define se second using namespace std; const i