vijosP1687 细菌总数
vijosP1687 细菌总数
【思路】
错排公式+高精度。
题目要求排列数目而且不能有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 细菌总数的更多相关文章
- Sql Server数据库小知识点总结
把我在开发时候遇到的一点小知识持续更新在这里~ 1.where条件时常变 where UserID='1' 这里的UserID呢,它的值是经常在变化的,有时候要查2,有时候要查3的,有时候要查全部人! ...
- TOPSIS算法
title: TOPSIS算法 date: 2020-02-24 11:18:06 categories: 数学建模 tags: [评价模型, MATLAB] mathjax: true 定义 C ...
- 题解 CF1348D 【Phoenix and Science】
题目大意,每天细菌会在早上选择分裂,晚上生长. 观察题目,我们可以发现.不管我们怎么分裂细菌,这一天晚上的总质量都是前一天晚上的总质量加上今天的细菌数. 那么我们肯定希望细菌分裂的越多越好,这样我们减 ...
随机推荐
- STL:remove和erase区别
C++ STL中的remove和erase函数曾经让我迷惑,同样都是删除,两者有什么区别呢? vector中的remove的作用是将等于value的元素放到vector的尾部,但并不减少vector的 ...
- linux下多线程踩过的坑(不定更新)
1,多线程下整个进程的退出 <<APUE>>关于进程环境一章中指出了进程退出的8个条件: ... (4)最后一个线程从启动例程中返回 (5)最后一个线程调用pthread_ex ...
- React新接触
html5页面的开始引入: <script src="../build/react.js"></script> <!--核心库--> < ...
- jQuery移除指定元素后的所有元素
jQuery 遍历的nextAll() 方法可以搜索 DOM 树中的元素跟随的同胞元素,也就是一个元素后面的所有同级元素,删除可以使用方法remove(),所以连起来为 $(selector).nex ...
- PHP中的预定义超全局数组
定义 超全局变量,是在全部作用域中始终可用的内置变量. PHP中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用. 在函数或方法中无需执行 global ...
- [转]ef获取某个表中的部分字段值
我有个新闻表 id,title,body,createtime,author,click 使用ef4.1 仅仅读取 id,title,createtime 并显示在页面上. public static ...
- Mvc学习笔记(3)
控制器将处理后的数据"传"给视图的方式 public ActionResult Test() { List<Student> stuList = new List< ...
- 贴板子系列_1-exgcd
exgcd ll exgcd(ll a,ll b,ll &x,ll &y) { ) { x=;y=;return a; } ll r=exgcd(b,a%b,x,y); ll t=x; ...
- UIStackView 简单使用
UIStackView提供了一个高效的接口用于平铺一行或一列的视图组合.对于嵌入到StackView的视图,你不用再添加自动布局的约束了.Stack View管理这些子视图的布局,并帮你自动布局约束. ...
- Python 类 setattr、getattr、hasattr 的使用
#coding=utf-8 class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = n ...