PAT 甲级 2017年秋季

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

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

1 PAT 甲级 1132 Cut Integer

#include <bits/stdc++.h>
using namespace std;
string num;
void Solve(){string s1=num.substr(0,num.size()/2);string s2=num.substr(num.size()/2,num.size()/2);int a,b,c;a=atoi(num.c_str());b=atoi(s1.c_str());c=atoi(s2.c_str());if(b!=0&&c!=0&&a%(b*c)==0) cout<<"Yes\n";else cout<<"No\n";
}
int main() {int n;cin>>n;while(n--){cin>>num;Solve();}
}

2 PAT 甲级 1133 Splitting A Linked List

#include <bits/stdc++.h>
using namespace std;struct Node{int address{-1},val,next{-1},order{-1};
}node[100010];int main() {int head,n,k;cin>>head>>n>>k;for(int i=0;i<n;++i){int ad,da,ne;cin>>ad>>da>>ne;node[ad].address=ad;node[ad].val=da;node[ad].next=ne;}int ctr=0;for(int now=head;now!=-1;now=node[now].next){node[now].order=ctr;++ctr;}sort(node,node+100010,[k](Node &a,Node &b){if(a.order==-1||b.order==-1) return a.order>b.order;if(a.val<0&&b.val<0) return a.order<b.order;if(a.val<0&&b.val>=0) return true;if(a.val>=0&&b.val<0) return false;if(a.val<=k&&b.val>k) return true;if(a.val>k&&b.val<=k) return false;return a.order<b.order;});for(int i=0;i<ctr-1;++i){printf("%05d %d %05d\n",node[i].address,node[i].val,node[i+1].address);}printf("%05d %d %d\n",node[ctr-1].address,node[ctr-1].val,-1);
}

3 PAT 甲级 1134 Vertex Cover

#include <bits/stdc++.h>
using namespace std;
int vs[10010],tmp[10010];
set<int> graph[10010];
int main() {int n,m;cin>>n>>m;for(int i=0;i<m;++i){int a,b;cin>>a>>b;vs[a]++;vs[b]++;graph[a].insert(b);graph[b].insert(a);}int k;cin>>k;while(k--){int nv;cin>>nv;for(int i=0;i<10010;++i) tmp[i]=vs[i];for(int i=0;i<nv;++i){int now;cin>>now;for(auto i:graph[now]){if(tmp[i]!=0) tmp[i]--;}tmp[now]=0;}bool flag=true;for(int i=0;i<10010;++i) if(tmp[i]!=0) flag=false;if(flag) cout<<"Yes\n";else cout<<"No\n";}
}

4 PAT 甲级 1135 Is It A Red-Black Tree

#include <bits/stdc++.h>
using namespace std;
int pre[50],in[50],mp[50];
int lchild[50],rchild[50],height[50];
bool is_red[50],flag;
int Build(int l1,int r1,int l2,int r2){if(l1>r1) return -1;int root=l1;int mid;for(mid=l2;mid<r2&&in[mid]!=root;++mid);int len=mid-l2;lchild[root]=Build(l1+1,l1+len,l2,mid-1);rchild[root]=Build(l1+len+1,r1,mid+1,r2);return root;
}
int Check(int root){// 判断红节点子节点是黑色 if(root!=-1&&is_red[root]){if(lchild[root]!=-1&&is_red[lchild[root]]) flag=false;if(rchild[root]!=-1&&is_red[rchild[root]]) flag=false;}// 判断数目if(root==-1) return 1; int num1=Check(lchild[root]);int num2=Check(rchild[root]);if(num1!=num2) flag=false;return num1+!is_red[root];
}
int main() {int k;cin>>k;while(k--){flag=true;memset(is_red,false,sizeof(is_red));int n;cin>>n;for(int i=0;i<n;++i){int tmp;cin>>tmp;if(tmp<0) {is_red[i]=true;tmp*=-1;}mp[i]=tmp;pre[i]=in[i]=i;}sort(in,in+n,[](int a,int b){return mp[a]<mp[b];});int root=Build(0,n-1,0,n-1);Check(root);if(flag&&!is_red[0]) cout<<"Yes\n";else cout<<"No\n";}
} 

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



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

相关文章

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

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

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)

网易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