PAT 甲级 2016年秋季

2024-06-19 16:18
文章标签 pat 2016 甲级 秋季

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

1 PAT 甲级 1116 Come on! Let’s C

#include <bits/stdc++.h>
using namespace std;
map<int,string> mp; 
bool is_prime[10010];
void Init(){fill(is_prime,is_prime+10010,true);is_prime[0]=is_prime[1]=false;for(int i=2;i<10010;++i){if(is_prime[i]){for(int j=i*2;j<10010;j+=i){is_prime[j]=false;}}}
}int main() {Init();int n;cin>>n;for(int i=1;i<=n;++i){int tmp;cin>>tmp;if(i==1) mp[tmp]="Mystery Award";else if(is_prime[i]) mp[tmp]="Minion";else mp[tmp]="Chocolate";}int k;cin>>k;while(k--){int tmp;cin>>tmp;if(mp.count(tmp)==0) printf("%04d: Are you kidding?\n",tmp);else{printf("%04d: %s\n",tmp,mp[tmp].c_str());mp[tmp]="Checked";}}
}

2 PAT 甲级 1117 Eddington Number

#include <bits/stdc++.h>
using namespace std;
int mile[100010];
int main() {int n;cin>>n;for(int i=0;i<n;++i) cin>>mile[i];sort(mile,mile+n,[](int a,int b){return a>b;});int ans=0;while(ans<n&&mile[ans]>ans+1) ++ans;cout<<ans;
}

3 PAT 甲级 1118 Birds in Forest

#include <bits/stdc++.h>
using namespace std;
set<int> birds;
int father[10010];
int Find(int x){if(father[x]!=x) father[x]=Find(father[x]);return father[x];
}
int Union(int a,int b){father[Find(a)]=Find(b);
}
int main() {for(int i=0;i<10010;++i) father[i]=i;int n;cin>>n;for(int i=0;i<n;++i){int k;cin>>k;int b0,bt;for(int i=0;i<k;++i){cin>>bt;if(i==0) b0=bt;else Union(b0,bt);birds.insert(bt);}}set<int> trees;for(auto i:birds){trees.insert(Find(i));}cout<<trees.size()<<" "<<birds.size()<<"\n";int q;cin>>q;while(q--){int x,y;cin>>x>>y;if(Find(x)==Find(y)) cout<<"Yes\n";else cout<<"No\n";}
}

4 PAT 甲级 1119 Pre-and Post-order Traversals

#include <bits/stdc++.h>
using namespace std;
int lchild[50],rchild[50];
int pre[50],post[50];
map<int,int> key,val;
bool multi=false;
void Build(int l1,int r1,int l2,int r2){if(l1==r1){lchild[l1]=rchild[l1]=-1;return;}int root=pre[l1],lc=pre[l1+1],rc=post[r2-1];int idx=l2;while(idx<r2&&post[idx]!=lc) ++idx;if(idx==r2-1){multi=true;lchild[root]=lc;rchild[root]=-1;Build(l1+1,l1+1+idx-l2,l2,idx);}else{lchild[root]=lc;rchild[root]=rc;Build(l1+1,l1+1+idx-l2,l2,idx);Build(l1+1+idx-l2+1,r1,idx+1,r2-1);}
}
vector<int> ans;
void InOrder(int root){if(lchild[root]!=-1) InOrder(lchild[root]);ans.push_back(val[root]);if(rchild[root]!=-1) InOrder(rchild[root]);
}
int main() {int n;cin>>n;for(int i=0;i<n;++i){int tmp;cin>>tmp;key[tmp]=i,val[i]=tmp;pre[i]=i;}for(int i=0;i<n;++i){int tmp;cin>>tmp;post[i]=key[tmp];}Build(0,n-1,0,n-1);if(multi) cout<<"No\n";else cout<<"Yes\n";InOrder(pre[0]);for(int i=0;i<n;++i){if(i!=0) cout<<" ";cout<<ans[i];}cout<<"\n";
}

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



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

相关文章

实践课堂|2016成都站|报名开始啦!

Hi,QingCloud 的小伙伴们,欢迎参加史上最有营养的云知识讲堂。 QingCloud 实践课堂系列开始于 2014 年末,在深圳、上海、广州、成都、杭州、北京六个城市,QingCloud 的研发工程师们同近千名 CIO 、架构师、开发者、运维工程师……分享了 QingCloud 的技术理念、功能特性和使用技巧,还有来自人民网、融云、泰捷视频、杏树林、友好速搭、百姓网、冰点、顺丰速运、洋葱

LeetCode560. 和为 K 的子数组(2024秋季每日一题 12)

给你一个整数数组 n u m s nums nums 和一个整数 k k k ,请你统计并返回 该数组中和为 k k k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = [1,2,3], k = 3 输出:2 提示: 1 < = n u m s . l

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

LeetCode438. 找到字符串中所有字母异位词(2024秋季每日一题 11)

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s = “cbaebabacd”, p = “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。 起始索引等于 6 的子串是

[SWPUCTF 2023 秋季新生赛]Pingpingping

这种是ctf中比较简单的一类题,主要解法基本上也就那些形式。 这道题我给它提出来主要是涉及了一下比较零散的知识点,觉得想要跟大家分享一下。 <?phphighlight_file(__FILE__);error_reporting(0);$_ping = $_GET['Ping_ip.exe'];if(isset($_ping)){system("ping -c 3 ".$_ping)

2016/9/11--一周的工作总结

自从九月一号开始上班到现在,现在总结一下自己的问题: 第一个问题:自己没有认真的解决问题! 刚去的第二天,施工给我了一张图纸,让我对电路图进行分析,我刚开始查了一些资料,也看了看但是一直不会做,后边就放一边了也不管了,自己一直说实习学不到东西,但是真正的问题来的时候,是否全力以赴的解决问题?这个问题你真的尽全力去解决了吗?回答是:不,我没有。我还不如一个本科的学生,我一直在逃避,一直没有

日记 01/27/2016.

有机会再看看这个: https://www.zhihu.com/question/27578379 想拿高package,多去拿几个offer再来谈,特别是hot startup的package,往往拿来要挟大公司的HR很好用。 最近在学习Angular JS,自己一定要坚持下来。然后把前端的知识补上。 打算Aug的时候,然后把Princeton的算法课上了,重新充电,然后把

2016年末程序员应该知道的基本架构思想

http://www.toutiao.com/i6352598153379709442/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=6176041275&utm_medium=toutiao_ios

高教社杯数模竞赛特辑论文篇-2016年C题:电池剩余放电时间预测(附MATLAB代码实现)

目录 摘要 一、 问题重述 1.1 已知铅酸电池的基本情况与要求 1.2 需要解决的问题 1.2.1 问题 1 需要解决以下三点: 1.2.2 需要解决以下三点: 1.2.3 问题3需要解决: 二、问题分析 2.1 问题1 2.2 问题 2 2.3 问题3 三、模型假设与约定 四、符号说明及名词定义 五、模型的建立与求解 5.1 问题一的分析与求解 5.2 问题二的分析与求解 5.3 问题三的分