HDU3524 Perfect Squares 数论
2016-06-13 00:00
162 查看
/* 还是暴力打表,然后规律 递推公式: a =4*a[n-1]+5(n为奇数) a =4*a[n-2]+5(n为偶数) 结果: ans=2*4^n-5*(4^n-1)/3(n为奇数) ans=2*4^n-4*(4^n-1)/3(n为偶数) 这里由于涉及到除法取余,所以还要把3的逆元求出来 */ #include<stdio.h> #include<stdlib.h> #define mod 10007 //非递归方法求p^b __int64 power(__int64 p,__int64 b) { __int64 sq=1; while(b>0) { if(b%2==1) sq=(sq%mod)*(p%mod)%mod; p=(p%mod)*(p%mod)%mod; b=b/2; } return sq%mod; } int main() { __int64 n,tmp,a,b,thr,t,T; scanf("%I64d",&T); for(t=1;t<=T;t++) { scanf("%I64d",&n); thr=power(3,mod-2); if(n==1||n==2) { printf("Case #%I64d: 2\n",t); continue; } //2*4^n-5*(4^n-1)/3 if(n&1) { n=n-2; n=(n+1)/2; tmp=power(4,n); a=2*tmp%mod; b=(5*thr%mod)*(((tmp-1)%mod+mod)%mod)%mod; printf("Case #%I64d: %I64d\n",t,((a-b)%mod+mod)%mod); } //2*4^n-4*(4^n-1)/3 else { n=n-2; n=n/2; tmp=power(4,n); a=2*tmp%mod; b=(4*thr%mod)*(((tmp-1)%mod+mod)%mod)%mod; printf("Case #%I64d: %I64d\n",t,((a-b)%mod+mod)%mod); } } return 0; }
相关文章推荐
- 开源JEE企业通用框架 (Bootstrap javascript spring boot)
- iPhone html5页面 手机号码不显示,显示一下后又消失解决办法
- Day2-HTML概述
- Day3-HTML基本语法
- Day4-HTML初探
- Day5-HTML基本语法之颜色的设置
- Day6-HTML 特殊字符-实体
- Day7-HTML主题结构
- Day9-HTML body属性
- Day-10 HTML图像标签
- Day11-HTML 超链接
- Day12-HTML标签锚点的使用
- 使用important规则微调样式的顺序
- html移动Web开发----优化浏览器视口宽度设置
- 文本超出编辑区域用省略号替代的css写法
- javascript 数组
- javascript面向对象技术
- javascript根据键盘key值触发按钮
- jQuery.extend 函数详解
- css3 背景渐变