08 2020 档案

摘要:这道题有点抽象, 先举几个栗子:chestnut:, 找一下规律. (太长不看) 记从$1$到$N$中$1$出现的次数为$f(N)$, 个位上的数为$a$, 十位上的数为$b$, 百位上的数为$c$, 以此类推. 当$N$为1位数时 设$N=6$, 则$S={1}, f(N)=1$. 此时总结可得: 阅读全文
posted @ 2020-08-13 21:26 Blind 阅读(108) 评论(0) 推荐(0) 编辑
摘要:浮点错误:边加边化简(注意溢出) 特判:和为 $0$ 补充:带分数 非零自然数与真分数相加(负整数时与真分数相减)所成的分数 👉 code 阅读全文
posted @ 2020-08-13 00:28 Blind 阅读(52) 评论(0) 推荐(0) 编辑
摘要:记原数组为 \(a\),部分排序数组为 \(s\) Insertion sort \(s\) 的前面部分有序,后面的无序部分与 \(a\) 相同 Merge sort 对 \(a\) 进行模拟归并排序,将每一个状态与 \(s\) 比较。若 \(a=s\),则再进行一次归并排序后退出 Heap sor 阅读全文
posted @ 2020-08-12 17:24 Blind 阅读(53) 评论(0) 推荐(0) 编辑
摘要:对于整型数 \(a\),\(b\),求模运算mod或者求余运算rem的方法: 求整数商:\(c = [a/b]\); 计算模或者余数:\(r = a - c*b\). 区别:第一步不同 求模运算mod:在求 \(c\) 的值时,向 \(-\infty\) 方向舍入 求余运算rem:在求 \(c\) 阅读全文
posted @ 2020-08-06 22:01 Blind 阅读(60) 评论(0) 推荐(0) 编辑
摘要:交集 std::set_intersection Constructs a sorted range beginning in the location pointed by result with the set intersection of the two sorted ranges [fir 阅读全文
posted @ 2020-08-04 21:53 Blind 阅读(63) 评论(0) 推荐(0) 编辑
摘要:注意到题目要求输出链表的节点个数,说明输入的节点中存在无效数据 特判:空链表 👉 code 阅读全文
posted @ 2020-08-04 12:55 Blind 阅读(53) 评论(0) 推荐(0) 编辑
摘要:**注意到$N(\leq 10^5)$,\(M(\leq 100)\),**那么对于数据集可以进行如下处理: 按题目要求对所有数据排序。 建立标记数组c[AGE],在$c_i$中记录年龄为$i$的人数,其中const int AGE = 205。再建立新数组s[N],记录有效数据。 遍历已有序的数据 阅读全文
posted @ 2020-08-03 10:52 Blind 阅读(53) 评论(0) 推荐(0) 编辑
摘要:dp动态规划 $dp[i][j]$表示$s[i] \to s[j]$是否对称,是为$1$,否为$0$ 状态转移方程:\(dp[i][j] = dp[i+1][j-1] \&\& (s[i]==s[j])\) 边界条件:\(dp[i][i]=1,dp[i][i+1]=(s[i]==s[i+1])\) 阅读全文
posted @ 2020-08-02 09:28 Blind 阅读(94) 评论(0) 推荐(0) 编辑
摘要:这道题主要是解决超时问题 使用unordered_map代替map 参考: std::unordered_map map与unordered_map map和unordered_map的差别和使用 在PAT里使用map还是unordered_map? 使用unordered_map<string, 阅读全文
posted @ 2020-08-01 20:59 Blind 阅读(73) 评论(0) 推荐(0) 编辑
摘要:题目的要求即为:对任意两个数字,确定它们的排序,使得两个数字串起来后得到的新数字最小 struct cmp { bool operator() (const int a, const int b) { char str[2][2*M]; strcpy(str[0], num[a]); strcat( 阅读全文
posted @ 2020-08-01 19:45 Blind 阅读(64) 评论(0) 推荐(0) 编辑