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. 题解【Codeforces1186A】 Vus the Cossack and a Contest

    这题是入门难度的题目吧-- 根据题意可以得出,只有当\(m\)和\(k\)都大于等于\(n\)时,\(Vus\)才可以实现他的计划. 因此,我们不难得出以下\(AC\)代码: #include < ...

  2. hibernate和mybatis出现配置文件xml的文件报错Multiple annotations found at this line(转)

    hibernate中的xml配置文件Multiple annotations found at this line,出现这个红叉报错,直接是把 <?xml version="1.0&q ...

  3. 使用ltp4j碰到Can't find dependent libraries报错信息的问题解决

    项目中使用了哈工大的自然语言处理模块ltp4j,使用idea工具集成到项目中之后,在本机运行没有问题,一切正常.打成war包,部署到服务器上,使用的时候报错Can't find dependent l ...

  4. 离线安装paramiko以及pysftp linux,windows

    离线安装 paramiko python37 pip download -d ./dependency -r requirements.txt pip install --no-index --ign ...

  5. plotly线上绘图和离线绘图的区别

    1.线上绘图 import plotly import plotly.plotly as py import plotly.graph_objs as go plotly.tools.set_cred ...

  6. Django - 在settings配置终端打印SQL语句

    LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console': { 'level': 'DE ...

  7. 混淆-SmartAssembly

    SmartAssembly 7 documentation:https://documentation.red-gate.com/sa SmartAssembly7.2版本下载链接: https:// ...

  8. static关键字 weak关键字

    1.static关键字 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart){ ...} 在函数前面加了一个stati ...

  9. netty(五) channel

    问题 channel 是如何处理发送一半中断后继续重发的 channel 具体作用是什么 概述 这一节我们将介绍 Channel 和内部接口 Unsafe .其中Unsafe 是内部接口,聚合在Cha ...

  10. django之反向解析和命名空间

    背景:当我们页面中存放的请求路径与url文件中的url一致时,如果url改了是不是所有的请求路径都要跟着改?显然不现实,这里我们就要用到反向解析. 如下图所示,输入url后会跳转到登录页面,输入用户名 ...