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. Android 常见内存泄露 & 解决方案

    前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃 (OOM) 等严重后果. 那什么情况下不能被 ...

  2. CSPS_101

    T1 众所周知,只要在任意三个方向上有连续五颗棋子,游戏即结束. T2 又是最短路优化dp啦. T3 神奇的期望dp.还没改出来. 改出来啦!

  3. C/C.cpp

    我是怎么说服自己这题没有答案单调性的? 当轮数大于最优答案时,B的操作就成了捣乱,会使A多进行若干操作才能回复原状态 嗯,所以答案没有单调性. 就没去想A的操作可以把B的抵消啊.. 另外swap没有交 ...

  4. 使用Typescript重构axios(二十)——请求取消功能:实现第一种使用方式

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

  5. NOIP 模拟29 B 侥幸

    这次考得好纯属是侥幸,我T3打表试数试了两个小时,没有想打T2的正解(其实是打不出来)所以这个T3A掉纯属是侥幸,以后还是要打正解 (以下博客最好按全选观看,鬼知道为啥这个样子!) 在这里也口胡一下我 ...

  6. 『题解』洛谷P4016 负载平衡问题

    title: categories: tags: - mathjax: true --- Problem Portal Portal1:Luogu Portal2: LibreOJ Descripti ...

  7. pssh系列工具

    一.pssh简介及安装 首先我们来了解下什么是pssh,它是干嘛用的?pssh是一个python编写可以在多台服务器上执行命令的工具,也可以实现文件复制.换而言之就是一个批量管理多台服务器的一个小工具 ...

  8. Python 基础 装饰器

    今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...

  9. Linux centos5.6版本下mysql5.6主从环境安装配置

    MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势,国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载.数据库热备等功能.本人在此将如何配置实现做了个简单 ...

  10. 就该这样理解 OSI 七层参考模型、浅谈不同局域网之间的通信

    简介 说到OSI参考模型,理解网络与网络之间的关系,不说太深入难以理解的东西,只求能最大程度上理解与使用. 参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为O ...