![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 66
to cling
Everything negative - pressure, challenges - is all an opportunity for me to rise.
展开
-
A Simple Math Problem(容斥原理)
【代码】A Simple Math Problem(容斥原理)原创 2022-10-10 22:20:10 · 235 阅读 · 0 评论 -
P3166数三角形(容斥+gcd)
给定一个 N×MN\times MN×M 的网格,请计算三点都在格点上的三角形共有多少个。注意三角形的三点不能共线。原创 2022-07-07 21:17:27 · 188 阅读 · 0 评论 -
路径计数2(dp + 组合数)
daimayuan 每日一题 div1 202原创 2022-06-06 15:23:13 · 219 阅读 · 0 评论 -
A. Link/Cut Tree(精度错误,运算爆long long)
传送门题意求l~r之间的k的幂次。题解暴力模拟每题一废话我自己是用pow函数写的,精度一直出问题,一直wa。后来我自己简单写了一个Pow函数(求一个正整数的正整数次幂),最后对着CF的错误样例改了好几次才过。可见数据比较大时,double类型转long long并不合适,会出现精度错误。比如数据比较大时,999999999999999999(double类型的,18个9),开个根号然后转ll,会得出1000000000(9个0),而不是999999999(9个9)。三组错误样例1原创 2021-09-10 15:55:13 · 102 阅读 · 0 评论 -
F - Reordering Editorial(dp + 组合数 + 线性求逆元)
参考题解AtCoder Beginner Contest 234题意给出一个长度为n的字符串,求字符串能组成排列数量。例如:abb有8种排列:a, b, ab, ba, aa, abb, bab, bba思路dp[i][j]:表示前i个字母能够组成长度为j的排列数量dp[i][j]:表示前i个字母能够组成长度为j的排列数量dp[i][j]:表示前i个字母能够组成长度为j的排列数量i 表示字母a~z,j表示字符串的长度状态转移方程:dp[i][j]=∑k=0min(j,num[i])dp[原创 2022-01-09 19:12:08 · 383 阅读 · 0 评论 -
数学(数论)(每日一题 div2)
div2 每日一题 1103Solution观法可以发现,[1,n]这个n个数可以组成任意的[1,n(n+1)2]这些数中的任意一个[1, n]这个n个数可以组成任意的 [1, \frac {n(n + 1)}{2}]这些数中的任意一个[1,n]这个n个数可以组成任意的[1,2n(n+1)]这些数中的任意一个。那么,问题转化为 求 n(n+1)2\frac {n(n + 1)}{2}2n(n+1)的最大共因数。但,由于数的规模过大(1e18),我们无法直接进行 求最大因子。进一步转化,可以原创 2022-05-10 14:27:15 · 273 阅读 · 0 评论 -
E - LEQ(树状数组 + 乘法逆元)
AtCoder Beginner Contest 221题意给你一个长度为n的数组a,问:有多少个子序列b(不一定连续)满足条件假设a=(a1,a2,…,an)a = (a_1,a_2,\dots,a_n)a=(a1,a2,…,an)b=b1,b2,…,bk,b1≤bkb = {b_1, b_2,\dots,b_k}, \quad b_1 \le b_kb=b1,b2,…,bk,b1≤bk思路先对数组进行离散化。对于子序列(ai,…,aj)(a_i,\dots,a_j)(ai,原创 2021-10-03 11:42:12 · 240 阅读 · 0 评论 -
GCD and LCM(hdu4497)
传送门题意给出gcd(x,y,z),lcm(x,y,z)gcd(x, y, z),lcm(x, y, z)gcd(x,y,z),lcm(x,y,z),求出所有满足条件的(x,y,z)(x, y, z)(x,y,z)组合的数量。注意:(1,2,3)和(1,3,2)(1, 2 , 3) 和(1, 3, 2)(1,2,3)和(1,3,2)是两个不同的组合。思路明显地,若lcm%gcd≠0lcm \% gcd \neq 0lcm%gcd=0,则无解。设d=lcm/gcd,d=q1c1原创 2021-09-24 12:21:46 · 103 阅读 · 0 评论 -
Mobius函数(模板)
AcWing215. 破译密码题意对于给定的整数a,b和d,有多少正整数对x,y,满足x≤a,y≤b,并且gcd(x,y)=d。(1≤n≤50000,1≤d≤a,b≤50000)对于给定的整数 a,b 和 d,有多少正整数对 x,y,满足 x≤a,y≤b,并且 gcd(x,y)=d。(1≤n≤50000,1≤d≤a,b≤50000)对于给定的整数a,b和d,有多少正整数对x,y,满足x≤a,y≤b,并且gcd(x,y)=d。(1≤n≤50000,1≤d≤a,b≤50000)证明:见acwing题解原创 2021-09-23 21:54:41 · 473 阅读 · 0 评论 -
G. Short Task(埃氏筛和线筛的灵活应用)
Codeforces Round #713 (Div. 3)题意定义:d(x) 为 x 的所有因子和。eg : d(6) = 1 + 2 + 3 + 6 = 12。有多次询问,每次查询给出一个数 c,输出满足 d(x) = c 的最小 x,如果不存在输出 -1。思路直接看代码码1O(nlogn)O(nlogn)O(nlogn)#include<bits/stdc++.h>#include<cstdio>#include<queue>#include&原创 2021-09-23 01:25:38 · 104 阅读 · 0 评论 -
G - 格子染色计数(容斥原理)
有排成一行的n个格子,你需要在 m 种颜色中选取 k 种颜色对这 n 个格子染色,要求k 种颜色都要使用,且相邻格子的颜色不同,求方案数(答案对 10。所以就可以线性预处理1 ~ n的所有数的阶乘的逆元。若使用费马小定理,此题会TLE。乘法逆元 + 容斥原理 + 线性同余方程求逆元。(具体看代码和图片)则可递推求出(n - 1)!对于求1 ~ n的阶乘的逆元,可用。原创 2021-09-21 22:12:47 · 373 阅读 · 0 评论 -
Chinese Rings(矩阵快速幂)
HDU-2842直接上大佬的题解 传送门我的代码状态矩阵 F(n)=(f(n)f(n+1)1)F(n) = \begin{pmatrix} f(n) & f(n + 1) & 1 \end{pmatrix}F(n)=(f(n)f(n+1)1)转移矩阵A=(020101011)A = \begin{pmatrix} 0 & 2 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 1 \end{pmatrix}A=⎝⎛0原创 2021-09-18 17:08:26 · 147 阅读 · 0 评论 -
206. 石头游戏(矩阵快速幂)(未找出bug。。。)
传送门#include<bits/stdc++.h>#include<cstdio>#include<queue>#include<set>#include<cstdlib>#include<string.h>#include<string>#include<iostream>#include<cmath>#include<map>#include<algori原创 2021-09-17 21:23:41 · 71 阅读 · 0 评论 -
矩阵快速幂(模板)
#include<stdio.h>#include<string.h>#define LL long long #define maxn 109 const LL mod = 1e9 + 7;const int SIZE=5; struct matrix{ LL mat[SIZE][SIZE]; matrix(){memset(mat,0,sizeof mat);} matrix operator * (const matrix & x)const原创 2021-09-18 15:53:29 · 81 阅读 · 0 评论 -
B. Combinatorics Homework(抽屉原理)
Educational Codeforces Round 114 (Rated for Div. 2)题意给出字符a,b,c的数量,判断是否可以组成一个字符串,仅有m对相邻的字符相同。(需要用完所有字符)例如:AABBCBA,有2对AAAA,有3对思路假设 a<b<ca < b < ca<b<c. 最多可以形成的对数 max=a+b+c−3max = a + b + c - 3max=a+b+c−3然后就是重点:(太巧妙了,想了一个小时没想出来)原创 2021-09-21 15:45:56 · 506 阅读 · 0 评论 -
Counting Divisors(区间素数筛)
HDU - 6069题意给定一个区间 [l,r][l, r][l,r], 求区间中每一个数的k次方的正因子数的和。正因子个数:比如12,有6个因子(1,2,3, 4, 6, 12)。题解有约数定理可知每一个数的正因子个数,但是分解因数的算法为 O(N)O(\sqrt{N})O(N)。枚举区间中每个数的因子必定tle。所以需要另寻它解。枚举 [1∼r][1\sim \sqrt{r}][1∼r]之间的质数,(若x不能被该区间中的质数整除,则x是含有比较大的质因子,需要特殊处理。1e12的区间,原创 2021-09-20 00:42:14 · 164 阅读 · 0 评论 -
中国剩余定理(非互质)
awing 204. 表达整数的奇怪方式题意给定2n个整数a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an和m1,m2,…,mnm_1,m_2,…,m_nm1,m2,…,mn,求一个最小的非负整x,满足 ∀i ∈ [ 1, n ], x≡mi(%ai)x ≡ m_i (\% \quad a_i)x≡mi(%ai)题解参考题解先浏览参考题解,再看下面图片中的题解。对于第一组方程的解,其实m[1]即为最小的解,lcm = a[1].也即让x的初始值为m[原创 2021-09-16 12:00:49 · 187 阅读 · 0 评论 -
鸽巢原理(抽屉原理)
奉上大佬链接:链接链接链接链接链接链接链接链接链接链接链接链接链接链接原创 2021-08-26 16:07:13 · 179 阅读 · 0 评论