pta
华达州
一起卷吧
展开
-
L2-025 分而治之 (25分)团体程序设计天梯赛
思路: 一开始用邻接矩阵和并查集做的,但是超时了 之后改成了用邻接表的方式就能过了 代码如下: #include<iostream> #include<algorithm> #include<string> #include<vector> using namespace std; int visit[10001]; vector<int> map[10001]; int main(){ int n,m; scanf("%d %d"原创 2021-08-31 00:33:52 · 180 阅读 · 0 评论 -
L2-022 重排链表 (25 分)团体程序设计天梯赛
思路: 建立一个结构体保存节点 利用结构体数组保存当前节点的下一节点 再用一个vector保存完整的链表,之后就是双指针遍历 #include<iostream> #include<algorithm> #include<string> #include<vector> using namespace std; struct Node{ int val; int next; }node[100005]; int main(){ int head原创 2021-08-30 20:13:02 · 75 阅读 · 0 评论 -
L2-020 功夫传人(25 分) 团体程序设计天梯赛
思路: 这题明显是并查集,最后一个测试点超时,但是只有三分,没去专研了,其实可以改进的,可以存储每一层的功力值,就不必每次去运算了,只需要算一次 直接上代码 #include<iostream> #include<algorithm> #include<string> using namespace std; int p[100005]; int main(){ int n; double z,r,sum = 0; scanf("%d %lf %lf",&a原创 2021-08-30 19:06:43 · 137 阅读 · 0 评论 -
L2-013 红色警报 (25 分) 团体程序设计天梯赛
这道题有两种做法 求图的连通分量,如果失去一个城市之后,连通分量增加了两个或两个以上,则会影响城市之间的通讯 使用并查集 方法一: #include<iostream> #include<algorithm> using namespace std; int map[505][505]; int visit[505]; int n,m; //深度搜索 void dfs(int root){ visit[root] = 1; for(int i=0; i<n;原创 2021-08-28 13:44:19 · 174 阅读 · 0 评论 -
L2-012 关于堆的判断 (25 分) Java实现
思路: 首先是建立小顶堆,可以用java的优先队列, 再转换为数组,也可以手动创建 更改数组索引从1开始,因为这样的话就能保证索引除2能拿到他的双亲节点 根据输入判断命令并且把里面的数值取出来 把建立好的小顶堆存到一个HashMap里面,方便查找,因为val的值有负数,所以用数组不太方便 上代码: package pta; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.原创 2021-08-27 09:39:59 · 323 阅读 · 0 评论