随笔分类 - 算法竞赛入门经典读书笔记
摘要:紫书例题 题目链接 https://vjudge.net/problem/UVA-12096 AC 代码 #include <iostream> #include <set> #include <map> #include <vector> #include <stack> #include <al
阅读全文
摘要:紫书例题 题目链接 https://vjudge.net/problem/UVA-156 AC 代码 #include <iostream> #include <string> #include <cctype> #include <vector> #include <map> #include <
阅读全文
摘要:题目链接 https://vjudge.net/problem/UVA-227 代码 #include <iostream> #include <vector> #include <map> using namespace std; struct Point { int x, y; Point (i
阅读全文
摘要:以 UVa455 为例: 在这里查找题目: 然后选择左边的选项, 注意,点击前面的用户名效果更好,是单击,然后右边就会出现相应的测试用例, 之后把测试用例在你自己的程序中跑一下,把获得的输出粘到这里: 然后点击下面这个 Get Accepted Output 按钮,左边也就会出现相应的正确的输出,再
阅读全文
摘要:题目链接 https://vjudge.net/problem/UVA-455 代码 #include <iostream> #include <cstring> using namespace std; int main() { int N; // 测试用例的个数 char s[100]; int
阅读全文
摘要:题目链接 https://vjudge.net/problem/UVA-1225 代码 #include <iostream> #include <string.h> int res[10]; // 用于保存最后的结果 int main() { int T; // 一共需要测试 T 组数据,T 的范
阅读全文
摘要:题目链接 https://vjudge.net/problem/UVA-1586 代码 #include<iostream> #include<string.h> int main() { int T, count; char s[100]; // 字符串最大长度为 80,所以这里就稍微多分配了一点
阅读全文
摘要:题目链接 https://vjudge.net/problem/UVA-1585 代码 #include <stdio.h> #include <string.h> #define maxn 100 char s[maxn]; int T; // 一共输入 T 组数据 int main() { in
阅读全文
摘要:题目描述 代码 #include <iostream> #include <string> #include <set> #include <sstream> using namespace std; set<string> dict; // string 集合 int main() { strin
阅读全文
摘要:这个调试方法和 C 语言的很类似,相比于 C,只需要改动一个地方,就是把 gcc 改成 g++。使用 gcc 或者 g++ 编译 C 或者 C++ 程序不加 -o 的话,编译产生的可执行文件的名称就默认为 a.exe(在 Windows 下)。 有一点要注意,紫书中在使用 bt 之前没有使用 r 执
阅读全文
摘要:题目描述 关于上面的指令,说明如下: move a onto b: a 和 b 都是木块号码,在把堆放在木块 a 和 b 上的所有木块归位到它们的初始位置后,再把木块 a 放到木块 b 上。 move a over b: a 和 b 都是木块号码,在把堆放在木块 a 上的所有木块归位到它们的初始位置
阅读全文
摘要:题目描述 代码 #include<stdio.h> #define maxn 25 int n, k, m, a[maxn]; // n 是人数,官员 A 从 1 开始逆时针数数,数 k 个然后停下来,官员 B 从 n 开始数数,数 m 个停下来 // 逆时针走 t 步,步长是 d (-1 表示顺时
阅读全文
摘要:代码: // UVa1339 #include<stdio.h> #include<stdlib.h> #include<string.h> int cmp(const void *a, const void *b) { return *(int *) a - *(int *)b; } int ma
阅读全文
摘要:提示 3-4 比较大的数组应尽量声明在 main 函数外,否则程序可能无法运行。 数组不能够进行赋值操作,如果声明的是 “int a[maxn], b[maxn]”,是不能赋值 b = a 的。如果要从数组 a 复制 k 个元素到数组 b,可以这样做:memcpy(b, a, sizeof(int)
阅读全文
摘要:题目描述: 代码: int dfs(int cur) { if (cnt++ == n) { for (int i = 0; i < cur; i++) { printf("%c", 'A' + S[i]); // 输出方案 } printf("\n"); return 0; } for (int
阅读全文
摘要:见紫书 P194 题目描述: 关于书中的最初的分析,其思想是直接暴力列举出给定整数序列的全排列,然后逐个检验其合法性。 实验代码如下: for (int i = 2; i <= n * 2; i++) isp[i] = is_prime(i); // 生成素数表,加快后续判断 for (int i
阅读全文
摘要:问题描述 问题描述:在棋盘上放置 8 个皇后,使得它们互不攻击,此时每个皇后的攻击范围为同行同列同对角线,要求找出所有解。 LeetCode上面的描述: 解决方法 这里使用经典的回溯法。 代码: 下面的程序简洁地求解了八皇后问题。在主程序中读入 n,并为 tot 清零,然后调用 search(0),
阅读全文