PAT-2019年秋季考试-甲级
7-1 Forever (20 分)
#include <bits/stdc++.h>
using namespace std;
int N,K,m,number[10];
multimap<int,int> mp;
int sum_digit(int num) {
int sum=0;
while(num/10) {
sum+=num%10;
num/=10;
}
sum+=num;
return sum;
}
int gcd(int a, int b) {
if(a%b==0) {
return b;
} else return gcd(b,a%b);
}
bool isprime(int num) {
if(num<=2) return false;
int temp=sqrt(num);
for(int i=2;i<=temp;++i) {
if(!(num%temp)) return false;
}
return true;
}
void dfs(int index, int sum) {
if(index==0) {
if(sum==0) {
int A=0;
for(int i=K-1;i>=1;--i) {
A=A*10+number[i];
}
A=(A*10+9);
int n=sum_digit(A+1);
int gcdnum=gcd(n,m);
if(isprime(gcdnum)) {
mp.insert(make_pair(n,A));
}
}
return;
}
if(index==K-1) {
for(int i=1;i<=9;++i) {
if(sum-i>=0) {
number[index]=i;
dfs(index-1,sum-i);
} else return;
}
return;
}
for(int i=0;i<=9;++i) {
if(sum-i>=0) {
number[index]=i;
dfs(index-1,sum-i);
} else return;
}
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
//freopen("in.txt","r",stdin);
cin>>N;
for(int i=1;i<=N;++i) {
mp.clear();
cin>>K>>m;
dfs(K-1,m-9);
cout<<"Case "<<i<<endl;
if(mp.size()==0) {
cout<<"No Solution"<<endl;
} else {
for(auto it=mp.begin();it!=mp.end();it++) {
cout<<it->first<<" "<<it->second<<endl;
}
}
}
return 0;
}

