ICode9

精准搜索请尝试: 精确搜索
  • 图的遍历(dfs)2022-06-06 09:03:05

    题目描述 给出N个点,M条边的有向图,对于每个点v,求A(v)表示从点v出发,能到达的编号最大的点。 输入格式 第1 行,2 个整数N,M。 接下来MM行,每行2个整数Ui​,Vi​,表示边(Ui​,Vi​)。点用1,2,⋯,N编号。 输出格式 N 个整数A(1),A(2),⋯,A(N)。 输入输出样例 输入 #1复制 4 3 1 2 2

  • 复习复习!!!模板模板!!!2022-06-04 22:34:39

    人,该复习还是要复习的           -----我自己   2022/6/4 正好明天集训了,那就从今天开始复习复习,捡起遗忘的知识,板子不能忘啊 从今天开始写,也不知道什么时候能写完,其实根本没有尽头,学到新东西也会写的 那就开始吧/)(\ 一.图论 1.dijkstra(堆优化) 例题:I. 香甜的黄油 -

  • BalticOI2017 Political Development2022-06-04 20:31:09

    对于度数\(<k\)的点可以快速的求出包含它的团,问题就是解决度数比较大的团 注意到题目特殊限制,没有一个导出子图所有点度数都较大,所以一定可以通过不停地遍历、删除度数\(<k\)的点来遍历整张图(类似于拓扑排序) 并且我们可以发现对于一个已经check的点删除后不会对答案有影响,所以我们

  • CF1400G Mercenaries 题解2022-05-28 15:31:59

    如果没有敌对关系,枚举一共选 \(i\) 个人,如果有 \(j\) 个人满足 \(i\in [l_j,r_j]\),那么方案数是 \(\binom{i}{j}\)。 接下来考虑限制,由于 \(m\leq 20\),考虑容斥,直接钦定一个集合 \(S\),其中所有为 \(1\) 的位置对应的限制必选,这个方案数也是一个组合数。由于钦定选定的位置最多也就

  • 304 最短路 Johnson 算法2022-05-28 13:35:14

    视频链接: #include<algorithm> #include<cstring> #include<iostream> #include<queue> #define N 30010 #define INF 1000000000 using namespace std; int n,m,a,b,c; struct edge{int v,w;}; vector<edge> e[N]; int vis[N],cnt[N]; long lon

  • 325 最近公共祖先 Tarjan算法2022-05-28 13:31:42

    视频链接: // P3379 【模板】最近公共祖先(LCA) #include <iostream> #include <algorithm> #include <cstring> #include <vector> using namespace std; const int N=500005,M=2*N; int n,m,s,a,b; vector<int> e[N]; vector<pair<int,int>>q

  • 最小生成树2022-05-23 23:03:29

    Prim     O(mlogm) memset(dis, 80, sizeof(dis)); q.push({ 1,0 }); dis[1] = 0; while (!q.empty()) { int u = q.top().s; q.pop(); if (vis[u])continue; vis[u] = true, ++num, ans += dis[u]; for (int i

  • 方程的解2022-05-23 12:32:02

    题面描述 求不定方程 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!} \]的正整数解\((x,y)\)的数目。 题解 小数学题+高精度 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\\\frac{x+y}{x*y}=\frac{1}{n!}\\x*y-x*n!-y*n!=0\\x*y-x*n!-y*n!+(n!)^2=(n!)^2\\(x-n!)*(y-n!)=(n!)^2 \]方案数就是

  • AcWing 903. 昂贵的聘礼2022-05-22 21:04:38

    y总做法:建立一个虚拟原点,到所有物品的距离为物品原本价值,物品之间的价值为交易价值,枚举等级范围跑最短路即可 我的做法:以女儿为原点反向建图,物品之间的距离为交易价值,到每个物品的最短路加上这个物品的原本价值即为总花费,取最小 时间复杂度均为O(n^2*logn)(dij堆优化) #inclu

  • P5471 [NOI2019]弹跳 题解2022-05-20 12:00:40

    题面 这个题是二维的情况,一个点向一个矩形连边。一维的时候就是线段树优化建图,这里只能树套树优化建图了。但是这道题空间只有128MB,显然空间不能达到 \(O(n\log^2 n)\) 级别,所以考虑线段树套平衡树 (set) 来解决。 一个通常用来解决这种问题的方案是,不直接连边,而是把每个矩形在跑

  • CF1423C Dušan's Railway2022-05-14 01:02:07

    反正可以直接当 \(k=3\) 去做,然后考虑直接去构造。 首先任意给树找一个根,然后将整棵树拆成几个大小为 \(\sqrt n\) 的子树,将所有这些子树的根 \(u\) 塞到一个点集 \(a\) ,然后将 \(a\) 中的点相互连接,边的数量为 \(\mathcal O(n)\)。 接着,对于点集 \(a\) 中的每个点 \(u\),将 \(u\)

  • 2021级ACM班&2022年寒假集训《数据结构》专题12--拓扑排序和关键路径2022-05-11 16:02:27

    A - 数据结构实验之图论十:判断给定图是否存在合法拓扑序列 题目链接 https://acm.sdut.edu.cn/onlinejudge3/contests/3990/problems/A 判定拓扑序列模板题 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,flag; 4 int mapp[1010][1010]; 5 int vis[1010];

  • 全排列算法2022-05-10 12:03:58

    具体不是很懂,代码如下: #include<iostream>using namespace std;int n;//需要全排列的数字数量 int num[20];//数值数组int vis[20];//标记数组 int main(){ void dfs(int step); cin >> n; dfs(1); return 0;} void dfs(int step){ if(step == n+1){//跳出递归条件 for(int i=1;

  • PAT 甲级 1018 Public Bike Management2022-05-08 13:02:06

    先用迪杰斯特拉剪枝,再dfs确定最佳方案 #include<bits/stdc++.h> using namespace std; typedef pair<int,int> pii; const int N = 4010,INF = 0x3f3f3f3f; int n,m,c,t; int nums[N]; int head[N],dis[N],vis[N],cnt; int send=INF,bring=INF; struct BIAN{ int to,next

  • 深度优先搜索练习之神奇的矩环2022-05-06 20:32:58

    题目是让找一个长度不为一的环,用DFS即可。 #include <iostream> #include <cstring> using namespace std; char mp[510][510]; bool vis[210][210]; int n, m; int fx[] = {0, 0, 1, -1}, fy[] = {1, -1, 0, 0}; bool flag; void dfs(int x, int y, int c, int d) { vis[x]

  • Coolest Ski Route2022-05-03 19:34:41

    求最长路,可以用spfa做, 数组要开到1e6,否则会超时 #include <iostream> #include <queue> #include <cstring> using namespace std; const int N = 1e6 + 10; const int INF = 0x3f3f3f3f; #define x first #define y second int ne[N], e[N], w[N], h[N], idx, in[N]; type

  • 剑指offer(38)2022-05-03 09:03:26

    剑指offer(38) 剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s = "abc" 输出:["abc","acb","bac","bca","cab","cba"] 限制: 1 <= s 的长度 <= 8 利用回溯方法去解决这个问

  • 迪杰斯特拉(dijkstra)2022-05-01 16:34:19

    邻接矩阵写法: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int inf=0x3f3f3f3f; 4 const int maxn=1e5+10; 5 int vis[maxn],dist[maxn]; 6 int n,m,a,b; 7 struct node 8 { 9 int dis,to; 10 bool operator<(const node x) const 11

  • 差分约束2022-05-01 01:33:31

    差分约束模板     典型的 $x_u - x_v <= y$ 形式 #include<iostream> #include<cstring> #include<queue> #define maxn 50007 using namespace std; struct edge { int to, val, nxt; }g[maxn]; int n, m, cnt, dis[maxn], hd[maxn], sum[maxn]; bool vis[maxn

  • Prim 最小生成树 图解2022-04-29 23:03:09

    ​ 什么是生成树 子图:G=<V,E>,G'=<V', E'>,为两个图(V为点集,即图中点的集合,E为边集),如果V'是V的子集且E'是E的子集,则G'是G的子图。 如果V'=V,则称G'为G的生成子图 如果G'是无向生成子图且是树的结构,则为生成树 最小生成树 最小生成树:是一张有权无向连通图中边权和最小的生成树 Prme算法:

  • Codeforces Global Round 202022-04-24 22:31:49

    Codeforces Global Round 20 https://codeforces.com/contest/1672 A.Log Chopping 思路 统计总共要被划分多少次,判断奇偶性:奇数则先手胜出,偶数则后手胜出 Code #include <bits/stdc++.h> using namespace std; int main () { int t; cin >> t; while (t --) {

  • acwing区间2022-04-24 21:32:49

    首先区间个数可以转化为前缀和的形式 然后就是差分约束了 最少包含多少个数 就是不等式为a>=b+c 的形式 只要满足了最长路的不等式 其他所有的不等式也都满足 就是跑一遍最长路 差分约束的关键在于这个约束 一定要把所有的限制条件找出来 这个题看似只有一个区间个数的限制 其实

  • leetcode 587 安装栅栏2022-04-23 16:01:31

    class Solution { public: int getarea(vector<int>& a, vector<int>& b, vector<int>& c){ int x1 = b[0] - a[0], y1 = b[1] - a[1], x2 = c[0] - a[0], y2 = c[1] - a[1]; return x1 * y2 - x2 * y1; } vector&

  • Cow Picnic S2022-04-19 18:35:03

    题目描述 K(1≤K≤100)只奶牛分散在N(1≤N≤1000)个牧场.现在她们要集中起来进餐.牧场之间有M(1≤M≤10000)条有向路连接,而且不存在起点和终点相同的有向路.她们进餐的地点必须是所有奶牛都可到达的地方.那么,有多少这样的牧场呢? 输入 第一行三个数,K,N,M 接下来K+1行,每行一个数表示

  • Tarjan的一些学习心得与错误2022-04-18 22:03:33

    Tarjan的一些学习心得与错误 在原始 \(Tarjan\) 的模板代码中, \(low\) 的处理一般是像下面这样: inline void Tarjan(int u){ dfn[u]=low[u]=++tim; GOGRA(e,head,u,i){ int v=e[i].to; if(vis[v]==0){ Tarjan(v); low[u]=min(low[u],low[v]); }else if(vis[v]==1){

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有