算法
小王子y
互关啊!!
展开
-
1389:亲戚 并查集
1389:亲戚 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4599 通过数: 1471 【题目描述】 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的某个人所在家族的人数。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 【输入】 第一行:三个整数n,(n≤100,000,m≤200,000),分别表示有n个人,m个信息。 以下m行:原创 2020-10-23 22:26:05 · 226 阅读 · 0 评论 -
1524. 最长回文子串(简便奇数偶数推导)
给定一个字符串,请你求出其中的最长回文子串的长度。 例如,给定字符串 Is PAT&TAP symmetric?,最长回文子串为 s PAT&TAP s,其长度是 1111。 输入格式 包含一个非空字符串。 输出格式 输出一个整数,表示给定字符串的最长回文子串的长度。 数据范围 给定字符串的长度不超过 10001000。 输入样例: Is PAT&TAP symmetric? 输出样例: 11 #include <iostream> #include <cstr原创 2020-10-20 22:01:43 · 301 阅读 · 0 评论 -
PTA有理数运算(函数使用)
给定两个有理数,你的任务是实现基本算术,即计算它们的和,差,积和商。 输入格式 共一行,以 a1/b1 a2/b2 的形式给出两个有理数。 分子和分母都在 long int 范围内,如果存在负号,则只能出现在分子前面,分母保证为非零数字。 输出格式 分别在四行输出两个有理数的和,差,积和商。 每行的格式为 number1 operator number2 = result。 请注意,所有有理数都必须采用最简形式,k a/b,其中 kk 是整数部分,而 a/ba/b 是最简分数部分。 如果数字为负,则必须将其原创 2020-10-20 12:38:45 · 406 阅读 · 0 评论 -
背包问题DFS解法
#include<iostream> #include<cstdio> #include<vector> #include<cstring> using namespace std; const int maxn=30; int n,V,maxvalue=0; int w[maxn],c[maxn]; void dfs(int index,int sumw,int sumc){ if(index==n){ if(sumw<=V&&原创 2020-09-27 21:01:29 · 262 阅读 · 0 评论 -
CCF窗口
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。 现在我们希望你写一个程序模拟点击窗口的过程。 输入格式 输入的第一行有两个正整数,即 N 和 M。(1原创 2020-08-18 22:04:47 · 359 阅读 · 0 评论 -
案例6-1.5 旅游规划 Dijkstra
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。 输入格式: 输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;...原创 2020-05-03 23:57:37 · 294 阅读 · 0 评论 -
习题8.5 畅通工程之局部最小花费问题 并查集
畅通工程之局部最小花费问题 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。 输入格式: 输入的第一行给出村...原创 2020-05-02 18:26:09 · 404 阅读 · 0 评论 -
并查集
畅通工程 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。 注意:两个城市之间可以有多条道路相通,也就是说 3 3 1 2 1 2 2 1 这种输入也是合法的 当N为0时,输入结束,该用例不被处理。 Output ...原创 2020-05-01 14:00:39 · 130 阅读 · 0 评论 -
最小生成树 Prim算法
题目 1705: 算法7-9:最小生成树 输入 输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。 以后的n行中每行有n个用空格隔开的整数,对于第i行的第j个整数,如果不为0,则表示第i个顶点和第j个顶点有直接连接且代价为相应的值,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。 输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图,且保证图中只有一个连通分量。 输出...原创 2020-04-28 16:25:17 · 596 阅读 · 0 评论 -
拓扑排序
输入 的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。 以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个整数,如果为1,则表示第i个顶点有指向第j个顶点的有向边,0表示没有i指向j的有向边。当i和j相等的时候,保证对应的整数为0。 输出 如果读入的有向图含有回路,请输出“ERROR”,不包括引号。 如果读入的有向图不含有回路,请按照题目描述中的算法依次输出图的拓扑...原创 2020-04-27 21:20:48 · 237 阅读 · 0 评论 -
Floyd
蓝桥杯Floyd算法 输入的第一行包含1个正整数n,表示图中共有n个顶点。其中n不超过50。 以后的n行中每行有n个用空格隔开的整数。对于第i行的第j个整数,如果大于0,则表示第i个顶点有指向第j个顶点的有向边,且权值为对应的整数值;如果这个整数为0,则表示没有i指向j的有向边。当i和j相等的时候,保证对应的整数为0。 输出 共有n行,每行有n个整数,表示源点至每一个顶点的最短路径长度。如果不存在...原创 2020-04-27 17:33:17 · 689 阅读 · 0 评论 -
Dijkstra堆算法
#include <bits/stdc++.h> using namespace std; const int N = 1e3 + 9, INF = 0x3f3f3f3f; struct edge{int to,cost;};//边 vector<edge> E[N]; typedef pair<int, int> p; int n, dis[N], inq[...原创 2020-04-27 15:00:14 · 161 阅读 · 0 评论