![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT
文章平均质量分 55
daisyleedq
最近找回了账号,在考虑是否继续维护这个停更5年的账号呢?
展开
-
BFS 层序遍历 晴天模板大放送
层序遍历、BFS原创 2015-03-19 23:39:24 · 422 阅读 · 0 评论 -
PAT A1060 Are They Equal 我的思路不太好,25分得了19分。其实还是有很大纰漏的!
//ac,还是晴神宝典好啊! //注意参数结果带回,因此要用int& e,表示int型的指针 //#include#include//一定注意,要用cin必须用iostream! #includeusing namespace std;int n;//有效数位 //通过写函数来处理科学计数法string deal(string s,int& e){ int k=0;//s的下标原创 2015-03-07 00:56:55 · 908 阅读 · 0 评论 -
根据先序和中序重建二叉树
//当前先序序列区间为[preL,preR],中序序列区间为[inL,inR],返回根节点 node* create(int preL,int preR,int inL,int inR){ if(preL>preR){ return NULL;//先序序列长度小于等于0.直接返回为空 } node* root=new node;//新建一个新的结点,用来存放当前二叉树的根节点 ro原创 2015-03-26 23:16:20 · 323 阅读 · 0 评论 -
PAT A1037 Magic Coupon 记得把0剔除哦
//一下子就ac了,爽!这一题这么 简单居然25分。要注意的就是下面两点 //关键点,把0去除掉 //记得小数倒序排,然后正数,负数,按照下标相同直接相乘累加 #include#include#includeusing namespace std;//需要4个数组bool cmp(int a,int b){ return a>b;}int ncp[100010],ncn[10原创 2015-03-06 15:44:09 · 419 阅读 · 0 评论 -
PAT B1020或者A1070 月饼注意设置看清数据类型
//ac了! //更改了need和kind两个变量名 就好了。。为什么。要注意D也必须是浮点数型,因为月饼库存是浮点型,减的结果也要是浮点型 //更改了结构体中的quantity为float,然后就只剩下一个段错误 //25分的题得了21分,还有4分不知道怎么回事,一个答案错误,一个段错误 //注意每种月饼总金额是浮点数 #include#includeusing namespace原创 2015-03-05 16:15:54 · 644 阅读 · 0 评论 -
PAT A1051 Pop Sequence
//ac,一定注意flag是在每次中读要初始化! //有一点问题 //我一开始的想法是可以另设置一个初始栈,如果当前的输入栈顶和其相同,就pop,并且把初始栈的位置上移,如果不同就压入 //有一个错误就是我没有考虑栈是指点长度的,不是无限任意的 //之前写的删了,这是学习了胡凡的之后,完全自己写的。 #include#include//#define LOCAL using nam原创 2015-03-19 13:38:21 · 544 阅读 · 0 评论 -
PAT A1056 Mice an Rice
//参考晴天。。。 //是否需要开一个队列数组//并不需要,仔细想想队列的特性,先进先出,有利于一整轮的处理后再一整轮的处理 #include#include//#define LOCALusing namespace std;struct Mice{ int weight; int rank;}mice[1010];queue qu;//队列是int,存放序号即可.更不原创 2015-03-19 13:44:06 · 373 阅读 · 0 评论 -
PAT A1084或者B1029 旧键盘
#include#include#include//#define LOCALint main(){ #ifdef LOCAL freopen("A1084data.in","r",stdin); freopen("A1084data.out","w",stdout); #endif char str1[100],str2[100];//不是结构体,也不是特别大的数组,就不需要设原创 2015-03-02 19:01:43 · 324 阅读 · 0 评论 -
PAT A1080 Gradate Admission
//靠自己的力量得到了26分,但是还有4分的坑不知道在哪里//我自己的方法就是变量有点乱,其实可以再加一个结构体school的#include#include#include//#define LOCALusing namespace std;struct Student{ int id;//0~N-1; int ge,gi; int socre_all; int ch原创 2015-03-02 17:21:17 · 439 阅读 · 0 评论 -
PAT A1025 PAT Ranking
//呵,自己写的,一点没看书,至少example的正确通过了 //第一次提交,全部错误,发现是9没有输出。//另外发现排序这种题 ,好像边界值出现不太多 #include#include #includeusing namespace std;//我靠,这次又忘写了!!! //#define LOCALstruct Testee{ char tid[15]; int grade原创 2015-02-27 00:26:48 · 310 阅读 · 0 评论 -
PAT A1012 The Best Rank 极度依靠书的思路再自己做的。。。不过ac一次过了
//ac了 //注意:本题用int表示id,想想好处 //依次顺序是ACME,grade和rank都是 //当想要用for循环对数组排序的时候,请用sort #include#include #include#define LOCALusing namespace std;struct Student{ int id;//之前自己用的char[8],但是这样更加耗内存啊,而且等原创 2015-02-26 19:31:55 · 369 阅读 · 0 评论 -
PAT A1009 Product of Polynomials
//我的版本的改进 //哈哈成功ac了 //思想就是存储第一组输入的,用结构体数组,然后第二组输入的边输入边求出结果,用+=,要注意的是结果数组不需要用结构体了。一是不需要,二是再倒次数输入时只要判断存不存在就行,不需要排序啊之类的#includestruct Poly{ int ex; float coe;};float C[2001]; //0-原创 2015-02-15 16:19:34 · 373 阅读 · 0 评论 -
PAT A1067 不懂!
//我只能说一句,换个马甲,我真的看不懂!但是这是暂时的,我将各个击破 //注意回到本位的不要再动//注意设全局,当前不在本位的最小数,来控制复杂度在线性以内 #include#includeusing namespace std;const int maxn=100010; int pos[maxn];//存放各数字当前所处的位置编号 int main(){ int n,ans原创 2015-03-06 17:51:32 · 614 阅读 · 0 评论 -
PAT A1033 To Fill or Not To Fill 看了书才知道自己的思维不严谨,即使算法大概对,还少了很多
//ac全部正确!果然是晴神宝典 //有时候程序并没有问题,但是编译器就是会报错时候返回为1,说什么无法打开输出文件,这时把所有运行的本程序关闭,再输出文件刷新一下 //我的错点:选出最近的油价低于当前油价的加油站 //算上最后一个加油站,就是从[0,n],所以while(now<n)//每次循环将选出下一个需要到达的加油站. //if(nowTank<need){//尤其注意,这里也是要原创 2015-03-06 15:05:12 · 2199 阅读 · 1 评论 -
PAT A1038 Recover the Smallest Number 算法问题和关于'0'和0的小错误
//ac,改了一次,s[0]!='0',我写成了s[0]!=0 //注意连接起来最小才是最小//+表示字符串的连接 //注意去除前导0总是要考虑字符串长度为0,A1060也是这样的 #include#include#include#includeusing namespace std;const int maxn=10010;string str[maxn];//注意这里str原创 2015-03-07 11:09:31 · 366 阅读 · 0 评论 -
PAT B 锤子剪刀布
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(5),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。原创 2015-07-23 14:05:44 · 752 阅读 · 0 评论 -
PAT A1042 Shuffling Machine
1042. Shuffling Machine (20)Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where em原创 2015-07-22 14:16:30 · 343 阅读 · 0 评论 -
PAT A1090 Highest Price in supply chain
//PAT A1090 ac #include#include#includeusing namespace std;const int maxn=100010;//注意数据大小vector child[maxn];//假设有maxn个结点,每个的孩子是vector可变数组//上面这个用来存放树 int n,root,maxDepth=0,num=0;double cemen原创 2015-05-26 10:57:33 · 439 阅读 · 0 评论 -
PAT A1003 Emergency
//两个测试点错误//c[s]=weight[s]; //fill(G[0],G[0]+MAXN*MAXN,INF);必须写G[0],写G就不对 //PAT A1003#include#include#include//#define LOCALusing namespace std;const int MAXN=510;const int INF=1000000000;原创 2015-05-26 11:25:10 · 405 阅读 · 0 评论 -
PAT A1079
//PAT A1079 ac//特别注意1.00转化成百分数!!这个错误看了半天! //注意定义产品数最好定义为实数 #include#include#include//#define LOCALusing namespace std;const int maxn=100010;int n;double p,r,total=0.0;struct Node{ double data;//如果是孩原创 2015-05-26 10:38:52 · 377 阅读 · 0 评论 -
PAT A1086 Tree Traversals Again
//最后一个测试点答案错误,不知道错在哪里了,4分 //又忘记了using namespace std; //用scanf()根本不需要清空!直接每次scanf()就行了//用string好清空。注意string一定要用cin输入! #include#include#include#include//#include//#define LOCALusing namespace原创 2015-04-06 22:08:02 · 337 阅读 · 0 评论 -
PAT A1020 Tree Traversals 根据先序和中序求层序
#include#include#includeusing namespace std;struct node{ //int *root,*lchild,*rchild; int data; node* lchild; node* rchild; }Node;const int maxn=50;int pre[maxn],in[maxn],post[maxn];//先、中、后原创 2015-03-26 23:27:11 · 428 阅读 · 0 评论 -
二叉查找树 查找修改(void) 插入(&)和创建(*)
//二叉查找树#includestruct node{ int data; node* lchild; node* rchild;}Node;//定义了一个结构名为node的结构体,并且用这个结构体定义了一个结点 //插入,如果查找成的话说明结点已经存在,反过来如果查找失败,那么说明查找是失败的地方一点是结点需要插入的地方 void insert(node* &root,int a原创 2015-03-26 23:20:57 · 344 阅读 · 0 评论 -
arena 2035
#include#include#includeusing namespace std;const int maxn=2010;//总人数const int INF=1000000000;//无穷大map intToString;//编号-姓名map stringToInt;//姓名->编号map Gang;///head->人数int G[maxn][maxn]={0},we原创 2015-04-01 18:40:58 · 395 阅读 · 0 评论 -
PAT A1089或者B1035
//我去,看来这题没有坑点。。编译错误解决就ac了,还真是不适应 //要注意插入排序/*for(int i=1;i<n;i++){ int j=i,temp=a[i]; while(j>0&&a[j-1]>temp){ a[j]=a[j-1]; j--; } a[j]=temp;}//归并排序for(int step=2;step<=n;step*=2){//注意小于等于原创 2015-03-12 19:04:15 · 586 阅读 · 0 评论 -
PAT A1028 List Sorting
//ac了 //上面说的不对,ifelse是可以和switch互换的,我用switch错了的缘故是case '1',其实应该是case '1',因为c是整型 //switch是不能乱用的啊!就老老实实也欧诺个if else .这一题一开始用switch就错了! #include#include#include//#define LOCALusing namespace std;st原创 2015-02-27 10:56:03 · 289 阅读 · 0 评论 -
PAT B1002 写出这个数 字符串数组要用二维数组表示!
//ac,关于字符串数组要用二维数组表示! #include#include //#define LOCALchar str[110];//这个字符串要写成二维数组才行! char map[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int main(){ #ifdef LOCAL freope原创 2015-02-23 23:25:17 · 439 阅读 · 2 评论 -
PAT A1046 Shortest Distances
//唯一的难点就是关于环形存储距离的时候要考虑一下下标设置,别的看思路还是可以看懂的//题意就是给一个N节点的环,问某两个节点之间的最短距离是多少。//首先对N个节点计算出从第1个节点到第i 个节点的距离,之后查询的时候只要相减就能得出答案。 #include//#includeusing namespace std;const int MAXN=100005;int原创 2015-02-10 18:30:40 · 280 阅读 · 0 评论 -
PAT 1065 A+B and C(64bits)
AC版本//书上的想法是先把相加的结果存储到res中,通过判断两数正负和res正负来判断是否溢出//不溢出的话,再用res和c比较。//通过flag(注意是布尔型的)来表示true 和flase,到最后一起输出,比较简便 #includeint main(){ int T,tcase=1; //long long a=0,b=0,c=0; sc原创 2015-02-10 23:05:04 · 302 阅读 · 0 评论 -
PAT A1019 General Palindromic Number
//ac了,自己做的,但是注意末尾无空格的处理只有一行参考了书。另外输出那里可以更简洁,因为注意到无论是还是不是,都要输出进制形式的//break是跳出最内层的循环(while,for)或switch,if什么的跟他无关 //大概题意:一个十进制,按照指定进制转换后的形式是否是回文数 /*是啊,break用于循环语句或分支选择,作用是跳出或者终止循环,例如main(){int i,su原创 2015-02-22 22:01:41 · 371 阅读 · 0 评论 -
PAT B1032 挖掘机技术哪家强
PAT B1032 挖掘机技术哪家强#include#define MAXN 100010//没有0号,遍历枚举最大值时需要注意 //我一开始这里写的是#define maxn 100010,就报错,看来只有大写MAXN才行 //书上的写法是 const int maxn=100010;//#define LOCALint a[MAXN]={0};//是可以定义的同时赋值的 in原创 2015-02-16 23:14:43 · 1115 阅读 · 0 评论 -
PAT A1031 Hello World for U
//ac了,参考了书的代码。自己的还没ac//关于gets(str)和strlen的用法 //把打印内容放到二维数组中,然后全部打印的思想 #include#includeint main(){ char str[100],ans[40][40];//先输入到str中。(80+2)/3 gets(str);//这个表示存放到str中 int N=strlen(str);//获取s原创 2015-02-22 21:02:43 · 309 阅读 · 0 评论 -
PAT A1011 World Cup betting
PAT A1011 World Cup betting#include//ac了,不过我的答案是T T W 37.97。而样例给出的答案是T T W 37.98//设置三个数组,求出每一组max概率分别为a,b,c,同时存放每一组的胜负情况于ans[]的0,1,2中。//然后a*b*c相乘存放在result,元素值是0,则输出w,如果是1,则输出t,如果是2,则输出l //原创 2015-02-16 23:16:16 · 557 阅读 · 0 评论 -
A1006 SignIn and SignOut
//scanf("%s",temp.idnumber);//一开始这里写的是&temp.idnumber //#define LOCAL//后来一直是只有两个测试点可过,到底是为什么呢?//原来是第一个时间是到的时间,是小的,第二个时间是走的时间,是大的,我输入存放的反了 #include//(后发现不需要)貌似要写两个结构体,一个是日期结构体,一个是签到记录结构体//恩,原创 2015-02-21 00:15:35 · 530 阅读 · 0 评论 -
PAT B1028 人口普查 最终ac 一开始总是差一个输出因把年龄和月份比较弄混了
#include//考虑到可能有同年不同月不同日的人,也要进入比较大小,所以用结构体,输入时忽略/字符,结构体又4个子元素组成//一个很重要的点,应该写一个比较日期大小的函数,因为判断边界要用,等下比较谁大谁小还要用。我一开始没想到只想着想一步写一步 //第二次提交能通过编译,但是只有一个1分的测试点是答案正确 #define LOCAL struct Person{原创 2015-02-16 11:22:05 · 780 阅读 · 0 评论 -
PAT B1022 D进制转换
//ac //do while的用法,先做然后再判断是否做下一次//进制转换谨记除基取余法,顺序存入余数,倒序输出 #includeint main(){ int a,b,d; scanf("%d %d %d",&a,&b,&d); int sum=a+b; int ans[31],num=0;//ans中存放D进制的每一位 do{ ans[num++]=sum%d;//余数原创 2015-02-22 21:04:56 · 290 阅读 · 0 评论 -
PAT A1027 Colors in Mars
//ac,参考书解法太简单了了!很棒!学习#include//我自己已经注意到这个每个数都会显示至多两位的转换后形式//但是我没有想到直接输出,不要再用进制转换公式那么麻烦,因为次数已经知道而且就是2个//这个想法特别棒,主要就是如果输出的是字符,但是计算出的是数字,那么久使用数组来表示关系char radix[13]={'0','1','2','3','4','5','6','7','原创 2015-02-22 22:34:12 · 217 阅读 · 0 评论 -
PAT B1018 锤子剪刀布
//严重注意scanf()格式化输入字符的时候不忽略空格,因此为了正确输入数据,必须把空格吸收 //第三个bug:书上结果是532 235 BB 我是235 532 JJ.说明逻辑还是有问题 //第四个bug,无法把数组的最大的元素的下标求出并且转化为字符 #includeint change(char c){ //B是布,C是锤头,J是剪刀.这里是bug3,注释和代码不原创 2015-02-09 20:24:19 · 401 阅读 · 0 评论 -
PAT A1002 A+B for Polynomials
//相对于书本的改进是设置了maxe,这样下一次不需要全部遍历 #includefloat A[1010];int main(){ //一开始我的想法是开两个数组,分别存放输入,然后再比较,这种想法一点也不巧妙,太蠢了 //开1000的数组,输入的时候直接对应指数做下标输入对应的系数值 int m,n,e;//输入次数 float s=0.0原创 2015-02-11 11:31:58 · 364 阅读 · 0 评论 -
PAT A1058 A+B in Hogwarts
//非常重要的是关于进位的处理,这一题是参考书上的的,还要再看#includeint main(){ int a[3],b[3],c[3]; scanf("%d.%d.%d %d.%d.%d",&a[0],&a[1],&a[2],&b[0],&b[1],&b[2]); int carry=0;//进位,不懂 c[2]=(a[2]+b[2])%29;//取得2号位原创 2015-02-22 23:55:13 · 317 阅读 · 0 评论