51nod 1556 计算(默慈金数)
来源:互联网 发布:android 仿淘宝搜索 编辑:程序博客网 时间:2024/06/05 19:19
这题要用到默慈金数,又涨知识了。
默慈金数:http://blog.csdn.net/acdreamers/article/details/41213667
题解:http://blog.csdn.net/qingshui23/article/details/52068031
在这里默慈金数是用来排除错误走法的。当时我没想明白为啥错误的走法是M[n-2],就在51nod问了一下,回答如下:
using System;using System.IO;namespace timeless{ class Program { private static Int64 MAXN = (Int64)1e6+10; private static Int64 mod = (Int64)1e9 + 7; private static Int64 extend_gcd(Int64 a, Int64 b, ref Int64 x, ref Int64 y) { if (a == 0 && b == 0) return -1; if (b == 0) { x = 1; y = 0; return a; } Int64 d = extend_gcd(b,a%b,ref y,ref x); y = y - a / b * x; return d; } private static Int64 mod_reverse(Int64 a) { Int64 x = 0,y = 0; Int64 d = extend_gcd(a,mod,ref x, ref y); if(d == 1) return (x%mod+mod)%mod; else return -1; } static void Main(string[] args) { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); Int64 n = Convert.ToInt64(sr.ReadLine()); Int64[] ans = new Int64[MAXN]; Int64[] M = new Int64[MAXN]; Int64 x; M[1] = 1; M[2] = 2; for (Int64 i = 3; i <= n; ++i) { x = mod_reverse(i+2); M[i] = (((2 * i + 1) * M[i - 1]) % mod + ((3 * i - 3) * M[i - 2]) % mod) * x; M[i] = (M[i] % mod + mod) % mod; } ans[1] = 1; ans[2] = 2; for (Int64 i = 3; i <= n; ++i) { ans[i] = (3 * ans[i - 1] - M[i - 2]); ans[i] = (ans[i] % mod + mod) % mod; } sw.WriteLine(ans[n]); sw.Flush(); sr.Close(); sw.Close(); } }}
阅读全文
0 0
- 51nod 1556 计算(默慈金数)
- 51nod-1556 计算(默慈金数)
- 51 nod 1556 计算
- 【51Nod 1556】计算
- 51nod 1556 计算
- 51nod 1556 计算
- 51Nod-1556-计算
- 默慈金数学习小记 && 51nod 1556 计算
- 51nod--1298 (计算几何基础)
- 51 nod 1298(计算几何)@
- 51nod 1719 数值计算
- 51Nod-1719-数值计算
- 51nod--1264 线段相交 (计算几何基础, 二维)
- 51NOD 1265 四点共面(计算几何)
- 【51Nod】1298 - 圆与三角形(计算几何)
- 【51Nod】1264 - 线段相交(计算几何)
- 51Nod 1298 圆与三角形 (计算几何)
- 51Nod 1264 线段相交 (计算几何)
- 自定义Textview显示自动换行
- palsquare-section1.2
- SQL语句中where与having的区别
- Android Gradle 完整指南
- jxl导入导出Excel
- 51nod 1556 计算(默慈金数)
- IIS启动时的问题
- arcgis for js画扇形并给它填充不同的颜色
- system引发的问题
- js操作效果之showTips与createBg
- MySQL学习笔记(1)
- Codeforces Round #416 (Div. 2)
- setsockopt设置socket状态
- 推荐一款Mybatis分页插件