随笔分类 - PAT (Advanced Level) Practice
摘要:这道题有点抽象, 先举几个栗子:chestnut:, 找一下规律. (太长不看) 记从到中出现的次数为, 个位上的数为, 十位上的数为, 百位上的数为, 以此类推. 当为1位数时 设, 则. 此时总结可得:
阅读全文
摘要:浮点错误:边加边化简(注意溢出) 特判:和为 补充:带分数 非零自然数与真分数相加(负整数时与真分数相减)所成的分数 👉 code
阅读全文
摘要:记原数组为 ,部分排序数组为 Insertion sort 的前面部分有序,后面的无序部分与 相同 Merge sort 对 进行模拟归并排序,将每一个状态与 比较。若 ,则再进行一次归并排序后退出 Heap sor
阅读全文
摘要:交集 std::set_intersection Constructs a sorted range beginning in the location pointed by result with the set intersection of the two sorted ranges [fir
阅读全文
摘要:注意到题目要求输出链表的节点个数,说明输入的节点中存在无效数据 特判:空链表 👉 code
阅读全文
摘要:**注意到,,**那么对于数据集可以进行如下处理: 按题目要求对所有数据排序。 建立标记数组c[AGE],在中记录年龄为的人数,其中const int AGE = 205。再建立新数组s[N],记录有效数据。 遍历已有序的数据
阅读全文
摘要:这道题主要是解决超时问题 使用unordered_map代替map 参考: std::unordered_map map与unordered_map map和unordered_map的差别和使用 在PAT里使用map还是unordered_map? 使用unordered_map<string,
阅读全文
摘要:题目的要求即为:对任意两个数字,确定它们的排序,使得两个数字串起来后得到的新数字最小 struct cmp { bool operator() (const int a, const int b) { char str[2][2*M]; strcpy(str[0], num[a]); strcat(
阅读全文
摘要:注意输出格式 if(suffix != -1) printf("%05d\n", suffix); else printf("-1\n"); 特判:至少一个单词是空的 if(word[0] 1 || word[1] 1) { printf("-1\n"); return 0; } 从尾到头判断地址是
阅读全文
摘要:二叉搜索树中序遍历得到的结点顺序是给出的数值序列从小到大的排列顺序 👉 code
阅读全文
摘要:素数打表记得标记0和1 void table() { memset(primes, 0, sizeof(primes)); primes[0] = primes[1] = 1; // 素数打表别忘了0和1 rep(i,2,N) { if(!primes[i]) { int j = 2; while(
阅读全文
摘要:输出格式 #include<iostream> #include<iomanip> cout << setfill('0'); cout << rst/1000 << ',' << setw(3) << rst%1000; or #include<cstdio> printf("%d,%03d",
阅读全文