- 博客(11)
- 收藏
- 关注
原创 【PAT】甲级A1011
#include <cstdio>int main(){ double a[3] = {0}; char c[3] = {'W', 'T', 'L'}; for(int i=0;i<3;i++){ double temp; int cc = 0; double maxn = -1.0; ...
2020-03-29 15:41:47 145
原创 【PAT】甲级A1010(还差一个点)
第7个测试点未通过,要用二分法做。strcpy函数用于交换两个char类型数组,头函数是以及namespacestrlen函数返回char数组有效元素的个数,不是容量大小【24分代码】#include <iostream>#include <cstdio>#include <string>using namespace std; //使用s...
2020-03-29 15:24:06 200
原创 【PAT】甲级A1009
#include <cstdio>#include <math.h>const int N = 1100;const double eps = 1e-8;#define Equ(a, b) ((fabs((a) - (b)))>(eps))int main(){ double a[N] = {0}; //double类型要设默认值 do...
2020-03-22 12:46:46 149
原创 【PAT】甲级A1008
#include <cstdio>int main(){ int n; scanf("%d", &n); int sum = 0; int now = 0; for(int i=0;i<n;i++){ int temp; scanf("%d", &temp); if(te...
2020-03-21 11:17:13 100
原创 【PAT】甲级A1007
#include <cstdio>int main(){ int all[20000]; int n; scanf("%d", &n); int flag = 0; for(int i=0;i<n;i++){ scanf("%d", &all[i]); if(all[i]>=0...
2020-03-21 11:02:52 90
原创 【PAT】甲级A1006
【解题思路】用结构体储存数据,用sort和cmp函数进行排序,找出最早和最晚的人。【注意点】1.codeblock报错:二进制">>"没有找到接受"找到"接受"std:string"类型的右操作数的运算符解决办法是头文件上加一行:#include <string>【具体代码】#include <iostream>#include <c...
2020-03-12 10:18:57 122
原创 【PAT】甲级A1005
【注意点】1.用cin输入字符串,scanf老是有问题2.对于string s,要输出第n个字符,可以直接用s[n],注意此时类型为char#include <iostream>#include <cstdio>#include <string>using namespace std;int main(){ string s; ...
2020-03-08 19:08:05 117
原创 【PAT】甲级A1004
【解题思路】二叉树的遍历。两个难点,第一,题意是一般树,所以用vector建立一个G[N]数组;第二,用DFS遍历整棵树,记录每个结点所在深度。【解题过程】起初想过用简单的一维数组建立这棵树,带来的问题是无法通过父结点追寻子结点,那么就无法记录每个子结点的深度。再结合本题是一般类型的树,所以很容易想到用链表来做,看了《算法笔记》才想起可以用vector去开一个G[N],每个数组元素都是一...
2020-03-08 16:49:30 131
原创 【PAT】甲级A1003
【解题思路】Dijkstra算法的基础上要统计相同最短路径的条数,并且如果有多条相同边权的最短路径,输出具有最大点权的数目。【解题过程】首先,先回顾Dijkstra算法:1.对于有权图,先确定起点start,创建一个数组dist[顶点个数],先把dist[start]设为0,其余各点为无穷大。2.找出dist中最小的蓝点x,即离起点最近的点,把该点变白,即访问过该点(vist[x] =...
2020-03-07 19:55:54 196
原创 【PAT】甲级A1002
#include <cstdio>int main(){ double a[1111] = {0}; double b[1111] = {0}; double c[1111] = {0}; int k; scanf("%d", &k); for(int j=0;j<k;j++){ int c; ...
2020-02-27 21:04:56 184
原创 【PAT】甲级A1001
本质上是两个数相加然后按照一定格式打印出来,从个位数开始倒着数3位然后逗号隔开,注意题目的范围可能到7位数,所以最多出现两次逗号。我的思路是先把两个数相加,然后判断正负,如果负的,先打印出负号,然后把整个数取相反数,剩下的与正数处理相同。然后这个数判断需要1次还是2次逗号,如果是大于999999,就是需要两次逗号,然后先输出第7位数,然后对低位的6位数取余,然后取高位的3位数,再取余...
2020-02-22 15:31:13 88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人