摘要: C++ 随机数生成器 mt19937 以下代码来自官方示例 // mersenne_twister_engine constructor #include <iostream> #include <chrono> #include <random> int main () { // obtain a seed from the syst 阅读全文
posted @ 2022-12-19 21:07 何太狼 阅读(175) 评论(0) 推荐(0) 编辑
摘要: C++ sort sort是C++ STL(Standard template library)提供的排序函数,它可以为普通函数或者容器中指定范围内的元素进行排序。默认为升序排序,排序的区间左闭右开。 使用标准库(STL)提供的比较规则 vector<int> a(n); //.... sort(a.begin(), 阅读全文
posted @ 2022-12-13 21:35 何太狼 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 没有0的进制 Excel表列名称 基本思路 题目要求按照规则进行进制转换,该进制虽然为26进制,但是没有0,即其每个数的范围是[1,26]。 假设现有字符序列$a_{n-1}...a_1a_0$,其对应的十进制数字为num。那么我们有: $$ num = \sum^{n-1}{i=0} a_i*26^i $$ 由 阅读全文
posted @ 2022-12-08 17:37 何太狼 阅读(231) 评论(0) 推荐(0) 编辑
摘要: ccpc威海 D-Sternhalma(状压DP,记忆化搜索) 题意 给定六边形棋盘每个格子的分数,询问若干初始的棋子摆放 方式,问按照规则移除棋子最多得多少分。 移除棋子有两种方式,一种是直接移除一个棋子,不得分; 另一种是用一个棋子跳过其相邻棋子,移除被跳过的棋子并 且得分增加被移除棋子所在的格子的分数。 原题链接 解题思路 棋盘上的每个位置只有放与不放两种 阅读全文
posted @ 2022-12-01 14:49 何太狼 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 计算直线的斜率 在二维平面直角坐标系中,只要给定了两点(不重合),就能确定唯一一条直线,但当直线平行或垂直与x轴时,x或y的系数将为0,不方便存储。 不过,既然给定了两个点,我们可以直接用单位向量表示一条直线的斜率。 set<pair<int, int>> S; for (int i = 2; i <= n; ++ 阅读全文
posted @ 2022-11-29 14:14 何太狼 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 组合数 求组合数 I 组合数递推式 $$C^b_a = C^b_{a-1} + C^{b-1}_{a-1}$$ $C^b_a$的含义为在a个物品中选出b个物品的方案数,我们考虑将a个物品分为两部分,a-1个物品为一部分,剩下一个物品为另一部分, 现在我们有两种方案,选择剩下那个物品,则要从a-1中选择b个, 阅读全文
posted @ 2022-11-24 16:27 何太狼 阅读(45) 评论(0) 推荐(0) 编辑
摘要: #引入 lucas定理用于求解大组合数取模问题,其中模数必须为素数。并且p的范围不能太大,一般为$10^5$左右。 #定义 lucas定理内容如下,对于质数p,有 $$ C^m_n \equiv C^{\lfloor m/p \rfloor}{\lfloor n/p \rfloor} * C^{m% 阅读全文
posted @ 2022-11-23 13:15 何太狼 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 乘法逆元在取模运算中发挥着极其重要的作用。 我们可以很轻松的证明以下式子: $$ (a+b)%p = (a%p+b%p)%p\ (a-b)%p = (a%p-b%p)%p\ ab%p = a%pb%p $$ 但是对于除法: $$ \frac{a}{b}%p \neq \frac{a%p}{b%p}% 阅读全文
posted @ 2022-11-22 20:58 何太狼 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 输入一个[0-9]之间的数字m,统计出从1开始到正整数n中的数字的序列里,一共出现多少次这个数字。 基本思路 考虑在十进制下,n的每一位可能出现多少次m。 举个例子: 若要求1到153中出现多少次2,153/10=15,说明当个位为2时,至少由15数处在这个范围内,002,012,022,032.. 阅读全文
posted @ 2022-11-16 20:58 何太狼 阅读(195) 评论(0) 推荐(0) 编辑
摘要: #include <bits/stdc++.h> using namespace std; class Out { public: int i, j; Out() { i = 1; j = 2; in = new In; in->out = this;//初始化外部类的时候设置内部类的指针 } vo 阅读全文
posted @ 2022-11-06 18:53 何太狼 阅读(476) 评论(0) 推荐(0) 编辑