zoukankan      html  css  js  c++  java
  • ZZNU 1988: Sn

    题目描述

    给你两个数 n, p(0 < n,p <= 10^15);
    a1 = 1; 
    a2 = 1+2; 
    a3 = 1+2+3; 
    ...
    an = 1+2+3+...+n 
     
    Sn = a1+a2+a3+...+an;
     
    求(6*Sn) % p;

    输入

     输入一个数 T表示有T组实例;

    每组样例输入两个整数 n , p
     

    输出

     输出结果;

    样例输入
    2
    1 1234567
    2 1234567
    
    样例输出
    6
    24

    题目链接:http://acm.zznu.edu.cn/problem.php?id=1988

    *********************************************

    分析:公式n*(n+1)*(n+2)%p;

    两个 long long 的数直接相乘会爆long long,所以两两相乘。

    AC代码:

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include<limits.h>
     6 #include <cmath>
     7 #include <cstdlib>
     8 #include <stack>
     9 #include <vector>
    10 #include <queue>
    11 #include <map>
    12 
    13 using namespace std;
    14 
    15 #define N 2000000
    16 #define INF 0x3f3f3f3f
    17 #define met(a, b) memset (a, b, sizeof (a))////  met (dist, -1);
    18 #define LL long long
    19 
    20 LL q(LL a,LL b,LL p)
    21 {
    22    if(b==0)
    23     return 0;
    24 
    25    LL ans=2*q(a,b/2,p)%p;
    26 
    27    if(b%2)
    28     ans=(ans+a)%p;
    29    return ans;
    30 }
    31 int main()
    32 {
    33     int T;
    34     LL n,p;
    35 
    36     scanf("%d", &T);
    37 
    38     while(T--)
    39     {
    40        scanf("%lld %lld", &n,&p);
    41 
    42        LL ans=q(n+1,n,p);
    43        ans=q(ans,n+2,p);
    44        printf("%lld
    ", ans);
    45     }
    46     return 0;
    47 }
    48 ///公式n*(n+1)*(n+2)%p;
    49 ///两个 long long 的数直接相乘会爆long long;所以两两相乘
  • 相关阅读:
    关于AJAX与form表单提交数据的格式
    MongoDB
    Redis
    在django中使用django_debug_toolbar进行日志记录
    python第三方库,你要的这里都有
    Django之用户认证auth模块
    Django中常用命令
    form表单钩子,局部钩子和全局钩子
    当我开始爱自己
    FOR YOU
  • 原文地址:https://www.cnblogs.com/weiyuan/p/5812832.html
Copyright © 2011-2022 走看看