7-2 Merging Linked Lists (25 分)
#include <bits/stdc++.h>
using namespace std;
struct node {
int add,data,next;
};
unordered_map<int,node> mp;
vector<node> a,b,c;
void merge(vector<node> l1, vector<node> l2) {
int lena=l1.size(),lenb=l2.size(),index=0,indexa=0,indexb=0;
while(indexa<lena||indexb<lenb) {
if(indexa<lena) {
c.push_back(l1[indexa]);
indexa++;
}
if(indexa<lena) {
c.push_back(l1[indexa]);
indexa++;
}
if(indexb<lenb) {
c.push_back(l2[lenb-1-indexb]);
indexb++;
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int addl1,addl2,n;
cin>>addl1>>addl2>>n;
int add,data,next;
node temp;
for(int i=0; i<n; ++i) {
cin>>add>>data>>next;
temp.add=add;
temp.data=data;
temp.next=next;
mp.insert(make_pair(add,temp));
}
add=addl1;
while(add!=-1) {
temp=mp.find(add)->second;
a.push_back(temp);
add=temp.next;
}
add=addl2;
while(add!=-1) {
temp=mp.find(add)->second;
b.push_back(temp);
add=temp.next;
}
int lena=a.size(),lenb=b.size();
if(lena>lenb) merge(a,b);
else merge(b,a);
int lenc=c.size();
for(int i=0; i<lenc-1; ++i) printf("%05d %d %05d\n",c[i].add,c[i].data,c[i+1].add);
printf("%05d %d -1\n",c[lenc-1].add,c[lenc-1].data);
return 0;
}

7-3 Postfix Expression (25 分)
#include <bits/stdc++.h>
using namespace std;
struct node {
string data;
int pre,l,r;
};
node ans[25];
void dfs(int root) {
cout<<"(";
if(ans[root].l!=-1&&ans[root].r!=-1) {
dfs(ans[root].l);
dfs(ans[root].r);
cout<<ans[root].data;
} else if(ans[root].l==-1&&ans[root].r==-1) {
cout<<ans[root].data;
} else if(ans[root].l==-1&&ans[root].r!=-1) {
cout<<ans[root].data;
dfs(ans[root].r);
}
cout<<")";
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
//freopen("in.txt","r",stdin);
int N;
cin>>N;
for(int i=1;i<=N;++i) {
cin>>ans[i].data>>ans[i].l>>ans[i].r;
ans[i].pre=i;
}
for(int i=1;i<=N;++i) {
if(ans[i].l!=-1) ans[ans[i].l].pre=i;
if(ans[i].r!=-1) ans[ans[i].r].pre=i;
}
int root;
for(int i=1;i<=N;++i) {
if(ans[i].pre==i) {
root=i;
break;
}
}
dfs(root);
return 0;
}

7-4 Dijkstra Sequence (30 分)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
const int maxm = 1e5+5;
int g[maxn][maxn],ans[maxn],dis[maxn];
bool vis[maxn];
bool dij(int s, int n) {
fill(dis,dis+maxn,INT_MAX);
dis[s]=0;
fill(vis,vis+maxn,false);
for(int i=1;i<=n;++i) {
int v=-1,temp=INT_MAX;
for(int u=1;u<=n;++u) {
if(dis[u]<temp&&vis[u]==false) {
temp=dis[u];
v=u;
}
}
if(v==-1) return false;
if(dis[ans[i]]!=dis[v]||vis[ans[i]]==true) return false;
v=ans[i];
vis[v]=true;
for(int u=1;u<=n;++u) {
if((g[v][u]!=INT_MAX)&&(vis[u]==false)&&(dis[v]+g[v][u]<dis[u])) {
dis[u]=dis[v]+g[v][u];
}
}
}
return true;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
//freopen("in.txt","r",stdin);
int nv,ne,k;
cin>>nv>>ne;
int u,v,w;
fill(g[0],g[0]+maxn*maxn,INT_MAX);
for(int i=1;i<=ne;++i) {
cin>>u>>v>>w;
g[u][v]=g[v][u]=w;
}
cin>>k;
while(k--) {
for(int i=1;i<=nv;++i) {
cin>>ans[i];
}
if(dij(ans[1],nv)==true) {
cout<<"Yes"<<endl;
} else {
cout<<"No"<<endl;
}
}
return 0;
}

PAT-2019年秋季考试-甲级的更多相关文章
- PAT(甲级)2019年秋季考试
第一题用搜索,超时了,待补 更新第一题思路 dfs + 剪枝,首先确定 n的最后一位数字肯定是9,为什么呢,因为 任意两个相邻的数肯定互为质数(gcd=1),所以 n 的末尾肯定是9,这样n+1产生的 ...
- PAT(甲级)2017年秋季考试
PAT(甲级)2017年秋季考试 D题红黑树待补21/30 大佬的代码,看着想哭,这才是艺术啊 A Cut Integer 模拟题 #include<bits/stdc++.h> usin ...
- 【LOJ】#3030. 「JOISC 2019 Day1」考试
LOJ#3030. 「JOISC 2019 Day1」考试 看起来求一个奇怪图形(两条和坐标轴平行的线被切掉了一个角)内包括的点个数 too naive! 首先熟练的转化求不被这个图形包含的个数 -- ...
- PAT(甲级)2019年春季考试
7-1 Sexy Primes 判断素数 一个点没过17/20分 错因:输出i-6写成了输出i,当时写的很乱,可以参考其他人的写法 #include<bits/stdc++.h> usin ...
- PAT(乙级)2020年秋季考试
比赛链接:https://pintia.cn/market/item/1302816969611366400 7-1 多二了一点 (15分) 题解 模拟. 代码 #include <bits/s ...
- PAT 2019 秋
考试的还行.不过略微有点遗憾,但是没想到第一题会直接上排序和dfs,感觉这次的题目难度好像是倒着的一样.哈哈哈哈. 第一题实在是搞崩心态,这道题给我的感觉是,可以做,但事实上总是差点啥. 第二题,第三 ...
- 2019.3.28&2019.3.30考试
2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...
- 2019.3.18考试&2019.3.19考试&2019.3.21考试
2019.3.18 C O D E T1 树上直接贪心,环上for一遍贪心 哇说的简单,码了将近一下午终于码出来了 感觉自己码力/写题策略太糟糕了,先是搞了一个细节太多的写法最后不得不弃疗了,然后第二 ...
- OCM 12c | OCM 12c Update | OCM 11g (Retiring Dec 31, 2019) | OCM 11g考试延期至2020.04.30
OCM 全球考试安排时间表 View A Worldwide OCM Schedule Oracle Database 12c Certified Master Exam (OCM) OCM 12c ...
随机推荐
- Jenkins 结合 ANT 发送测试报告
全局变量配置 点击 ManageJenkins进入Jenkins 管理 点击 Global Tool Configuration 进入全局变量配置 配置 Ant ,Name 自己定义一个比较好理解的名 ...
- .NET进阶篇06-async异步、thread多线程1
知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 异步多线程挺大一块内容,既想拆开慢慢学,又想一股脑全倒出.纠结再三,还是拆开吃透,也不至于篇幅过长,劝退许多人 本篇先做一个概述,列明一些基本概 ...
- Spring Boot 2.x实战之StateMachine
本文首发于个人网站:Spring Boot 2.x实战之StateMachine Spring StateMachine是一个状态机框架,在Spring框架项目中,开发者可以通过简单的配置就能获得一个 ...
- 详解SpringBoot应用跨域访问解决方案
一.什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访 ...
- m96-97 lsc nc赛
这一次 lsc 再一次一道题都没AC,看来lsc已经凉了! 出了分,旁边的_LH大喊了一声 “woc,lsc,你真是太垃圾!”...........“好吧!” 我确实很垃圾!(大佬这次都没考,所以我更 ...
- VMware下Centos7-Minimal上网配置
1.Centos7下载 http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso 2.推荐 ...
- java多线程与线程并发四:线程范围内的共享数据
当多个线程操作同一个共有数据时,一个线程对共有数据的改变会影响到另一个线程.比如下面这个例子:两个线程调用同一个对象的的方法,一个线程的执行结果会影响另一个线程. package com.sky.th ...
- Apache安装问题:APR not found
资料来源:Apache遇到的问题:APR not found 安装apache时出现arp错误问题 按照以上文章试验之后整理如下: #./configure --prefix……检查编辑环境时出现: ...
- 怎么把CAT客户端的RootMessageId记录到每条日志中?
什么是RootMessageId? 为了理解RootMessageId先简单介绍一下CAT的数据结构设计.CAT客户端会将所有消息都封装为一个完整的消息树(MessageTree),消息树可能包括Tr ...
- 万恶之源-与python的初识
1.计算机基础知识 1.cpu: 人类的大脑 运算和处理问题 2.内存: 临时存储数据 断电就消失了 3.硬盘: 永久 存储数据 4.操作系统:是一个软件 控制每个硬件之间数据交互 2 ...