hdu 2065 "红色病毒"问题
Posted kindleheart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 2065 "红色病毒"问题相关的知识,希望对你有一定的参考价值。
n=1 --> ans = 2 = 1*2 = 2^0(2^0+1)
n=2 --> ans = 6 = 2*3 = 2^1(2^1+1)
n=3 --> ans = 20 = 4*5 = 2^2(2^2+1)
n=4 --> ans = 72 = 8*9 = 2^3(2^3+1)
n=k --> ??? = 2^k-1*(2^k-1+1)
于是题目转化为快速幂问题.....
#include<bits/stdc++.h> using namespace std; typedef long long ll; int solve(ll a, ll b) { ll ans = 1; a %= 100; while(b) { if(b&1) ans = ans *a % 100; b /= 2; a = a * a % 100; } return ans; } int main() { int t; while(cin >> t && t) { for(int i = 1; i <= t; i++) { ll n; cin >> n; n = solve(2, n-1); printf("Case %d: %d ", i, (n*(n+1))%100); } printf(" "); } return 0; }
以上是关于hdu 2065 "红色病毒"问题的主要内容,如果未能解决你的问题,请参考以下文章