A Good In C
纯模拟题,用string数组读入数据,注意单词数量的判断

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
string a[][];
int main () {
for (int i=;i<=;i++) {
for (int j=;j<=;j++)
cin>>a[i][j];
}
string t;
getchar ();
getline (cin,t);
string s[];
int top=;
for (int i=;i<t.length();i++) {
if (t[i]>='A'&&t[i]<='Z') s[top]+=t[i];
else if (t[i-]>='A'&&t[i-]<='Z') top++;
}
if (top!=&&!(t[t.length()-]>='A'&&t[t.length()-]<='Z')) top--;
for (int k=;k<=top;k++) {
for (int j=;j<=;j++) {
for (int i=;i<s[k].length();i++) {
if (i!=) printf (" ");
cout<<a[s[k][i]-'A'+][j];
}
cout<<endl;
}
//for (int j=1;j<=7;j++)
if (k!=top) printf ("\n");
}
//printf ("\n");
return ;
}

B Block Reversing
链表常规题,用结构体静态建立链表,有两个注意点:1、给出的结点里会有无关结点。2、链表里的元素个数能不能整除k要分开判断。

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
struct node {
int address;
int data;
int next;
}Node[maxn];
int main () {
int head,N,K;
scanf ("%d %d %d",&head,&N,&K);
int address,data,next;
for (int i=;i<N;i++) {
scanf ("%05d %d %05d",&address,&data,&next);
Node[address].address=address;
Node[address].data=data;
Node[address].next=next;
}
vector<node> vi;
while (head!=-) {
vi.push_back(Node[head]);
head=Node[head].next;
}
vector<int> vp[];
if (vi.size()%K!=) {
printf ("%05d %d ",vi[vi.size()/K*K].address,vi[vi.size()/K*K].data);
for (int i=vi.size()/K*K+;i<vi.size();i++)
printf ("%05d\n%05d %d ",vi[i].address,vi[i].address,vi[i].data);
for (int i=vi.size()/K;i>;i--) {
for (int j=(i-)*K;j<i*K;j++)
printf ("%05d\n%05d %d ",vi[j].address,vi[j].address,vi[j].data);
}
printf ("-1");
}
else {
printf ("%05d %d ",vi[vi.size()-K].address,vi[vi.size()-K].data);
for (int i=vi.size()/K;i>;i--) {
int flag=;
if (i==vi.size()/K) flag=;
for (int j=(i-)*K+flag;j<i*K;j++)
printf ("%05d\n%05d %d ",vi[j].address,vi[j].address,vi[j].data);
}
printf ("-1");
}
return ;
}

C Summit
个人认为全场最简单的一题,也是第一道ac的题目,就是图论,根据题意暴力做即可~

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
const int inf=1e9;
int g[maxn][maxn];
int N,M,K,L,a[maxn];
void init () {
for (int i=;i<=N;i++)
for (int j=;j<=N;j++)
g[i][j]=inf;
}
int main () {
scanf ("%d %d",&N,&M);
int u,v;
init ();
for (int i=;i<M;i++) {
scanf ("%d %d",&u,&v);
g[u][v]=g[v][u]=;
}
scanf ("%d",&K);
for (int i=;i<K;i++) {
int flag1=,flag2=,hash1[maxn]={};
scanf ("%d",&L);
for (int j=;j<L;j++) {
scanf ("%d",&a[j]);
hash1[a[j]]=;
}
for (int j=;j<L;j++) {
for (int k=j+;k<L;k++) {
if (g[a[j]][a[k]]==inf) {
flag1=;break;
}
}
if (flag1==) break;
}
if (flag1==) {
printf ("Area %d needs help.\n",i+);
continue;
}
int u;
for (int j=;j<=N;j++) {
if (hash1[j]==) {
int flag3=;
for (int k=;k<L;k++)
if (g[a[k]][j]==inf) flag3++;
if (flag3==) {
u=j;
flag2=;
break;
}
}
if (flag2==) break;
}
if (flag1==&&flag2==) {
printf ("Area %d may invite more people, such as %d.\n",i+,u);
}
else if (flag1==&&flag2==) {
printf ("Area %d is OK.\n",i+);
}
}
return ;
}

D Cartesian Tree
一开始以为是堆的算法,写了很久,其实并不是。一颗树,结点数据符合小顶堆的规则,给出它的中序遍历,要求输出层序。解决方法是先找出给定序列里最小的点作为根结点,再以根节点为标志,找根节点左边和右边各自最小的结点,作为根节点的左右子树,递归处理。

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
struct node {
int data;
node * left;
node * right;
};
int a[maxn];
node * create (int inL,int inR,int inRoot) {
if (inRoot==1e9) return NULL;
node * root=new node;
root->data=a[inRoot];
int inLeft=1e9,inRight=1e9;
int min=1e9;
for (int i=inL;i<inRoot;i++) {
if (a[i]<min) {
min=a[i];
inLeft=i;
}
}
root->left=create (inL,inRoot-,inLeft);
min=1e9;
for (int i=inRoot+;i<=inR;i++) {
if (a[i]<min) {
min=a[i];
inRight=i;
}
}
root->right=create (inRoot+,inR,inRight);
return root;
}
void bfs (node * root) {
queue<node *> q;
q.push(root);
while (!q.empty()) {
node * now=q.front();
q.pop();
if (now!=root) printf (" ");
printf ("%d",now->data);
if (now->left) q.push(now->left);
if (now->right) q.push(now->right);
}
}
int main () {
int N;
scanf ("%d",&N);
for (int i=;i<=N;i++) {
scanf ("%d",&a[i]);
}
int min=1e9,inRoot=-;
for (int i=;i<=N;i++) {
if (a[i]<min) {
min=a[i];
inRoot=i;
}
}
//printf ("%d\n",inRoot);
node * root=create (,N,inRoot);
bfs (root);
return ;
}

