题表
题号 | 题目 | 题型 |
---|---|---|
待更新:2021年9月1日17:40:02 | ||
1120 | Friend Numbers (20 分) | 个人理解和题目的意思有出入 |
1121 | Damn Single (25 分) | 常规统计 |
1122 | Hamiltonian Cycle (25 分) | 得对一些知识了解 |
1123 | Is It a Complete AVL Tree (30 分) | |
1124 | Raffle for Weibo Followers (20 分) | 又没看懂题目 |
1125 | Chain the Ropes (25 分) | 看了半天没看懂题目 |
1126 | Eulerian Path (25 分) | 开始没看懂题。。二维数组映射 简单、得额外判断图的可达 木有想到 |
1127 | ZigZagging on a Tree (30 分) | 广度遍历、不同于LeetCode的是需要知道当前节点的左右节点 |
1128 | N Queens Puzzle (20 分) | 送分 set+vector |
1129 | Recommendation System (25 分) | set-> operator、find、erase、insert |
1130 | Infix Expression (25 分) | dfs |
1131 | Subway Map (30 分) | dfs+visited判断+映射 |
1132 | Cut Integer (20 分) | substr() |
1133 | Splitting A Linked List (25 分) | 数组+struct |
1134 | Vertex Cover (25 分) | set+vector+struct |
1135 | Is It A Red-Black Tree (30 分) | 建树+递归判断 |
1136 | A Delayed Palindrome (20 分) | 回文判断 |
1137 | Final Grading (25 分) | 统计 |
1138 | Postorder Traversal (25 分) | 前序中序,转后序 |
1139 | First Contact (30 分) | 两唯一数拼接判断是否存在、数组加链表 链表表示对应与数组A有关系的所有元素 难。。 |
1140 | Look-and-say Sequence (20 分) | 字符串遍历 |
1141 | 1141 PAT Ranking of Institutions (25 分) | struct+cmp、map |
1142 | Maximal Clique (25 分) | 数组映射查找 这种题写麻了 |
1143 | Lowest Common Ancestor (30 分) | 二叉搜索树找最近祖先 |
1144 | The Missing Number | vector、sort |
1145 | Hashing - Average Search Time | 判断素数、平方探测法 |
1146 | Topological Order | map |
1147 | Heaps | 前中后续遍历输出、大顶堆小顶堆无顶堆判断 |
1148 | Werewolf - Simple Version | 枚举 |
1149 | Dangerous Goods Packaging | map |
1150 | Travelling Salesman Problem | 统计、map用于字符查找、数组用于数字查找 |
1151 | LCA in a Binary Tree | 中序前序数列找最近祖先:递归通过过中序数列解决 |
1152 | Google Recruitment | 素数(prime)、字符串 |
1153 | Decode Registration Card of PAT | cout=>printf、map => unordered_map、vector、struct、sort、cmp |
1154 | Vertex Coloring | 结构体、数组 |
1155 | Heap Paths | 堆、深度遍历 |
单词
-
specialized adj.专业的;专门的;专用的 v.专门研究(或从事);专攻 specialize的过去分词和过去式
-
satisfies v. 使满意;使满足;满足(要求、需要等);向…证实;使确信 satisfy的第三人称单数
-
Specification n. 规格;规范;明细单;说明书
-
traverse vt. 横过;横越;穿过;横渡 n. (在陡坡上的)侧向移动,横过,横越;可横越的地方
-
vertex n. (三角形或锥形的)角顶; 顶点; 至高点;
-
respectively adv. 分别地;分别;各自;顺序为;依次为
-
10-digit prime 10位素数
-
numbers of digits 数字的位数
-
testee 考生;被试;受试者;测试者
-
term n. 学期(尤用于英国,学校一年分三个学期);术语;期限;任期;期;词语;措辞 vt. 把…称为;把…叫做
-
lying v.躺;平躺;平卧;平放;处于,保留,保持(某种状态) v.说谎;撒谎;编造谎言 lie的现在分词
-
liar 说谎者
-
undirected graph 无向图
-
guaranteed adj. 必然的;确定会发生的 v.保证;担保;保障;提供(产品)保修单(免费掉换或修理有问题的产品);使必然发生;确保 guarantee的过去分词和过去式
-
collision n.碰撞(或相撞)事故;(两人之间或对立意见、看法等之间的)冲突,抵触collision的复数
-
1 decimal place 小数点后1位
-
permutation n. 排列(方式);组合(方式);置换
-
alphabetical order 字母顺序
-
G must be rounded up to an integer G必须向上舍入为整数
-
rounded 把(数字)四舍五入
-
folded v. 折叠,对折(纸、织物等);折小,叠平,可折小,可叠平(以便贮存或携带);包;裹 fold的过去分词和过去式
-
odd 奇数 even偶数
小记
1.%s 输出 string类型 需要用 str.c_str()
2. 结构体sort()模板
bool cmp(node a, node b) {
if (a.tws != b.tws)
return a.tws > b.tws;
else if (a.ns != b.ns)
return a.ns < b.ns;
else
return a.school < b.school;
}
// ⽤迭代器遍历,输出map中所有的元素,键⽤it->first获取,值⽤it->second获取
for (auto it = m.begin(); it != m.end(); it++) {
cout << it->first << " " << it->second << endl;
}
set 的使用
struct node{
int val,cnt;
//node(int a,int b):val(a),cnt(b) {}
//set的内部比较器
bool operator < (const node &a) const{
return cnt != a.cnt?cnt > a.cnt:val < a.val;
}
};
set<node> s;
auto it = s.find({num,book[num]});
if (it != s.end()) s.erase(it);
s.insert({num,++book[num]});
5.建树
struct node{
int val;
struct node *left,*right;
};
node* build (node *root,int v){
if(root ==NULL){
root = new node();
root->val = v;
root->left=root->right = NULL;
}else if(abs(v) > abs(root -> val)){
root->right = build(root->right,v);
}else{
root->left = build(root->left,v);
}
return root;
}
cin >> n;
vector<int> v(n);
node *root = NULL;
for(int i=0;i<n;i++){
scanf("%d",&v[i]);
root = build(root,v[i]);
}
- string 中还有个很常⽤的函数叫做 substr ,作⽤是截取某个字符串中的⼦串,⽤法有两种形式:
string s2 = s.substr(4); // 表示从下标4开始⼀直到结束
string s3 = s.substr(5, 3); // 表示从下标5开始,3个字符