PAT 甲级 2017年春季

2024-06-19 16:18
文章标签 2017 pat 甲级 春季

本文主要是介绍PAT 甲级 2017年春季,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 PAT 甲级 1124 Raffle for Weibo Followers

#include <bits/stdc++.h>
using namespace std;
string id[1010];
set<string> st;
int main() {int m,n,s;cin>>m>>n>>s;for(int i=0;i<m;++i) cin>>id[i];if(s>m) cout<<"Keep going...\n";else{int now=s-1;while(now<m){if(st.count(id[now])==0){cout<<id[now]<<"\n";st.insert(id[now]);now+=n;}else ++now;}}
}

2 PAT 甲级 1125 Chain the Ropes

#include <bits/stdc++.h>
using namespace std;
multiset<int> st;
int main() {int n,m=0;cin>>n;for(int i=0;i<n;++i){int tmp;cin>>tmp;st.insert(tmp);m=max(m,tmp);}while(st.size()>=2){int a=*st.begin();st.erase(st.begin());int b=*st.begin();st.erase(st.begin());st.insert((a+b)/2);}cout<<min(m,*st.begin());
}

3 PAT 甲级 1126 Eulerian Path

#include <bits/stdc++.h>
using namespace std;
int father[50];
int Find(int x){if(x!=father[x]) father[x]=Find(father[x]);return father[x];
}
void Union(int a,int b){father[Find(a)]=father[Find(b)];
}
int main() {int n,m;cin>>n>>m;vector<int> v(n);for(int i=0;i<n;++i) father[i]=i;for(int i=0;i<m;++i){int x,y;cin>>x>>y;--x,--y;v[x]++,v[y]++;Union(x,y);}// 测试点三判断连通性int odd_ctr=0,block_ctr=0;set<int> block;for(int i=0;i<n;++i) block.insert(Find(i));block_ctr=block.size();for(int i=0;i<n;++i){if(i!=0) cout<<" ";cout<<v[i];if(v[i]%2!=0) ++odd_ctr;}cout<<"\n";if(block_ctr<=1&&odd_ctr==0) cout<<"Eulerian";else if(block_ctr<=1&&odd_ctr==2) cout<<"Semi-Eulerian";else cout<<"Non-Eulerian";
}

4 PAT 甲级 1127 ZigZagging on a Tree

#include <bits/stdc++.h>
using namespace std;int in[50],post[50];
map<int,int> key,val;
int lchild[50],rchild[50],height[50];
int n; vector<int> ans;int Build(int l1,int r1,int l2,int r2){if(l1>r1) return -1;int root=post[r1],mid;for(mid=l2;mid<=r2&&in[mid]!=root;++mid);int len=mid-l2;lchild[root]=Build(l1,l1+len-1,l2,mid-1);rchild[root]=Build(l1+len,r1-1,mid+1,r2);return root;
}
void BFS(int root){height[root]=1;queue<int> q;q.push(root);while(!q.empty()){int now=q.front();q.pop();ans.push_back(now);if(lchild[now]!=-1){height[lchild[now]]=height[now]+1;q.push(lchild[now]);}if(rchild[now]!=-1){height[rchild[now]]=height[now]+1;q.push(rchild[now]);}}
}
void Print(){int left=0,right=0;while(left<n){while(right<n&&height[ans[right]]==height[ans[left]])++right;if(height[ans[left]]%2!=0)reverse(ans.begin()+left,ans.begin()+right);left=right;}for(int i=0;i<n;++i){if(i!=0) cout<<" ";cout<<val[ans[i]];}
}
int main() {cin>>n;for(int i=0;i<n;++i){cin>>val[i];key[val[i]]=i;in[i]=i;}for(int i=0;i<n;++i){int tmp;cin>>tmp;post[i]=key[tmp];}int root=Build(0,n-1,0,n-1);BFS(root);Print();
}

这篇关于PAT 甲级 2017年春季的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075517

相关文章

2017 版本的 WebStorm 永久破解

1.  在IntelliJ官网中下载 最新版本的WebStorm   下载地址:https://www.jetbrains.com/webstorm/download/#section=windows 2. 获取注册码    获取地址:http://idea.lanyus.com/   点击获取注册码,然后将注册码复制,再打开最新版的WebStorm,将注册码粘贴到激活框中就大功告

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

网易2017秋招编程题集合--完全解析

前言 一些大公司的真题里面总有些含金量很高的几个题,网易2017秋招编程题集合里面也有几个题是非常好的,比如说第三题跳石板,第四题黑暗的字符串都是很好的题目。特别是第四题的那种思路之前几乎完全没有接触过,还有第六题最大的奇约数里面还有部分数学思维在里面。 1.回文序列 题目描述:如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如: {1, 2, 1}, {15, 7

Fastjson1.2.24(CVE-2017-18349)分析

前言 Fastjson在1.2.24版本之前存在两条利用链,分别是 JNDI com.sun.rowset.JdbcRowSetImplcom.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl 我们本次也是对这两条链进行分析和过程复现 在fastjson漏洞中,我们往往是寻找一个类,它的构造函数、 getter,setter 方法有问

NLP-生成模型-2017-Transformer(一):Encoder-Decoder模型【非序列化;并行计算】【O(n²·d),n为序列长度,d为维度】【用正余弦函数进行“绝对位置函数式编码”】

《原始论文:Attention Is All You Need》 一、Transformer 概述 在2017年《Attention Is All You Need》论文里第一次提出Transformer之前,常用的序列模型都是基于卷积神经网络或者循环神经网络,表现最好的模型也是基于encoder- decoder框架的基础加上attention机制。 2018年10月,Google发出一篇

NLP-预训练模型-2017:ULMFiT(Universal LM Fine-tuning for Text Classification)【使用AWD-LSTM;模型没有创新;使用多个训练小技巧】

迁移学习在计算机视觉有很大的影响,但现在的NLP中的方法仍然需要特定任务的修改和 从头开始的训练。我们提出通用语言模型微调,一种可以应用NLP任何任务中的迁移学习方法。我们模型在分类任务中都表现得良好,并且在小数据集上的表现优异。 一、ULMFiT (Universal Language Model Fine- tuning)组成步骤: a) General-domain LM pretr

NLP-文本匹配-2017:BiMPM【Bilateral Multi-Perspective Matching for Natural Language Sentences】

NLP-文本匹配-2016:BiMPM【Bilateral Multi-Perspective Matching for Natural Language Sentences】

QIIME2宏基因组学教程--2024年春季莱顿和苏黎世教程

最近在qiime2论坛发现有人发布了qiime2宏基因组的教程,这里分享一下,只是alpha版本,不成熟,大家谨慎了解。qiime2的专用格式对于折腾宏基因组还是有点不妥的,个人观点,但是好在他能让分析标准化,可追溯的话,我觉得还是利大于弊的。 地址在这:宏基因组学与QIIME 2 - 2024年春季莱顿和苏黎世教程 - 宏基因组分析与QIIME2 警告 使用 QIIME 2 进行的宏基因组学分

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确