PAT甲级2019冬季考试题解的更多相关文章

  1. PAT甲级 链表题_C++题解

    链表处理 PAT (Advanced Level) Practice 链表题 目录 <算法笔记> 重点摘要:静态链表 1032 Sharing (25) 1052 Linked List ...

  2. PAT甲级 模拟题_C++题解

    模拟题 PAT (Advanced Level) Practice 模拟题 目录 1008 Elevator (20) 1042 Shuffling Machine (20) 1046 Shortes ...

  3. PAT甲级 排序题_C++题解

    排序题 PAT (Advanced Level) Practice 排序题 目录 <算法笔记> 6.9.6 sort()用法 <算法笔记> 4.1 排序题步骤 1012 The ...

  4. PAT甲级满分攻略|记一次考试经历

    一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很 ...

  5. 2019秋季PAT甲级_备考总结

    2019 秋季 PAT 甲级 备考总结 在 2019/9/8 的 PAT 甲级考试中拿到了满分,考试题目的C++题解记录在这里,此处对备考过程和考试情况做一个总结.如果我的方法能帮助到碰巧点进来的有缘 ...

  6. PAT-2019年冬季考试-乙级(题解)

    很荣幸这次能够参加乙级考试,和大佬们同台竞技了一次,这篇博客,进行介绍这次2019冬季的乙级考试题解. 7-1 2019数列 (15分) 把 2019 各个数位上的数字 2.0.1.9 作为一个数列的 ...

  7. PAT甲级题解(慢慢刷中)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  8. PAT甲级考前整理(2019年3月备考)之三,持续更新中.....

    PAT甲级考前整理一:https://www.cnblogs.com/jlyg/p/7525244.html,主要讲了131题的易错题及坑点 PAT甲级考前整理二:https://www.cnblog ...

  9. PAT甲级考前整理(2019年3月备考)之一

       转载请注明出处:https://www.cnblogs.com/jlyg/p/7525244.html 终于在考前,刷完PAT甲级131道题目,不容易!!!每天沉迷在刷题之中而不能超脱,也是一种 ...

随机推荐

  1. caffe_ocr开源项目学习笔记

    本机配置cuda8.0使用的cudnn是下面要说的重点,vs2015,win10,1080Ti 下载了开源项目:https://github.com/senlinuc/caffe_ocr 编译的时候报 ...

  2. Java - JVM - 类的生命周期

    概述 简述 JVM 里 类的生命周期 上次写了 30%, 居然丢了 难受, 又要重新写 类的生命周期 加载 使用 卸载 1. 加载 概述 类型的加载 大体流程 装载 连接 验证 准备 解析(可选的) ...

  3. 【游戏体验】Infiltraing the Airship(火柴人潜入飞船)

    这款作品的游戏性非常高 而且很多地方都是玩梗 不乏趣味和幽默 推荐试玩 个人测评 游戏性 10/10 音乐 9/10 剧情 8/10 总评 27/30

  4. python中写入txt文件需要换行,以及\r 和\n

    在Python中,用open()函数打开一个txt文件,写入一行数据之后需要一个换行 如果直接用 f.write(’\n’)只会在后面打印一个字符串’\n’,而不是换行’需要用 f.write(’\r ...

  5. Java Web实现使用浏览器从服务器下载文件(后台)

    Java Web实现 使用浏览器从服务器下载文件. 下面实现两种情况的下载,需求如下: 需求(一):1.用户在页面填写表单. 2.填写完成后,选择下载,将表单内容发往后台. 3.后台根据内容生产一个文 ...

  6. Shiro&Jwt验证

    此篇基于 SpringBoot 整合 Shiro & Jwt 进行鉴权 相关代码编写与解析 首先我们创建 JwtFilter 类 继承自 BasicHttpAuthenticationFilt ...

  7. esp8266(wifi)模块调试记录

    1.要注意usb转TTL接口上的晶振 如果晶振是12Mhz,可能就收不到反馈,因为12Mhz波特率会有误差.

  8. [C/C++] 静态变量赋值问题 undefined reference to

    刚才在写代码的时候 用到了一个静态变量 然后在别人地方直接使用的时候 也就是 NetWork::Flag = 0; 像是这样使用的时候一直提示 undefined reference to 各种检查之 ...

  9. 解决<%@taglib prefix="s" uri="/struts-tags"%>显示找不到

    问题: jsp中使用<%@taglib prefix="s" uri="/struts-tags"%>显示找不到 解决方法: 在web.xml中插入 ...

  10. Visual Studio调试Tersseract

    在Visual Studio中打开Tesseract项目,然后项目-->属性-->调试-->命令变量: 比如在debug目录下有一张 test.jpg的图片,里面有中文需要识别,命令 ...