HDU 3003
2013-08-06 15:37
316 查看
一道比较简单的数学题。
题目要求的是n层皮肤都has been changed from opacity to clarity(变过透明)
设有n层皮肤,f(n)表示n层全部变成透明需要的天数,g(n)表示n层全部都变过透明需要的天数。
那么,f(n)=2*f(n-1)+1 g(n)=f(n-1)+1 f(1)=1 g(1)=1;
可推出g(n)=2^(n-1)
题目的输出结果为:(g(n-1)+1)%n
ps:n会超int
题目要求的是n层皮肤都has been changed from opacity to clarity(变过透明)
设有n层皮肤,f(n)表示n层全部变成透明需要的天数,g(n)表示n层全部都变过透明需要的天数。
那么,f(n)=2*f(n-1)+1 g(n)=f(n-1)+1 f(1)=1 g(1)=1;
可推出g(n)=2^(n-1)
题目的输出结果为:(g(n-1)+1)%n
ps:n会超int
#include<stdio.h> #include<iostream> using namespace std; long long n; long long quickpow(long long k) { long long tmp; if(k==0) return 1; if(k==1) return 2%n; tmp=quickpow(k/2); if(k%2) return ((tmp*tmp)%n)*2%n; else return (tmp*tmp)%n; } int main() { while(1) { scanf("%d",&n); if(n==0) return 0; printf("%I64d\n",(quickpow(n-1)+1)%n); } }
相关文章推荐
- hdu 3003 Pupu
- HDU - 3003 - Pupu(快速幂)
- hdu 3003 Pupu
- HDU 3003
- hdu 3003 快速幂取模
- HDU 3003 (二进制法)
- 快速幂取模——Pupu(HDU 3003)
- HDU 3003 (二进制法)
- HDU - 3003 - Pupu (快速幂取模!)
- hdu 3003 Pupu
- HDU 3003 PuPu(N非常大 语死早)
- hdu 3003 pupu ( (题目易混淆概念、详解) 二分快速幂 )
- hdu 3003 背包
- HDU 3003 Pupu
- HDU 2017 多校联合训练赛3 3003 6058 Kanade's sum 枚举 模拟链表
- hdu 3003 【二分快速幂】
- hdu1068 Girls and Boys
- HDU - 4726 Kia's Calculation (贪心 数字加和错误运算处理)
- hdu 2196
- HDU 1527 取石子游戏