标号 | 标题 | 题型 |
---|---|---|
1001 | 害死人不偿命的(3n+1)猜想 | 模拟 |
1002 | 写出这个数 | 字符串处理 |
1003 | 我要通过! | 数学题,map |
1004 | 成绩排名 | 查找最值 |
1005 | 继续(3n+1)猜想 | hash 散列 |
1006 | 换个格式输出整数 | 字符串处理 |
1007 | 素数对猜想 | 素数 |
1008 | 数组元素循环右移问题 | 数学题 |
1009 | 说反话 | 字符串处理 |
1010 | 一元多项式求导 | 模拟 |
1011 | A+B 和 C | 模拟 |
1012 | 数字分类 | 模拟 |
1013 | 数素数 | 素数 |
1014 | 福尔摩斯的约会 | 字符串处理 |
1015 | 德才论 | 排序 |
1016 | 部分A+B | 模拟 |
1017 | A除以B | 模拟 |
1018 | 锤子剪刀布 | 模拟 |
1019 | 数字黑洞 | 字符串处理 |
1020 | 月饼 | 贪心 |
1021 | 个位数统计 | 字符串处理, hash 散列 |
1022 | D进制的A+B | 进制转换 |
1023 | 组个最小数 | 贪心,hash散列 |
1024 | 科学计数法 | 字符串处理 |
1025 | 反转链表 | 模拟链表 |
1026 | 程序运行时间 | 模拟 |
1027 | 打印沙漏 | 图形打印 |
1028 | 人口普查 | 查找最值 |
1029 | 旧键盘 | hash 散列 |
1030 | 完美数列 | 双指针,查找最值 |
1031 | 查验身份证 | 字符串处理 |
1032 | 挖掘机技术哪家强 | 查找最值 |
1033 | 旧键盘打字 | hash 散列 |
1034 | 模拟 | |
*1035 | 插入与归并 | 排序 |
1036 | 跟奥巴马一起编程 | 图形打印 |
1037 | 在霍格沃茨找零钱 | 模拟 |
1038 | 统计同成绩学生 | hash 散列 |
1039 | 到底买不买 | hash 散列 |
1040 | 有几个PAT | 数学题 |
1041 | 考试座位号 | hash 散列 |
1042 | 字符统计 | hash 散列 |
1043 | 输出PATest | hash 散列 |
1044 | 火星数字 | 进制转换,字符串处理 |
1045 | 快速排序 | 排序 |
1046 | 划拳 | 模拟 |
1047 | 编程团体赛 | hash 散列 |
1048 | 数字加密 | 字符串处理 |
1049 | 数列片段和 | 数学题 |
1050 | 螺旋矩阵 | 图形打印 |
1051 | 复数乘法 | 模拟 |
1052 | 卖个萌 | 字符串处理 |
1053 | 住房空置率 | 模拟 |
1054 | 求平均值 | 字符串处理 |
1055 | 模拟 | |
1056 | 组合数的和 | 模拟 |
1057 | 数零壹 | 进制转换,hash 散列 |
1058 | 选择题 | 字符串处理, set |
1059 | C语言竞赛 | 素数,map |
*1060 | 爱丁顿数 | 逻辑题 |
1061 | 判断题 | 模拟 |
1062 | 最简分数 | 模拟 |
1063 | 谱半径 | 查找最值 |
1064 | 朋友数 | hash 散列 |
1065 | 单身狗 | set,map |
1066 | 图像过滤 | 模拟 |
1067 | 试密码 | 模拟 |
**1068 | 模拟,map | |
1069 | 微博转发抽奖 | 模拟,map |
1070 | 结绳 | 贪心 |
1071 | 小赌怡情 | 模拟 |
1072 | 开学寄语 | 模拟, map |
**1073 | 1058加强 | |
1074 | 宇宙无敌加法器 | 字符串处理 |
1075 | 链表元素分类 | 模拟链表 |
1076 | Wifi密码 | 模拟 |
1077 | 互评成绩计算 | 查找最值 |
1078 | 字符串压缩与解压 | 字符串处理 |
1079 | 延迟的回文数 | 字符串处理 |
1080 | MOOC期终成绩 | unordered_map、排序 |
1081 | 检查密码 | 字符串处理 |
1082 | 射击比赛 | 查找最值 |
1083 | 是否存在相等的差 | hash 散列 |
1084 | 外观数列 | 字符串处理 |
1085 | unordered_map | |
1086 | 就不告诉你 | 字符串处理 |
1087 | 有多少不同的值 | unordered_map |
1088 | 三人行 | 逻辑题 |
1089 | 模拟 | |
1090 | unordered_map | |
1091 | N-自守数 | 字符串处理 |
1092 | 最好吃的月饼 | 查找最值 |
1093 | 字符串A+B | hash 散列 |
1094 | 谷歌的招聘 | 字符串处理 |
1095 | 解码PAT准考证 | unordered_map |
-
散列表:下标、映射值
-
字符串处理
字符数字转换:stoi()
to_string()
排序逆置:sort()
reverse()
前缀后缀:s.insert(s.begin(), s.end(), c)
s.append(n, c)
查找截取:s.find( c)
s.substr(pos,n)
格式判断:sscanf(s, 格式, &temp)
sprintf(s, 格式, temp)
多选题比较:<set>
存储 -
判断素数
bool IsPrime(int n) {
if (n < 2) return false;
int limit = int(sqrt(n*1.0));
for (int i = 2; i <= limit; i++)
if (n % i == 0) return false;
return true;
}
- 筛素数
bool vis[maxn] = {false};
void Sieve() {
for (int i = 2; i <= maxn; i++) {
if (!vis[i]) {
for (int j = 2*i; j <= maxn; j += i)
vis[j] = true;
}
}
}
- 模拟链表
// 链表节点
const int maxn = 1e6+10;
struct node{
int address, key, next;
}nod[maxn];
int head1 = 0, n = 0;
cin >> head1 >> n;
// 初始化
int address = 0, key = 0, next = 0;
for (int i = 0; i < n; i++) { // 不带头结点,i 可以从 0 开始
cin>>address>>key>>next;
nod[address].address = address;
nod[address].key = key;
nod[address].next = next;
}
// 装入向量
vector<node> list1;
for (head1; head1 != -1; head1 = nod[head1].next)
list1.push_back(nod[head1]);
// 更新下标
int sum = list1.size();
for (int i = 0; i < sum-1; i++)
list1[i].next = list1[i+1].next;
list1[sum-1].next = -1;
// 格式化打印
for (int i = 0; i < sum - 1; i++)
printf("%05d %d %05d\n", list1[i].address, list1[i].key, list1[i].next);
printf("%05d %d -1\n", list1[sum-1].address, list1[sum-1].key);