PAT 2018年浙大复试机试 1 PAT 甲级 1144 The Missing Number#include<bits/stdc++.h>using namespace std;const int N = 1e5+10;int vec[N];int main() { int n; cin>>n; for(int i=0; i<n; ++i) { cin>>vec[i]; } for(int i=0; i<n; ++i) {
PAT 2017年浙大复试机试 PAT 2017 年浙大复试机试1 PAT 甲级 1128 N Queens Puzzle#include<bits/stdc++.h>using namespace std;bool col[1010],d1[2010],d2[2010];int main() { int k; cin>>k; while(k--) { int n; cin>>n; memset(col,false,sizeof(col));
PAT 2016年浙大复试机试 1 PAT 甲级 1112 Stucked Keyboard#include <bits/stdc++.h>using namespace std;int num[256];bool broken[256];int main() { fill(broken,broken+256,true); int n;cin>>n; string s;cin>>s; char old,now; for(size_t i=0;i<s
PAT 2021年秋季 满分记录(含题目和题解) 记录总之就是非常爽。(爽是暂时的,不能抵扣浙大机试就开始哭了呜呜呜呜呜呜呜。)写算法写代码真是快乐,后面可以自由自在地看竞赛书了,慢慢修炼,打到 codeforces 1900 分。从去年十二月开始学 C++,一个半月看完了《C++ Primer》前七章,然后做了五十多道乙级、十多道乙级,去考了2021年春季甲级。53分,当时心里还是五味杂陈。春天那个学期一边修环境的专业课(课还是比较多的),一边看《算法笔记》(胡凡大大的),一边刷《 算法笔记上机训练实战指南》,零零散散,到昨天差不多把 PAT 甲级的
PAT 甲级 2016年春季 1 PAT 甲级 1108 Finding Average#include <bits/stdc++.h>using namespace std;bool IsValid(string s,double &ans){ int c1=0,c2=0,pos_p; for(size_t i=0;i<s.size();++i){ if(s[i]=='-') ++c1; else if(s[i]=='.') {++c2; pos_p=i;
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){
PAT 甲级 2016年冬季 1 PAT 甲级 1120 Friend Numbers#include <bits/stdc++.h>using namespace std;int main() { int n;cin>>n; set<int> ans; while(n--){ string tmp;cin>>tmp; int sum=0; for(auto i:tmp) sum+=i-'0';
PAT 甲级 2017年春季 1 PAT 甲级 1124 Raffle for Weibo Followers#include <bits/stdc++.h>using namespace std;string id[1010];set<string> st;int main() { int m,n,s;cin>>m>>n>>s; for(int i=0;i<m;++i) cin>>id[i]; if(s>m) cout
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_s
PAT 甲级 2017年冬季 1 PAT 甲级 1136 A Delayed Palindrome#include <bits/stdc++.h>using namespace std;string a,b,c;bool IsPali(string &s){ int sz=s.size(); for(int i=0;i<=sz/2;++i){ if(s[i]!=s[sz-1-i]) return false; } return true;}string
PAT 甲级 2018年冬季 1 PAT 甲级 1152 Google Recruitment#include <bits/stdc++.h>using namespace std;int l,k;string s;long long p=1;bool IsPrime(long long n){ if(n<2) return false; for(long long i=2;i<=sqrt(n);++i) if(n%i==0) return false; retu
PAT 甲级 2018年春季 1 PAT 甲级 1140 Look-and-say Sequence#include <bits/stdc++.h>using namespace std;const int MAXN=210;set<int> graph[MAXN];int main(){ int nv,ne;cin>>nv>>ne; for(int i=0;i<ne;++i){ int a,b;cin>>a>>b;
PAT 甲级 2018年秋季 1 PAT 甲级 1148 Werewolf - Simple Version#include <bits/stdc++.h>using namespace std;struct Msg{ int type,id;};int n;Msg msg[110];int is_wolf[110];bool IsValid(int l1,int l2,int w){ // l1 是狼,l2 是村民,w 是没说谎的狼 if(l2==w) return false;
PAT 甲级 1065 A+B and C (64bit) PAT 甲级 1065 A+B and C (64bit)这道题数据范围可能有问题,不能用 cin。按道理说如果是在 (−263,263)(-2^{63},2^{63})(−263,263) 即 [−263+1,263−1][-2^{63}+1,2^{63}-1][−263+1,263−1] 范围内,都是可以 cin 的。如果超出了范围,cin 会把结果限制到对应的上界和下界。#include <bits/stdc++.h>using namespace std;long long a,
PAT 甲级 1026 Table Tennis 2021最新测试点 PAT 甲级 1026 Table Tennis感谢这篇文章,思路非常棒,终于满分了。#include <bits/stdc++.h>using namespace std;struct Table{ int ctr{0},is_vip{0},use{-1},end_time{0};};struct Player{ int arrive,beg,cost,end,is_vip; Player(int _arrive,int _cost,int _is_
PAT 甲级 1014 Waiting in Line PAT 甲级 1014 Waiting in Line#include <bits/stdc++.h>using namespace std;struct Msg{ int end,cost; Msg(int _cost):cost(_cost){}};vector<Msg> msg;int main(){ int n,m,k,q,cost; cin>>n>>m>>k>>q; for(
PAT 甲级 1017 Queueing at Bank PAT 甲级 1017 Queueing at Bank#include <bits/stdc++.h>using namespace std;int n,k;struct Msg{ int arrive,cost,beg,leave; // 到达、花费、开始、离开,单位:秒。 Msg(int _arrive=0,int _cost=0):arrive(_arrive),cost(_cost){} bool operator< (const Msg &
PAT 甲级 1105 Spiral Matrix PAT 甲级 1105 Spiral Matrix#include <bits/stdc++.h>using namespace std;int ans[110][110],n,nums[10010];int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; // 右下左上int row,column,pos; // 行坐标、列坐标、朝向 bool IsValid(int i,int j){ if(i<0||j<0||i>=row
PAT 甲级 1057 Stack 分块和树状数组 分块思想每次查询复杂度为 O(N)O(\sqrt N )O(N)#include <bits/stdc++.h>using namespace std;const int N=1e5+10,BK=326; // 每个块 sqrt(1e5)=326 个数字int num[N],arr[N],blocks[N];int sz=0; // arr 大小 void Push(){ cin>>arr[sz]; num[arr[sz]]++,blocks[arr
PAT 甲级 1068 Find More Coins PAT 甲级 1068 Find More Coins输出字典序最小的选择策略,对于物品下标范围 [0,n][0,n][0,n],子问题是[1,n][1,n][1,n]。物品价值从小到大排序进行dp时,物品下标范围 [0,n][0,n][0,n] 的子问题是 [0,n−1][0,n-1][0,n−1],两者是冲突的。所以需要重新设计 dp 的方式。可以将物品价值从大到小排序,正常 dp,此时输出字典序最小问题,对于物品下标范围 [0,n][0,n][0,n],子问题就变成了[0,n−1][0,n-1][