摘要: #include #include #include using namespace std; // 适用范围: int: n --> [0, 15] long long: n--> [0, 21] class Cantor_Expansion{ public: // 阶乘数组 const int fac[16] = {1, 1, 2, 6, 24, 120... 阅读全文
posted @ 2018-08-14 17:06 过路人1998 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 康托展开 Cantor expansion康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。 说直白些就是: 你给一个排列,康托展开可以计算它是第几个全排列. 逆康托展开:你给一个数组和一个数字k,康托展开 阅读全文
posted @ 2018-08-14 15:29 过路人1998 阅读(455) 评论(0) 推荐(0) 编辑
摘要: dfs题大杂烩 棋盘问题 POJ - 1321 和经典的八皇后问题一样. 给你一个棋盘,只有#区域可以放棋子,同时同一行和同一列只能有一个棋子. 问你放k个棋子有多少种方案. 很明显,这是搜索题. 因为每一行和每一列只能有一个棋子,所以我们可以从第k行一直到第n行枚举所有放棋子的情况,即我们从当前状 阅读全文
posted @ 2018-08-14 09:54 过路人1998 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 先贴上地址 https://vjudge.net/problem/HDU-5732 判断有根树同构: 1. 直接用括号最小表示法 2. 利用括号最小表示法的思想进行hash 判断无根树同构: 1. 找到树的重心. 2. 以重心为根, 把无根树转化成有根树. 按照有根树同构的方法判断是否同构. 同构的 阅读全文
posted @ 2018-08-08 11:11 过路人1998 阅读(660) 评论(0) 推荐(0) 编辑
摘要: //方法一: 扩展欧几里得 (求逆元 调用mod_reverse函数) // 限定条件 a n 互质 log(n) // @a 数 // @n 模数 inline long long mod_reverse(long long a,long long n) { long long x,y,d=extend_gcd(a,n,x,y); if(d==1) { if... 阅读全文
posted @ 2018-08-05 13:13 过路人1998 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 首先附上学习的博客 https://blog.csdn.net/sdfzchy/article/details/76098066 https://blog.csdn.net/STcyclone/article/details/52081822 相关 百科乘法逆元 https://baike.baidu.com/item/%E4%B9%98... 阅读全文
posted @ 2018-08-05 13:05 过路人1998 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 附上一道水(模板)题 https://vjudge.net/problem/HDU-1724 和一道我认为卡精度要命的题(当然 是用这个方法被卡得要命的...) https://vjudge.net/problem/HDU-5858 /* %.17f的答案 附上 HDU-5858的答案 : 0.29 阅读全文
posted @ 2018-08-04 16:51 过路人1998 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 附上一水题 阅读全文
posted @ 2018-08-03 14:20 过路人1998 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 附上题的地址 https://vjudge.net/problem/HDU-1086# 线段封装 阅读全文
posted @ 2018-08-03 10:58 过路人1998 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 极角排序求凸包 水平排序求凸包 极角排序 水平排序求凸包 阅读全文
posted @ 2018-08-03 08:18 过路人1998 阅读(209) 评论(0) 推荐(0) 编辑