数论
七九河开
这个作者很懒,什么都没留下…
展开
-
扩展欧几里得求乘法逆元
好久没发博客了,总结下今晚学的扩展欧几里得吧 虽然现在也没学会 ax + by = c 扩展欧几里得知道a b c 求x y 求乘法逆元 a*x = 1(mod m) 知道a和m 求x 先复习一下欧几里得求最大公约数吧 inr gcd(int x,int y) { if(y==0) return x; else return gcd(y,x%y); } 求 ax...原创 2018-07-30 21:03:13 · 364 阅读 · 0 评论 -
逆序对
#include<iostream> using namespace std; int a[100]; int t[100]; int cnt=0; void merge_sort(int *a,int x,int y,int *T) { if(y-x>1) { int m=x+(y-x)/2; int p=x,q=m,i=x;...原创 2018-10-12 20:23:36 · 98 阅读 · 0 评论 -
Codeforces Round #538 C. Trailing Loves (or L'oeufs?)(求 n! 转化为 b 进制下末尾有多少个 0.)
题目 https://codeforces.com/contest/1114/problem/C 思路 求 n! 转化为 b 进制下末尾有多少个 0. 解题思路: 原题:swjtuOJ 2090 这是一道很好的数论题。 首先转换一下思路: 要求 n! 在 b 进制下有多少个尾 0 就相当于 求 n! % (b^k) == 0 的最大 k。 那么我们现在把 n! 看作一个数 A。问题...原创 2019-02-22 15:05:24 · 534 阅读 · 0 评论 -
Codeforces Round #539 Sasha and a Bit of Relax(异或)
题目 https://codeforces.com/contest/1113/problem/C 题意 给你一个数列 求有多少区间满足 1 长度为偶数 2 前一半异或值等于后一半异或值 思路 前一半异或值等于后一半异或值 那么这个区间异或值为0 只需找前缀异或相等且长度为偶数即可 (即奇数位和奇数位) #include <bits/stdc++.h> using na...原创 2019-02-25 19:32:10 · 209 阅读 · 0 评论 -
Modulo Query ZOJ - 3940 (区间取模)
题目 https://cn.vjudge.net/problem/ZOJ-3940 题意 给你n个模数,和一个0-m范围,Q次询问,每次问范围内有多少数结果是给定的数 思路 区间取模,对x个区间取模,最多会产生x+1个区间,即x个0-(x-1)的区间合并为一个,和0-(<x)的区间 所有最后最多会有2*n个区间, 对于所有的查询x,查找有多少区间又端点大于等于x,即答案 代码...原创 2019-04-10 19:43:13 · 290 阅读 · 0 评论