本文主要是介绍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));memset(d1,false,sizeof(d1));memset(d2,false,sizeof(d2));bool ok = true;for(int i=0;i<n;++i) {int t; cin>>t;auto f1=t,f2=t-i+1000,f3=t+i;if(col[f1]||d1[f2]||d2[f3]) ok=false;col[f1]=d1[f2]=d2[f3]=true;}puts(ok?"YES":"NO");}
}
2 PAT 甲级 1129 Recommendation System
#include<bits/stdc++.h>
using namespace std;struct Node{int id;int num;Node(int id, int num): id{id}, num{num} {}
};
bool operator< (const Node& a, const Node& b) {if(a.num != b.num) return a.num > b.num;return a.id < b.id;
}int main() {
// 有一个记录每个物品被查询次数的列表,
// 有一个最多有 k 个元素的数组(元素是 Node)
// 这个数组记为 recommendList,它的大小是动态维护的
// 每次把改变了的那个元素加入这个 recommendList 中
// 时间复杂度 O(k*N),比使用 set 更优一点。 int n, k; cin >> n >> k;vector<int> qNums(n+10);vector<Node> recommandList;for(int i=0; i<n; ++i) {int theQ; cin >> theQ;if(i!=0) {sort(recommandList.begin(), recommandList.end());while(recommandList.size
这篇关于PAT 2017年浙大复试机试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!