vijosP1687 细菌总数

链接:https://vijos.org/p/1687

【思路】

错排公式+高精度。

题目要求排列数目而且不能有Pi==i的情况出现,可以看出这正是1,2,3,4,5,…n的错排数目。应用错排公式以及高精高精加、高精单精乘即可。

【代码】

 #include<iostream>
#include<cstring>
#include<cmath>
using namespace std; struct Bign{
int len,N[];
Bign() {
memset(N,,sizeof(N));
}
}; int n; void Add(Bign& a,Bign b) {
a.len=max(a.len,b.len);
for(int i=;i<a.len;i++) {
a.N[i] += b.N[i];
a.N[i+] += a.N[i]/;
a.N[i] %= ;
}
if(a.N[a.len]) a.len++;
} void multi(Bign& a,int x)
{
for(int j=;j<a.len;j++) a.N[j] *= x;
int i=;
while(i<a.len || a.N[i]>) {
a.N[i+] += a.N[i]/;
a.N[i] %= ;
i++; //i++
}
if(a.N[i]) a.len=i+; //判断
else a.len=i;
} int main() {
cin>>n;
Bign D[];
D[].len=D[].len=D[].len=; D[].N[]=; D[].N[]=;
for(int i=;i<=n;i++)
{
memset(D[].N,,sizeof(D[].N));
Add(D[],D[]); Add(D[],D[]);
multi(D[],i-);
D[]=D[]; D[]=D[];
}
for(int i=D[].len-;i>=;i--) cout<<D[].N[i];
return ;
}

vijosP1687 细菌总数的更多相关文章

  1. Sql Server数据库小知识点总结

    把我在开发时候遇到的一点小知识持续更新在这里~ 1.where条件时常变 where UserID='1' 这里的UserID呢,它的值是经常在变化的,有时候要查2,有时候要查3的,有时候要查全部人! ...

  2. TOPSIS算法

    title: TOPSIS算法 date: 2020-02-24 11:18:06 categories: 数学建模 tags: [评价模型, MATLAB] mathjax: true 定义 ​ C ...

  3. 题解 CF1348D 【Phoenix and Science】

    题目大意,每天细菌会在早上选择分裂,晚上生长. 观察题目,我们可以发现.不管我们怎么分裂细菌,这一天晚上的总质量都是前一天晚上的总质量加上今天的细菌数. 那么我们肯定希望细菌分裂的越多越好,这样我们减 ...

随机推荐

  1. Demo_张仕传_结构体考试-modify

    /* 题目: //声明一个结构体类型 struct _AdvTeacher { char *name; char *tile; int age; char *addr; char *p1; //系统预 ...

  2. React组件二

    <script type="text/babel"> <!-- this.props.children表示读取组件的所有子节点-->var Zu=React ...

  3. FusionCharts xml入门教程

    由于项目需求需要做一个报表,选择FusionCharts作为工具使用.由于以 前没有接触过报表,网上也没有比较详细的fusionCharts教程,所以决定好好研究FusionCharts,同时做一个比 ...

  4. Codeforces Round #336 (Div. 1) A - Chain Reaction

    Chain Reaction 题意:有n(1 ≤ n ≤ 100 000) 个灯泡,每个灯泡有一个位置a以及向左照亮的范围b (0 <= a <= 1e6 ,1<= b <= ...

  5. citrix xen server 虚拟机无法关闭的问题

    悲剧的一台windows的虚拟机无法重启无法关机.如下图,一直卡住不动. 首先找到这台机器: [root@xenserver- xen]# xe vm-list name-label=-vss\ se ...

  6. keilkill.bat

    一.批处理文件 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文 ...

  7. 7 -- Spring的基本用法 -- 8...

    7.8 深入理解容器中的Bean 7.8.1 抽象Bean与子Bean 把多个<bean.../>配置中相同的信息提取出来,集中成配置模版------这个配置模版并不是真正的Bean,因此 ...

  8. DataGrid点击上下一页loading效果

    js添加显示loading和取消loading方法 function showtbloading() { var target = $("#GridView1"); if (tar ...

  9. 运行 Docker 容器时的安全风险:别丢了你的套接字

    我们都遇到过这种情况:你只是想尝试一段命令行,但安装进程却如同抵押贷款申请那般繁琐.如果不是强制要求完成这么多步骤,你的开发环境会被永远不会再使用的库弄乱.自然, Docker 来了以后,你惊异地发现 ...

  10. 使用 .NET 平台,如何玩转 Universal Windows 应用?

    2015年7月30日 本文作者是 Managed Languages 团队项目经理 Lucian Wischik. 不久前,Visual Studio 2015上新增 Windows 10 应用的开发 ...