摘要:
水~。 注意右半部为$0$的情况。 int main() { int T; cin>>T; while(T--) { string s; cin>>s; string a=s.substr(0,s.size()/2),b=s.substr(s.size()/2); int ts=stoi(s),ta 阅读全文
摘要:
有向图判环。 拓扑排序 判断拓扑排序的结果是否包含$n$个点。 const int N=110; vector<int> g[N]; int din[N]; int n,m; bool topo() { queue<int> q; for(int i=0;i<n;i++) if(din[i] == 阅读全文
摘要:
拓扑排序水题~。 const int N=510; vector<int> g[N]; vector<int> ans; int din[N]; int n,m; void topo() { priority_queue<int,vector<int>,greater<int>> q; for(in 阅读全文
摘要:
题意 给定n个点和n*(n-1)/2条边的无向图,求图的最小生成树,其中有些边已经确定(可能是最小生成树的一部分,也可能不是)。 思路 由于已经确定了部分边,在读入数据过程中,如果这条边已经被确定,那我们就用并查集将两点合并;如果这条边还未确定,那么我们将它放进边集数组等待Kruskal算法进行从小 阅读全文
摘要:
$MST$裸题。 struct Node { int a,b,c; bool operator<(const Node &W) const { return c < W.c; } }e[80]; int p[30]; int n,m; int find(int x) { if(x != p[x]) 阅读全文
摘要:
这是真的水,就是写起来烦(摊手)。 题意 给定一个图、一个起点和一个终点,求一条距离最短的路径,如果有多条距离最短的路径,从中选择时间最短的一条,数据保证唯一性;再求一条时间最少的路径,如果有多条时间最少的路径,从中选择路径上顶点个数最少的一条,数据保证唯一性。如果距离最短和时间最少的是同一条路径, 阅读全文
摘要:
水~。 题意 给定一个无向图和一.堆路径,判断每一条路径是否是这个无向图的哈密顿回路。所谓哈密顿回路是指首尾结点相同、经过且恰好经过图上所有结点各一次的路径。 思路 根据哈密顿回路的定义,一条路径是哈密顿回路需要满足3个条件: (1)首尾结点相同。 (2)路径的每条边必须都存在。 (3)不考虑首结点 阅读全文
摘要:
$MST$裸题 const int N=110; struct Node { int a,b; double c; bool operator<(const Node &W) const { return c<W.c; } }e[N*N]; PDD a[N]; int p[N]; int n,m; 阅读全文
摘要:
这题水的有点蛋疼。 题意 有N个城市,M条无向边。现在需要从某个给定的起始城市出发(除了起始城市外,其他每个城市都有一一个“幸福值”,前往名为“ROM”的城市。给出每条边所需要消耗的花费,求从起始城市出发,到达城市ROM所需要的最少花费,并输出最少花费的路径。如果这样的路径有多条,则选择路径上城市的 阅读全文
摘要:
水~。 题意 有N所居民房、M个加油站待建点以及K条无向边。现在要从M个加油站待建点中选出一个来建造加油站,使得该加油站距离最近的居民房尽可能远,且必须保证所有房子与该加油站的距离都不超过给定的服务范围DS。现在给出N、M、K、DS,以及K条无向边的端点及边权,输出应当选择的加油站编号、与该加油站最 阅读全文