- 博客(4)
- 收藏
- 关注
原创 2021-08-30
e 题意为给出p(人数),s(最先发垃圾信息的人); 第二行p个人的名字: p行:一个n(他给几个人发信息):(n个人); 他们收到信息后会给他们能发信息的人发信息,问有几个人会一直收到这条信息; 思路: 数据很小,可以跑一下弗洛伊德最短路,先全赋值最大然后将给的人之间连一条长度为0的路; 跑一边弗洛伊德,如果这个点可以回到自己(a[i][i]==0)这样的话就证明他在一个回路里也就是说只要s可以给他发消息他就会一直收到消息(a[s][i]==0)所以只要跑一遍就能知道在回路中的部分,但是这并不是全部,他还
2021-08-30 18:25:15
49
原创 U . System Dependencies
U . System Dependencies 题目给出了四种命令,depend(后面的部分是说第一个依赖后面的),install(安装所给任务的依赖环境),remove(删除环境),list(输出环境); 只需要对这几种操作模拟就可以了。 #include<bits/stdc++.h> using namespace std; typedef long long ll; vector<int> aa[10001],b[10001]; map<string,int> m;
2021-07-23 14:10:35
89
原创 V . Paintball
V . Paintball 题目给一个n,让后给n个点,让我们从左边出发到右面,不能经过题目给出的这些圆圈。 让我们给出他能不能过去,如果能给出左边的最大出发点和右边的最大到达点坐标。 不难看出只要给出的圆圈可以从上边连到下边他就不能到达,这里就可以用并查集,也可以用dfs判断,这里我用的并查集,判断每一个点是否同时与上边界和下边界联通,只要有点联通就可以判断是不能到达的了。同时在判断左右端点时我们可以判断每一个点是否与上边界联通同时判断其是否与左右边界相交,取他们的下交点用min函数更新左右出发点即可。
2021-07-23 14:01:58
107
原创 T . Ideal Path
T . Ideal Path 题目就是说给一个n,和一个m,起始点在1,问从1到n的最短路径长度和在此过程中最小的颜色序号。 有m行,表示a,b,联通并且颜色为c; 可以先从n点出发,bfs找出每个点相对n的最短距离,再从起始点出发bfs并判断最短颜色序。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=100005; int n,m; int tol; int head[maxn
2021-07-23 13:49:24
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人