HDU 4704 Sum Fermat定律】的更多相关文章

Problem Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 好难理解的题意. S(1)是代表把数字N分解为1个数,S(2)代表把N分解为2个数,S(3)代表把N分解为3个数. 其和都不等于N. 最后问把S(1) + S(2) + .. S(N)加起来的和有多少个? 就是个计数…
Sum Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4704 Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 题意…
Sum Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的总和. analyse: N可达10^100000,只能用数学方法来做. 首先想到的是找规律.通过枚举小数据来找规律,发现其实answer=pow(2,n-1); 分析到这问题就简单了.由于n非常大,所以这里要用到费马小定理:a^n ≡ a^(n%(m-1)) * a^(m-1)≡ a^(n%(m-…
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description   Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases.   题意是输入一个N,求N被分成1个数的结果+被分成2个数的结果+...+被分成N个数的结果,N很大   1.隔板原…
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的,哈哈. 一开始题意没看清(老毛病了),然后就以为用N对1e+9取模,因为给的数的范围为10100000 所以只能开数组模拟.错了一发.后来再看题,发现错了,S(n)代表的是将N分成n个数的合的不同种类. 那么求S(n)的方法就是高中数学老师教的隔板法,有点忘了.隔板法是这样的,如果N为5,那么将5写…
题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                         (全题文末) 知识点: 整数n有种和分解方法. 费马小定理:p是质数,若p不能整除a,则 a^(p-1) ≡1(mod p).可利用费马小定理降素数幂. 当m为素数,(m必须是素数才能用费马小定理) a=2时.(a=2只是题中条件,a可以为其他值) mod m =  *      //  k=…
Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 647    Accepted Submission(s): 320 Problem Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input…
Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 94    Accepted Submission(s): 41 Problem Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input fil…
Sum Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/131072K (Java/Other) Total Submission(s) : 78   Accepted Submission(s) : 30 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Sample Input 2 Sample Output 2…
Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 3980    Accepted Submission(s): 1620 Problem Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input…
题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7). 当中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                         (全题文末) 知识点: 整数n有种和分解方法. 费马小定理:p是质数,若p不能整除a.则 a^(p-1) ≡1(mod p). 可利用费马小定理降素数幂. 当m为素数,(m必须是素数才干用费马小定理) a=2时.(a=2仅仅是题中条件,a能够为其它值) mod m =   *      //…
链接:传送门 题意:求 N 的拆分数 思路: 吐嘈:求一个数 N 的拆分方案数,但是这个拆分方案十分 cd ,例如:4 = 4 , 4 = 1 + 3 , 4 = 3 + 1 , 4 = 2 + 2 , 4 = 1 + 1 + 2 , 4 = 1 + 2 + 1 , 4 = 2 + 1 + 1 , 4 = 1 + 1 + 1 + 1,共 8 种,你没有看错,这跟普通概念上的拆分数有很大的不同,拆分数不考虑顺序,即 4 = 1 + 3 与 4 = 3 + 1 是相同的,及其坑爹,所以可以发现 N…
思路:对于给定的n,s(i)即将n分解为i个数的组合数,也就是在n-1个位置插入i-1个板即C(n-1,i-1); ∑S=2^(n-1); phi(1000000007)=1000000006; 对于n>=phi,有a^n%c=a^(n%phi(c)+phi(c))%c. 代码如下: #include<cstdio> #include<cstring> #define ll __int64 #define mod 1000000007 #define phi 10000000…
题目链接 求2^n%mod的值, n<=10^100000. 费马小定理 如果a, p 互质, 那么a^(p-1) = 1(mod p)  然后可以推出来a^k % p = a^(k%(p-1))%p. #include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #…
题目 题意:将N拆分成1-n个数,问有多少种组成方法. 例如:N=4,将N拆分成1个数,结果就是4:将N拆分成2个数,结果就是3(即:1+3,2+2,3+1)--1+3和3+1这个算两个,则这个就是组合数问题. 根据隔板定理,把N分成一份的分法数为C(1,n-1), 把N分成两份的分法数为C(2,n-1), 把N分成三份的分法数为C(3,n-1),.... , 把N分成N份的分法数为C(n-1,n-1). 即我们要求的结果为: 2^(n-1)% mod  但是 [  1<=n<1e5,  mo…
题意: 这题意看了很久.. s(k)表示的是把n分成k个正整数的和,有多少种分法. 例如: n=4时, s(1)=1     4 s(2)=3     1,3      3,1       2,2 s(3)=3     1,1,2         1,2,1       2,1,1 s(4)=1       1,1,1,1 s(1)+s(2)+s(3)+s(4)=1+3+3+1=8 当n=1,2,3,4时,可以分别求出结果为    1,2,4,8 于是推出答案就是2^(n-1)---------…
首先,我们珂以抽象出S函数的模型:把n拆成k个正整数,有多少种方案? 答案是C(n-1,k-1). 然后发现我们要求的是一段连续的函数值,仔细思考,并根据组合数的性质,我们珂以发现实际上答案就是在让求2^(n-1). 然鹅我们并不能高兴地过早.因为n的数量级竟然到了丧心病狂的1e100000.连高精度都救不了它. 费马小定理 费马小定理有两种形式:  $a^{p-1}$≡1($mod$ $p$)   与 $a^p$≡$a$($mod$ $p$). 第二种形式更为通用,是因为第一种形式不能涵盖“$…
Problem Description Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 解题思路:由于指数很大,要用到欧拉降幂公式,即扩展欧拉定理:$ a^n \equiv a^{n \; mod \;\varphi(p)} (mod \; p)$,其中$gcd(a, p) = 1$.题目的意思就是给出一个N,…
很容易得出答案就是2^(n-1) 但是N暴大,所以不可以直接用幂取模,因为除法操作至少O(len)了,总时间会达到O(len*log(N)) 显然爆的一塌糊涂 套用FZU1759的模板+顺手写一个大数-1 http://acm.fzu.edu.cn/problem.php?pid=1759 标程的做法是用费马小定理 , ap-1≡1(mod p) 那么2(1e9+6)%(1e9+7) = 1  很容易得出 2k%(10e+7) = 2k%(10e+6)%(10e+7) 然后就能用快速幂了 但FZ…
HDU 3784 继续xxx定律 HDU 2578 Dating with girls(1) 做3748之前要先做xxx定律  对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数.现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输出输入的n个数中的关键数.如果…
题目看了很久没看懂 就是给你数n,一种函数S(k),S(k)代表把数n拆成k个数的不同方案数,注意如n=3,S(2)是算2种的,最后让你求S(1~n)的和模1e9+7,n<=1e100000.那么其实一个S(k)就是把n个小球放到k-1个盒子里的种类数,求和也就是求个$2^{n-1}$. n超大,但是模数只有1e9+7,用欧拉定理就行了. /** @Date : 2017-09-12 18:41:59 * @FileName: HDU 4704 欧拉定理 降幂.cpp * @Platform:…
HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tempter of the Bone [从零开始DFS(1)] -DFS四向搜索/奇偶剪枝 HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] -DFS四向搜索变种 HDOJ(HDU).1016 Prime Ring Problem (DF…
题目大意: 给你一个总和(total)和一列(list)整数,共n个整数,要求用这些整数相加,使相加的结果等于total,找出所有不相同的拼凑方法. 例如,total = 4,n = 6,list = [4,3,2,2,1,1]. 有四种不同的方法使得它们相加的结果等于total(即等于4),分别为:4,3+1,2+2, 2+1+1. 在同一种拼凑方式中,每个数字不能被重复使用,但是在list中可能存在许多相等的数字. 输入: 输入包含许多测试用例,每个用例仅占一行.每个用例包含t(total)…
C - 最大连续子序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1231 Appoint description: Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.最大连续子…
http://acm.hdu.edu.cn/showproblem.php?pid=4704 求(2^n)%mod的方法 #include <iostream> #include <cstdio> #include <cstring> #include <set> #include <vector> #include <queue> using namespace std ; //(2^n)%mod=(2^(n%(mod-1)))%m…
sum 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5776 Description Given a sequence, you're asked whether there exists a consecutive subsequence whose sum is divisible by m. output YES, otherwise output NO Input The first line of the input has an i…
Sum Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5586 Description There is a number sequence A1,A2....An,you can select a interval [l,r] or not,all the numbers Ai(l≤i≤r) will become f(Ai).f(x)=(1890x+143)mod1…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5586 Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 677    Accepted Submission(s): 358 Problem Description There is a number sequence A1,A2...…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4432 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int sum; int n,k; int tranfer(int num) { ; ) { int a = num%k; num = num/k; ret +…
http://acm.hdu.edu.cn/showproblem.php?pid=4407 题意:给定初始n个数1..n,两个操作,①1 x y p  询问第x个数到第y个数中与p互质的数的和; ②:2 x y  把第x个数变成y: 思路: 把p分解质因子,然后找出(1,pos)内与p不互质的,然后用的减去就是互质的和,第二个操作用到map映射,记录在那个位置改变之后的数. #include <cstdio> #include <cstring> #include <map…