摘要: 求关于$x$的同余方程 $ax \equiv 1 \pmod $的最小正整数解。 将 \(ax \equiv 1 \pmod {b}\) 转换成$ax+by=1$,而$ax+by=1$有解的充要条件是$1% gcd(a,b) == 1$,于是乎$gcd(a,b) == 1$,题目明确一定有解,于是我 阅读全文
posted @ 2021-02-15 23:58 Dazzling! 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 扩展欧几里得算法(即ax + by = gcd(a,b)的求解) 方程ax+by=c的求解 同余式ax = c(mod m)的求解 逆元的求解以及(b/a)%m的计算。 本节数学证明较多,请读者认真学习。 扩展欧几里得算法 扩展欧几里得算法用来解决这样一个问题:给定两个非零整数a和b,求一组整数解( 阅读全文
posted @ 2021-02-15 19:13 Dazzling! 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 高精度进制转换,挺无聊的这种题,非要写个麻烦的高精度。 const int N=110; struct bignum { int m[N]; int len; bignum() { memset(m,0,sizeof m); len=0; } }; int ra,rb; string a; int 阅读全文
posted @ 2021-02-15 17:22 Dazzling! 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 先将整数部分和小数部分对齐,后面就跟高精度加法类似思路了,最后将末尾多余的零删除。 string sa,sb; int main() { int T; cin>>T; while(T--) { cin>>sa>>sb; int posa=sa.find('.'),posb=sb.find('.'); 阅读全文
posted @ 2021-02-15 16:22 Dazzling! 阅读(213) 评论(0) 推荐(0) 编辑
摘要: \(0 \le N \le 1000\),求$N!$,考察高精度乘法。 const int N=3010; struct bignum { int m[N]; int len; bignum() { memset(m,0,sizeof m); len=0; } }; int n; bignum mu 阅读全文
posted @ 2021-02-15 15:30 Dazzling! 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题意 给出$N$个人的姓名、年龄及其拥有的财富值,然后进行K次查询。每次查询要求输出年龄范围在[AgeL, AgeR]的财富值从大到小的前M人的信息。如果财富值相同,则年龄小的优先;如果年龄也相同,则姓名的字典序小的优先。 暴力代码,水了$22pts$。 const int N=1e5+10; st 阅读全文
posted @ 2021-02-15 11:10 Dazzling! 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 大水题。。。 const int N=1e5+10; struct Node { string id; string name; int grade; }a[N]; int n,m; bool cmp1(Node &a,Node &b) { return a.id < b.id; } bool cm 阅读全文
posted @ 2021-02-15 10:12 Dazzling! 阅读(10) 评论(0) 推荐(0) 编辑