- 博客(113)
- 收藏
- 关注
原创 PTA数据结构与算法题目集(中文)7-38
非递增堆排序:#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<map>using namespace std;int size,m;int a[1000005];void Downlowd(int*pa,int pos,int size){ int p=pos,c=2*p+1; int temp=pa[pos]; wh
2021-02-28 10:10:38 130
原创 PTA数据结构与算法题目集(中文)7-37
排序问题:#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int maxn=100005;int n,c;struct stu{ char num[10]; char s[10]; int score;};stu st[maxn];int compare(stu a
2021-02-28 10:08:43 209
原创 PTA数据结构与算法题目集(中文)7-36
Floyd算法求解:#include<stdio.h>#include<stdlib.h>#include<math.h>#define max 50005int e[10005][10005];int d[10005][10005];int n,m,start,dest;int K;int flag=1;void init(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if
2021-02-28 10:04:31 193
原创 PTA数据结构与算法题目集(中文)7-29
用哈夫曼树求解。#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<list>#include<iomanip>#include<fstream>using namespace std;template<class T>class Queue {private: list<T&g
2021-02-28 10:01:56 177
原创 PTA数据结构与算法题目集(中文)7-25
题意:找出M个俱乐部中最大朋友圈数量,朋友的朋友也朋友,所以可以采用并查集写此算法。开始自己把题目理解错了,最后看了大神的写法终于明白了。#include <iostream>#include <map>#include <vector>using namespace std;int par[100005];int n;void init(){ for(int i=0;i<=n;i++){ par[i]=i; }}int findPare
2021-02-28 09:59:44 296
原创 PTA数据结构与算法题目集(中文)7-24
map的应用:#include<iostream>#include<algorithm>#include<cmath>#include<map>#include<cstdio>#include<cstring>using namespace std;int main(){ int n; string s; map<string,int>mp; while(cin>>n){ getcha
2021-02-28 09:48:18 155
原创 PTA数据结构与算法题目集(中文)7-18
题意:有两个窗口A,B,题目给出A窗口处理完两个顾客,B窗口处理完一个顾客,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。我们可以给出两个队列q1,q2分别表示A,B窗口,编号为奇数的顾客存放到q1中,为偶数的顾客存放到q2中。#include<iostream>#include<algorithm>#include<queue>#include<cmath>#include<cstring>using namespace
2021-02-28 09:45:44 193
转载 poj1062
题意:很好理解,不多说了题解:求最短路,迪杰斯特拉算法,并且要枚举注意:有等级的限制,因此在初始化vis[]的时候根据等级先把不能交易的先处理:vis[I] = 1;#include <cstdio>#include <cstring>int map[105][105];int cost[105],dist[105],rank[105],vis[105];int max,n;int dijkstra()//迪杰斯特拉算法求最短路{ int i,j;
2021-02-28 09:36:10 316
原创 poj2253
这个题目要求求是青蛙距离,也就是求最小最大距离。#include<iostream>#include<algorithm>#include<cstring>#include<iomanip>#include<cmath>#include<queue>using namespace std;const int maxx=205;const double inf=0x3f3f3f3f;int n;double e[ma
2021-02-28 09:32:14 140
原创 PTA数据结构与算法题目集(中文)7-15
map的应用:#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<map>#include<cstdio>using namespace std;int main(){ map<long long int,string>mp; int n; string s="myQQ@qq.com"; strin
2021-02-28 09:25:23 179
原创 PTA数据结构与算法题目集(中文)7-14
map的应用:#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <map>using namespace std;int n;map<long long int ,int>mapp;int main(){ scanf("%d",&n); int maxx=-1; //记录电话狂人
2021-02-27 13:39:43 156
原创 PTA数据结构与算法题目集(中文)7-13
#include<stdio.h>int main(){ int N,i,j; int number[51]; scanf("%d",&N); for(i=0;i<51;i++) number[i]=0; for(i=0;i<N;i++){ scanf("%d",&j); number[j]++; } for(i=0;i<51;i++) if(number[
2021-02-27 13:38:20 187
原创 PTA数据结构与算法题目集(中文)7-12
堆排序:#include<stdio.h>void PercolateDown(int*pa,int pos,int size){ int p=pos,c=2*p+1; int temp=pa[p]; while(c<size){ if(c+1<size&&pa[c+1]>pa[c]){ c++; } if(temp>=pa[c]){ break; }else{ pa[p]=pa[c]; p=c;
2021-02-27 13:36:49 158
原创 PTA数据结构与算法题目集(中文)7-7
#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<list>#define inf 0x3f3f3f3fusing namespace std;int n,m;int start,dest;int e[3305][3305];int d[3305][3305];int dist[1005];int maxn[1005];
2021-02-27 13:35:13 175
原创 PTA数据结构与算法题目集(中文)7-10
#include<stdio.h>#include<stdlib.h>#define max 0x3f3f3f3fint d[1005][1005];int e[1005][1005];int n,m;int start,dest;int cost;int p[1005];void init(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j){ e[i][j]=0;
2021-02-27 13:33:59 128
原创 PTA数据结构与算法题目集(中文)7-1
7-1 最大子列和问题#include<stdio.h>int main(){ int n; int sum=0;; int item; int max=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&item); sum+=item; if(sum<0){ sum=0; } if(sum>=max){ max=sum; } } printf("%d
2021-02-27 13:32:49 507
原创 poj1789
题意:一个字符串之间的不同字母数转换为字母之间的距离,即可求解出最小Q。思路:求解出最高质量为1/Q,即Q最下的时候才是最高质量,即采用最小生成树Prim算法。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>using namespace std;typedef long long ll;const int inf=0x3f3f3f3f;const in
2021-02-27 13:20:01 71
原创 poj2485
题意:要求村庄都连接在一起,并且这个值是最小的。思路:最小生成树Prim算法。#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=505;const int inf=0x3f3f3f3f;int e[maxx][maxx];int n;int vis[maxx];int dist[maxx];int p[maxx];int
2021-02-27 13:13:59 130
原创 poj1258
题意:连接整个农场所需的最小光纤长度之和。思路:采用最小生成树Prim算法。#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=505;const int inf=100000;int e[maxx][maxx];int n;int vis[maxx];int dist[maxx];int p[maxx];int minc
2021-02-27 13:11:27 72
原创 poj3026
Prim求解最小生成树。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<queue>using namespace std;const int maxx=205;const int inf=0x3f3f3f3f;int n,m;int e[maxx][maxx];int cost[maxx][maxx];int d[m
2021-02-27 13:09:06 160
原创 poj1611
题意:首先给出学生0位嫌疑犯,然后该处几组数据,代表这几个学生之间的关系,判断学生之间嫌疑犯的数量。#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=30005;int pre[maxx];int rank[maxx];int a[maxx];int n,k,m;void init(int n){ for(int i=0;i
2021-02-26 21:09:39 140
原创 poj1703
题意:A-代表查询两个人是否属于同一个帮派;D-代表由你决定两个人属于不同的帮派,通过并查集算法求解#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;const int maxx=1e5+10;;int pre[2*maxx];int rank[2*maxx];int a[2*maxx];int n,m;cha
2021-02-26 21:06:24 149
原创 poj2524
题意:给出几组数据,代表学生之间的宗教信仰是一样的,现在要求出最大的学生宗教信仰数。并查集算法:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=5e4+10;int pre[maxx];int rank[maxx];int a[maxx];int n,m;int vis[maxx];int ans;struct nod
2021-02-26 21:01:17 135
原创 poj1182
分为三种动物:A,B,C;规则是A->B,B->C,C->A构成食物链。 #include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=9e5+10;int pre[maxx];int rank[maxx];int a[maxx];int n,m;void init(int n){ for(int i=0;i<=
2021-02-26 20:58:13 85
原创 HDU1213
题意:认识的人可以待在一张卓子上,不认识的人得在另一张卓子上。并查集算法:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx = 1e3 + 10;int pre[maxx];int ranks[maxx];int a[maxx];int n, m;int table;void init(int n) { for (int
2021-02-26 20:57:22 128
原创 HDU1232
题意:认识的人可以待在一张卓子上,不认识的人得在另一张卓子上。并查集算法:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx = 1e3 + 10;int pre[maxx];int ranks[maxx];int a[maxx];int n, m;int table;void init(int n) { for (int
2021-02-26 20:54:19 158
原创 HDU1272
采用并查集求解Kruskal算法:#include<iostream>#include<algorithm>#include<cstring>#include<set>using namespace std;const int maxx = 1e5 + 10;int pre[maxx];int ranks[maxx];int a[maxx];int vis[maxx];int n, m;int flag;struct node {
2021-02-26 20:45:29 154
原创 poj2513
这是在看了大神之后敲出来的 #include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=2e6+55000;char s[maxx],s1[maxx];int cnt;int pre[maxx];int rank[maxx];int a[maxx];int vis[maxx];int indegree[maxx];void ini
2021-02-26 20:41:08 153
原创 poj3624
纯背包问题:找到最大的价值。方法一(Accept) #include<iostream>#include<algorithm>#include<cstring>using namespace std;int w[3403];int val[3403];int c[12881];int main(){ int n,m; while(cin>>n>>m){ memset(w,0,sizeof(w)); memset(val
2021-02-26 20:39:14 225
原创 poj1014
题意:背包问题,转换为二进制方法求解:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;int W,n;int w[7],v[7];int value[2005];int dp[200005];int num[7];struct node{ int value; int cnt;}p[205];int
2021-02-26 20:36:09 198
原创 poj1276
题意:其实就是一个背包问题,我采用的是转换为二进制方法求解:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=1e5+10;int val[maxx];int w[maxx];int v[maxx];int dp[maxx];int n,sum;int main(){ while(cin>>sum>>
2021-02-25 09:33:50 166
原创 poj2184
题意:就是保证TS和TF之和最大的同时,TS,TF要都要大于零。dfs超时。此代码超时:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=1e3+10;int dp[maxx];int n;int cnt;int vis[maxx];struct node{ int x,y;}num[maxx];int cmp(nod
2021-02-25 09:29:07 121
原创 poj3176
动态规划dp;方法一(超时): #include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=500;int d[maxx][maxx];int a[maxx][maxx];int n,m;int dfs(int x,int y){ if(d[x][y]==0){ d[x][y]=a[x][y]+max(dfs(x+1,y),dfs
2021-02-25 09:19:19 133
原创 poj1936
匹配子串:#include<iostream>#include<algorithm>#include<cstring>const long maxn=1e5+5;const int minx=-99999999;using namespace std;char X[maxn],Y[maxn];long n,m;int c[510][510];int main(){ while(cin>>X>>Y){ long n=strl
2021-02-25 09:15:58 141
原创 poj1159
这道题是在看了网上大神的思路自后才想起来的:求最长公共子序列的长度,就是将原串和反串求解最长公共子序列长度c[temp][n]之后,n-c[temp][n],则为要求的值。#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int maxx=5010;char a[maxx],b[maxx];int c[5][maxx];int main(){
2021-02-24 00:20:36 95
原创 poj2031
题意:一行中是球心的坐标和球的半径:就是将球之间链接起来,找到最短的距离,可以采用Dijstra算法求解。但是在求解两个球心之间的距离时,如果球心的距离小于两个球半径之和,则视为零。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<iomanip>using namespace std;const int maxx=1e2+10;
2021-02-24 00:16:42 155
原创 HDU2036
求多边形的面积(模版):#include<iostream>#include<algorithm>#include<cmath>#include<iomanip>using namespace std;const int maxx=105;int n;struct node{ double x,y;}num[maxx];double Area(node*p,int n){ double sum=0; if(n<3)return
2021-02-24 00:11:11 65
原创 HDU2034(set的应用)
就是用A集合减去B集合,A-B等于属于A集合但不属于B集合:#include<iostream>#include<algorithm>#include<cstring>#include<set>using namespace std;const int maxx=105;int n,m;int main(){ while(cin>>n>>m){ set<int>st; if(n==0&&am
2021-02-24 00:10:07 140
原创 HDU2037(会场安排)
#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=105;int n;struct node{ int stime,etime;}num[maxx];int cmp(node a,node b){ if(a.etime==b.etime){ return a.stime<b.stime; } return a.e
2021-02-24 00:06:04 119
原创 poj1654
方法一(超出内存限制)#include<iostream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;typedef long long ll;const int maxx=1e3+5;int n;struct node{ double x,y;}num[maxx];double Area(node*p,int n){ if(n<3
2021-02-24 00:04:45 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人