HDU 1452 Happy 2004 數論

來源:互聯網
上載者:User

標籤:acm   http   分享   set   lld   mod   tor   pen   deque   

  題目連結: http://acm.hdu.edu.cn/showproblem.php?pid=1452

  題目描述: 讓你求2004^x的所有因數之和, 模29

  解題思路: 先將2014質因數分解, 2^2 * 3 * 167, 所以所有因數的個數就是(2x+1)*(x+1)*(x+1) , 我們列出公式, 相當於一個空間直角座標系, 我們先將x, y平面上的點相加, 再加z軸上的, 最後得出公式

          ans = (3^(x+1)-1) * (167^(x+1)-1)*(2^(2*x+1)-1)/332   即可, 注意逆元

  代碼: 

#include <iostream>#include <cstdio>#include <string>#include <vector>#include <cstring>#include <iterator>#include <cmath>#include <algorithm>#include <stack>#include <deque>#include <map>#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1#define mem0(a) memset(a,0,sizeof(a))#define sca(x) scanf("%d",&x)#define de printf("=======\n")typedef long long ll;using namespace std;const int mod = 29;ll q_power( ll a, ll b ) {    ll ret = 1;    while( b ) {        if( b & 1 ) ret = ret * a % mod;        b >>= 1;        a = a * a % mod;    }    return ret % mod;}ll exgcd(ll a, ll b, ll &x, ll &y) {    if(b == 0) {        x = 1;        y = 0;        return a;    }    else {        ll ret = exgcd(b, a%b, x, y);        ll tmp = x;        x = y;        y = tmp - a / b * y;        return ret;    }}ll inv(ll a) {    ll x, y;    exgcd(a, mod, x, y);    return (x % mod + mod) % mod;}int main() {    ll x;    while( scanf( "%lld", &x ) == 1 && x ) {        ll ans;        ll a = q_power(3, x+1);        ll b = q_power(167, x+1);        ll c = q_power(2, 2*x+1);        ans = (a*b*c-a*c-b*c+c-a*b+a+b-1) * inv(332) % mod;        printf( "%lld\n", ans );    }    return 0;}
View Code

  思考: 通過本題自己對逆元的理解也深了一些, 之前一直模稜兩可的.......還有這種題都是有套路的, 題做多了就好了

a*b*c-a*c-b*c+c-a*b+a+b

a*b*c-a*c-b*c+c-a*b+a+b

a*b*c-a*c-b*c+c-a*b+a+b

HDU 1452 Happy 2004 數論

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.