NYOJ 640 Geometric Sum

Geometric Sum

时间限制:1000 ms  |  内存限制:65535 KB

难度:3

描述
Compute (a + a^2 + … + a^n) mod m.

输入
Three integers a,n,m.

(1≤a,n,m≤10^18)

It ends with EOF.

输出
The only integer denotes the result.
样例输入
2 2 1000000000
样例输出
6 
别人的AC码:
#include <stdio.h>
typedef long long LL;
LL Mod;
LL multMod(LL a,LL b)
{
    LL res = 0,base = a;
    while(b)
    {
        if(b&1)
            (res += base) %= Mod;
        (base <<= 1) %= Mod;
        b >>= 1;
    }
    return res;
}

LL powerMod(LL a,LL n)
{
    LL res = 1 , base = a;
    while(n)
    {
        if(n&1)
            res = multMod(res,base);
        base = multMod(base,base);
        n >>= 1;
    }
    return res;
}

LL solve(LL a,LL n)
{
    if(n == 1)
        return a;
    LL halfsum = solve(a,n >>1);
    if(n&1)
    {
        LL half = powerMod(a,n+1 >>1);
        return (halfsum + half + multMod(half,halfsum)) % Mod;
    }
    else
    {
        LL half = powerMod(a,n >>1);
        return (halfsum + multMod(half,halfsum)) % Mod;
    }
}

int main()
{
    LL a,n;
    while(~scanf("%lld%lld%lld",&a,&n,&Mod)){
    a %= Mod;
    printf("%lld\n",solve(a,n));
    }
	return 0;
}
        

NYOJ 640 Geometric Sum

时间: 2024-10-14 07:14:22

NYOJ 640 Geometric Sum的相关文章

nylg 640 Geometric Sum

Geometric Sum 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 Compute (a + a^2 + - + a^n) mod m.(a+a2+-an)mod 输入 Three integers a,n,m.(1≤a,n,m≤10^18)It ends with EOF. 输出 The only integer denotes the result. 样例输入 2 2 1000000000 样例输出 6 来源 Lepus  矩阵里也求过a+a^2+a^3

NYoj The partial sum problem(简单深搜+优化)

题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=927 代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <math.h> 5 #include <algorithm> 6 #include <iostream> 7 using namespace std; 8

nyoj 927 The partial sum problem(dfs)

描述 One day,Tom’s girlfriend give him an array A which contains N integers and asked him:Can you choose some integers from the N integers and the sum of them is equal to K. 输入 There are multiple test cases. Each test case contains three lines.The firs

NYOJ 927 The partial sum problem 【DFS】+【剪枝】

The partial sum problem 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 One day,Tom's girlfriend give him an array A which contains N integers and asked him:Can you choose some integers from the N integers and the sum of them is equal to K. 输入 There are mul

NYOJ 215 Sum

Sum 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 Consider the natural numbers from 1 to N. By associating to each number a sign (+ or -) and calculating the value of this expression we obtain a sum S. The problem is to determine for a given sum S the minim

NYOJ 237 游戏高手的烦恼 &amp;&amp; POJ3041-Asteroids ( 二分图的最大匹配 )

链接: NYOJ 237  游戏高手的烦恼:click here~~ POJ  3041 Asteroids           :click here~~ 题意: 两题一样,翻译不同而已. 有一位传说级游戏高手,在闲暇时间里玩起了一个小游戏,游戏中,一个n*n的方块形区域里有许多敌人,玩家可以使用炸弹炸掉某一行或者某一列的所有敌人.他是种玩什么游戏都想玩得很优秀的人,所以,他决定,使用尽可能少的炸弹炸掉所有的敌人. 现在给你一个游戏的状态,请你帮助他判断最少需要多少个炸弹才能炸掉所有的敌人吧.

NYOJ 106 背包问题

背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10):如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大. 输入 第一行输入一个正整数n(1<=n<=5),表示有n组测试数据: 随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10

NYOJ 891 找点

找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮帮他吗? 输入 多组测试数据. 每组数据先输入一个N,表示有N个闭区间(N≤100). 接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点. 输出 输出一个整数,表示最少需要找几个点. 样例输入 4 1 5 2 4 1 4 2 3 3 1 2 3 4 5 6 1 2 2 样例

NYOJ 630 Problem of IP

Problem of IP 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 众所周知,计算机只能识别二进制数据,而我们却习惯十进制.所以人们发明了点分十进制来表示IP地址.即用以点分开的四个十进制数表示32位的二进制IP地址,每个数字代表IP地址中的8位.现在需要你编写程序实现二者之间的转换. 输入 输入包含多组测试数据.每组一行或为32位01字符串,或为一个点分十进制字符串. 输出 对于每一组输入,输出包含一行,为对应的另一种格式的IP地址 样例输入 000000