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 · 165 阅读 · 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 · 63 阅读 · 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 · 129 阅读 · 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 · 168 阅读 · 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 · 317 阅读 · 0 评论