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年秋季考试-甲级的更多相关文章

  1. PAT(甲级)2019年秋季考试

    第一题用搜索,超时了,待补 更新第一题思路 dfs + 剪枝,首先确定 n的最后一位数字肯定是9,为什么呢,因为 任意两个相邻的数肯定互为质数(gcd=1),所以 n 的末尾肯定是9,这样n+1产生的 ...

  2. PAT(甲级)2017年秋季考试

    PAT(甲级)2017年秋季考试 D题红黑树待补21/30 大佬的代码,看着想哭,这才是艺术啊 A Cut Integer 模拟题 #include<bits/stdc++.h> usin ...

  3. 【LOJ】#3030. 「JOISC 2019 Day1」考试

    LOJ#3030. 「JOISC 2019 Day1」考试 看起来求一个奇怪图形(两条和坐标轴平行的线被切掉了一个角)内包括的点个数 too naive! 首先熟练的转化求不被这个图形包含的个数 -- ...

  4. PAT(甲级)2019年春季考试

    7-1 Sexy Primes 判断素数 一个点没过17/20分 错因:输出i-6写成了输出i,当时写的很乱,可以参考其他人的写法 #include<bits/stdc++.h> usin ...

  5. PAT(乙级)2020年秋季考试

    比赛链接:https://pintia.cn/market/item/1302816969611366400 7-1 多二了一点 (15分) 题解 模拟. 代码 #include <bits/s ...

  6. PAT 2019 秋

    考试的还行.不过略微有点遗憾,但是没想到第一题会直接上排序和dfs,感觉这次的题目难度好像是倒着的一样.哈哈哈哈. 第一题实在是搞崩心态,这道题给我的感觉是,可以做,但事实上总是差点啥. 第二题,第三 ...

  7. 2019.3.28&2019.3.30考试

    2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...

  8. 2019.3.18考试&2019.3.19考试&2019.3.21考试

    2019.3.18 C O D E T1 树上直接贪心,环上for一遍贪心 哇说的简单,码了将近一下午终于码出来了 感觉自己码力/写题策略太糟糕了,先是搞了一个细节太多的写法最后不得不弃疗了,然后第二 ...

  9. 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 ...

随机推荐

  1. python的位置参数、关键字参数、收集参数,关键字收集参数混合调用问题

    参数混合调用顺序用法: 函数中参数顺序为:普通参数,收集参数,关键字参数,关键字收集参数,其顺序不能颠倒,颠倒会报错. 普通参数.关键字参数可以有n个,对量没有具体要求,收集参数和关键字收集参数要么没 ...

  2. python正则小结

    注意pattern字符串前要加r    原始字符串 元字符 .                匹配除换行的任意字符 ^            匹配开头 $            匹配结尾 表示重复   ...

  3. scss新手使用指南

    还在用死的css写样式吗?那可太麻烦了,各种长串选择器不说,还有各种继承权重有时候还有可能不生效 我的小程序项目也结束了,是时候总结一下scss语法了,毕竟用起来更加方便而且还能精简一点代码,好处多多 ...

  4. 零基础小白入门IT开发指南

    先自我介绍以下,本人是一枚刚毕业不到两年的某一线城市的程序员,本科阶段专业是计算机科学与技术.从大四开始出去实习到现在的编码经验也有快2年半了,两年半的时间包括实习在内任职过有4家公司,包括一家互联网 ...

  5. 使用Typescript重构axios(一)——写在最前面

    0.系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三)- ...

  6. P4568 [JLOI2011]飞行路线 分层图

    题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为00到n-1n−1,一共有mm种航线,每种航线连接两个城市,并且 ...

  7. 学习笔记 : python 文件操作

    1.如果文件路径带有   \ 比如  open('c:\python\test.txt') 会报:SyntaxError: (unicode error) 'unicodeescape' codec ...

  8. java应用性能调优之详解System的gc垃圾回收方法

    一.什么是System.gc()? System.gc()是用Java,C#和许多其他流行的高级编程语言提供的API.当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用的对象).名词解释:GC, ...

  9. 【Leetcode 做题学算法周刊】第三期

    首发于微信公众号<前端成长记>,写于 2019.11.13 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 35 ...

  10. JavaScript with Image:创建缩略图

    当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...