PAT(甲级)2021年春季考试 7-3 Structure of Max-Heap
考察:建堆,字符串的处理
建堆上,跳了坑,才发现自己之前的方法过于笨拙,详情见两种最大堆建堆方式
字符串处理上,走的弯路更大,但是也因此牢记了两个技巧
1. cin>>str可以用getline(cin,str)取代
2. sscanf和str.c_str练手,可以直接百万军中取上将首级(得到整型)
最后在查找的时候,我用二分查找,可耻啊,居然忘记了二分查找的前提是有序序列。
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<cstring>
#include<iostream>using namespace std;const int maxn = 1010;int n,m;int heap[maxn];void createHeap(){for(int i=1;i<=n;i++){for(int j=i;j>1&&heap[j]>heap[j/2];j/=2){swap(heap[j],heap[j/2]);}}
}int find(int x){for(int i=1;i<=n;i++){if(heap[i]==x)return i; }return -1;
} int main(){scanf("%d %d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&heap[i]);}createHeap();getchar();string s;int a,b;int p,q;for(int i=0;i<m;i++){getline(cin,s);if(s.find("root")!=string::npos){sscanf(s.c_str(),"%d is the root",&a);int p = find(a);if(p==1)printf("1");else printf("0");}if(s.find("siblings")!=string::npos){sscanf(s.c_str(),"%d and %d are siblings",&a,&b);int p = find(a);int q = find(b);if(p/2==q/2)printf("1");else printf("0");}if(s.find("parent")!=string::npos){sscanf(s.c_str(),"%d is the parent of %d",&a,&b);int p = find(a);int q = find(b);if(p==q/2)printf("1");else printf("0");}if(s.find("left")!=string::npos){sscanf(s.c_str(),"%d is the left child of %d",&a,&b);int p = find(a);int q = find(b);if(p==q*2)printf("1");else printf("0");}if(s.find("right")!=string::npos){sscanf(s.c_str(),"%d is the right child of %d",&a,&b);int p = find(a);int q = find(b);if(p==q*2+1)printf("1");else printf("0");}}return 0;
}
PAT(甲级)2021年春季考试 7-3 Structure of Max-Heap相关推荐
- 记PAT 甲级 2021年 秋季考试 经验总结、线上考试细节、考场题解
1.简单回顾 今天下午考完了秋季的考试,最终得了97分,第一题扣了3分,非常遗憾.还有一个多小时的时候就已经97了,回来和第一题的剩余3分周旋到最后,没能发现问题所在,不停考虑各种,我觉得可能是陷在已 ...
- PAT(甲级)2021年春季考试 7-4 Recycling of Shared Bicycles
解题思路: 先用Floyd算法求出全员最短路径矩阵. 然后使用DFS进行遍历,遍历的原则是就近贪心,对于每一个点先遍历离他最近的未访问点. 记录访问点的个数,同时用数组存放已访问点,如果访问点的个数不 ...
- PAT(甲级)2021年春季考试 7-1 Arithmetic Progression of Primes
思路:用筛除法打素数表(与之相对的是枚举加逐个判断)是降低时间复杂度的第一个点,第二个点是运用上数学技巧,给定了等差数列的范围(2-MAX),给定了个数,那么最大的等差是可以求出的.循环的第一层从最大 ...
- 【PAT】2021年冬季考试甲级,摸鱼游记、92分
T1,简单模拟,20/20分 #include<bits/stdc++.h> using namespace std; const int maxn = 1e5+10; int a[max ...
- 【PAT】2021年春季PAT甲级题解
文章目录 1. Arithmetic Progression of Primes (20 分) 题意 解法 暴力+剪枝 2. Lab Access Scheduling (25 分) 题意 解法 排序 ...
- PAT(甲级)2019春季考试(Python实现)
7-1 Sexy Primes 7-1 Sexy Primes 分数 20 作者 陈越 单位 浙江大学Sexy primes are pairs of primes of the form (p, p ...
- 【PAT】2020年春季考试划水准备贴
1.起因 因为之前NOIP凉了,所以算法竞赛没拿到任何加分加好感项,感觉白敲了三年代码 偶然间看到这个而且感觉挺简单,就试试三位一体有没有用,或者暑假实习,再不济反正把乙考了大学在水甲级和顶级凑一凑考 ...
- 【PAT】2020年春季考试乙级题目、答案、摸鱼、游记、93分
T1 对称日 (15分) 7-1 对称日 (15分) 央视新闻发了一条微博,指出 2020 年有个罕见的"对称日",即 2020 年 2 月 2 日,按照 年年年年月月日日 格式组 ...
- PAT甲级线上考试备考
我本人刷了两遍题库 之前考了两次都是四十几分,我认为目前甲级题库已经过时了 (对于有算法基础的同学来说) 前100题没有做的必要 除非是典型算法. DFS 和 回溯是相当重要的考点,如果有时间的话一定 ...
最新文章
- 如何采集Nginx的日志?
- POJ 3694 (tarjan缩点+LCA+并查集)
- hdu2489-DFS+最小生成树
- logback Appender详解
- 一级建造师考试通过了 !
- php使用fopen乱码,php下fopen中文文件名乱码怎么办?
- 好看的论文千篇一律,有趣的Github项目万里挑一!
- elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]
- SOX 音频处理工具基本使用
- Unity 2017 Game Optimization 读书笔记(1)Scripting Strategies Part 1
- iOS调用系统相册、相机 显示中文标题
- 维吉尼亚密码和一次性密码本_密码学中的一次性密码
- 计算机科学考试大纲,计算机科学与技术考试大纲.doc
- java中发红包案例之红包界面不出来的解决方案
- 学java需要哪些js知识点_JS重要知识点
- 6 个步骤,搞定 AI 车牌识别器!(附详细分析)
- 【Ubuntu18.04】Seetaface6人脸识别部署
- FFmpeg图片合成视频,实现放大平移
- OpenCV实现摄像头录像
- spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding)原因分析、解决办法