![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
Martin20150405
博客搬家啦,http://martin20150405.github.io
(邮箱Martin20150405@163.com)
展开
-
(HDU 5726)2016 Multi-University Training Contest 1 GCD(数学)
题意请在输入法中输入GCD来了解其深刻含义给你一个序列以及一些询问,按要求输出ll到rr的GCD值,并且找出整个序列所有区间中(一共有n∗nn*n个区间)所有GCD值等于ll到rr的GCD的区间数量。即与该区间GCD相同的子串的数量子序列(subsequence)可以不连续 子串(substring)必须连续思路GCD是比较好求的,用ST预处理+O(n)O(n)查询或者线原创 2016-07-24 16:00:34 · 538 阅读 · 0 评论 -
(HDU 5728)2016 Multi-University Training Contest 1 PowMod(数论)
思路其实我并不知道要怎么做.. 官方题解代码#include <bits/stdc++.h>#define mem(a,b) memset(a,b,sizeof(a))#define rep(i,a,b) for(int i=a;i<b;i++)#define debug(a) printf("a =: %d\n",a);const int INF=0x3f3f3f3f;const in原创 2016-07-26 10:53:08 · 502 阅读 · 0 评论 -
(HDU 5794)2016 Multi-University Training Contest 6 A Simple Chess (Lucas、容斥)
思路出题人说这是一道Lucas+容斥的水题。。 哭晕在厕所。。 写一下是按马(没有马脚)的行走规则来移动的,且每次只能移动到右下方。 左上角坐标为(1,1)(1,1),右下角坐标为(n,m)(n,m) 注意左上角没有障碍物但是右下角可能有. 步数 坐标 方案数 1 (1,1) 1 2 (2,3) 1 2 (3,2) 1 3 (3,5)原创 2016-08-06 20:43:33 · 485 阅读 · 0 评论 -
HDU 5446 Unknown Treasure(lucas+中国剩余定理 / CRT)
Lucas + CRT 模版题 中间结果会爆long long Lucas: Cmnmodpk=akC_n^m \mod p_k=a_k CRT:Cmnmod(∏pk)=ansC_n^m \mod (\prod p_k)=ans#include <bits/stdc++.h>#define mem(a,b) memset(a,b,sizeof(a))#define rep(i,a,b原创 2017-02-09 10:27:55 · 533 阅读 · 0 评论 -
Codeforces Round #404 D. Anton and School - 2 (范德蒙恒等式+逆元求组合数)
D. Anton and School - 2题意给定一个字符串 s ,只含有字符 ( 和 )。问 s 有多少个子序列(可以不连续) sub ,满足如下条件:sub 不为空串sub 为偶数长度sub 串的前半串均为 (sub 串的后半串均为 )思路官方题解是推导出一个容易求解的同等情况,比较容易想到的是对于每个左括号,求得前面的左括号个数以及后面的右括号个数,求组合数相乘累加. 直接复制原创 2017-03-17 10:43:02 · 906 阅读 · 0 评论 -
POJ 1845 Sumdiv(约数和公式+等比数列求和)
约数和公式对于已经分解的整数A=(p1^k1)(p2^k2)(p3^k3)….(pn^kn) 有A的所有因子之和为 S = (1+p1+p1^2+p1^3+…p1^k1) * (1+p2+p2^2+p2^3+….p2^k2) * (1+p3+ p3^3+…+ p3^k3) * …. * (1+pn+pn^2+pn^3+…pn^kn)代码由于取模数只有9901,如果素因子刚好是9901*x原创 2017-03-30 08:17:03 · 914 阅读 · 0 评论 -
UVA 11246 - K-Multiple Free set (数论/容斥)
题意给定n和k,求一个包含元素只有1-n的集合,集合中不存在一个元素是另一个元素的k倍,求集合的最大大小思路首先,若a%k!=0,a*k的数都是要删掉的,但是a*k*k可以存在,a*k*k*k又应该删掉,以此类推就是因子有k的奇数次幂的删掉,偶数次加回来代码#include <bits/stdc++.h>#define mem(a,b) memset(a,b,sizeof(a))#define原创 2017-04-20 10:18:42 · 663 阅读 · 0 评论