1697 ⑨要写信
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
传送门
题目描述 Description
琪露诺(冰之妖精)有操控冷气的能力。能瞬间冻结小东西,比普通的妖精更危险。一直在释放冷气的她周围总是非常寒冷。
由于以下三点原因……
琪露诺的符卡 冰符“Icicle Fall”-Easy的弹幕有够蠢的,只要站在她的正前方就没任何弹幕会碰到你;
ZUN在《红魔乡》中介绍她时已经说她有点笨笨的了;
在ZUN放出《东方花映冢》的介绍图时,在图中把琪露诺放在了⑨的位置上,并以“⑨笨蛋”简单带过,从此“⑨”及“笨蛋”就成为她的别名了……
所以琪露诺便得到了“笨蛋”的别称。
某日,琪露诺又2了……
她写了N封信要装到N个信封里面,却全都装错了……现在想知道有多少种装错的可能性。
输入描述 Input Description
信和信封的数量N。
输出描述 Output Description
装错的可能性的数量。
样例输入 Sample Input
输入样例1
2
输入样例2
4
样例输出 Sample Output
输出样例1
1
输出样例2
9
数据范围及提示 Data Size & Hint
1≤N≤100
分类标签 Tags
动态规划 序列型DP 高精度 数学相关

/*
高精度+错排公式.
错排公式可以自己搞出来.
递推:
有n封信,第i封信装错的话有i-1种可能,
设i-1其中一个为k,那么k有两种装法:
(1):装到第i个信封里,此时剩下的i-2封信要装到i-2个信封里,就有f[i-2];
(2):装到除i之外的信封里,这时i-1的作用和i一样,剩下的就有f[i-1];
so f[i]=(i-1)*(f[i-1]+f[i-2]) .
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 201
#define MAXM 1001
using namespace std;
int f[MAXN][MAXM],n,tmp[MAXM],t[MAXM];
int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*f;
}
void slove(int x)
{memset(t,0,sizeof t);while(x) t[++t[0]]=x%10,x/=10;return ;
}
void add(int c[],int a[],int b[])
{c[0]=a[0]+b[0];for(int i=1;i<=c[0];i++){c[i]+=a[i]+b[i];c[i+1]+=c[i]/10;c[i]%=10;}if(c[c[0]+1]) c[0]++;while(!c[c[0]]&&c[0]>1) c[0]--;return;
}
void mul(int c[],int a[],int b[])
{c[0]=a[0]+b[0];for(int i=1;i<=a[0];i++){int x=0;for(int j=1;j<=b[0];j++){c[i+j-1]+=a[i]*b[j];c[i+j]+=c[i+j-1]/10;x=c[i+j-1]/10;c[i+j-1]%=10;}c[i+b[0]]=x;}while(!c[c[0]]&&c[0]>1) c[0]--;return;
}
int main()
{n=read();if(n==0){printf("1");return 0;}f[1][0]=1,f[1][1]=0;f[2][0]=1,f[2][1]=1;for(int i=3;i<=n;i++){memset(tmp,0,sizeof tmp);add(tmp,f[i-1],f[i-2]);slove(i-1);mul(f[i],t,tmp);}for(int i=f[n][0];i>=1;i--) printf("%d",f[n][i]);return 0;
}

Codevs 1697 ⑨要写信相关推荐

  1. ⑨要写信(codevs 1697)

    题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因-- 琪露诺的符卡 冰符"I ...

  2. python中json dumps_python中json.loads,dumps,jsonify使用

    search_info = {'id':132,'user_role':3} print type(search_info) #输出 #转为string用dumps print type(json.d ...

  3. 对于有关东方的题目的整理。。

    东方赛高 此为总贴 收录以东方project为背景的题目. 模拟赛套题...(25道)无数据,有题面:二次联通门 1. luogu P3345 [ZJOI2015]幻想乡战略游戏 动态点分治(暴力水过 ...

  4. 144.⑨要写信(错排公式与高精度练习)

    1697 ⑨要写信 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻 ...

  5. 7.9模拟比赛解题报告

    7.9模拟比赛 注:本场考试3道题,时间3个小时.全部为codevs上的题目 1.2124 美丽的大树 题目描述 Description 平江路是苏州最美丽的道路,路中间的绿化带上种了两行漂亮的大树, ...

  6. CodeVS 1697-⑨要写信

    原题 题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因-- 琪露诺的符卡 冰符&quo ...

  7. [ CodeVS冲杯之路 ] P1116

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1116/ 数据很小,DFS可A,每层枚举颜色,判断相邻的点是否有重复的颜色,记得回溯时把颜色染回0,即无颜色 这里我使用 ...

  8. 【贪心】【codevs】1214 线段覆盖

    http://codevs.cn/problem/1214/ 我去这个题...wa的我都没脾气了... 我写while(~scanf("%d", &n))竟然是不对的... ...

  9. [codevs 1913] 数字梯形问题

    [codevs 1913] 数字梯形问题 题解: 本题就是加强版的 [codevs 1033] 蚯蚓的游戏问题. 分别针对三个规则建图.运行最小费用最大流. 规则1:从梯形的顶至底的m条路径互不相交. ...

最新文章

  1. 这个「化学家」登上Nature封面:工作007,8天完成近700次实验,还设计出新催化剂...
  2. 动态链接到MFC的DLL(转)
  3. 模拟器真机环境_Appium+python自动化(二)- 环境搭建—下(超详解)
  4. 数据科学家 数据工程师_发展数据科学家和工程师
  5. mysql 设置时区_MySQL实战干货 | 如何处理由时区设置引发的 SQL 执行“卡顿”?...
  6. XCODE---个人常用快捷键整理
  7. CoreTextHyperlinkView
  8. linux 内核协议栈 ip_rcv_finish,Linux内核协议栈学习笔记(二)--netfilter框架
  9. Unix环境下的编程,所涉及的主要c语言知识
  10. 【gp数据库】统计常用窗口函数详解
  11. 揭秘偷渡史,福建最疯,全村一半人都出国了
  12. 网络层 详解,网络层功能,网络层协议,网络层设备。
  13. swift4.0 涂鸦画板
  14. pacman 查询_pacman
  15. 【Unity】Obi插件系列(二)—— Backends、Updaters、Simulation
  16. Python通过蒙特卡罗法计算π值
  17. 再补充三种内网穿透的方法:ngrok 、ngrok.cc、IOEE
  18. vs 2019 自带 反编译 与 Reflector 反编译工具比较
  19. xampp 配置php版本,XAMPP各个版本配置
  20. SDWAN:SD了什么?

热门文章

  1. iOS7 UUID唯一标识
  2. 解决为什么svn没有对号等符号的问题。
  3. Gdevops北京站归来
  4. 【唯一不变的是—那个夏天,你纯真的眼神】
  5. 元认知是认知的监督体系
  6. Android通用框架设计与完整电商APP开发系列文章
  7. (Pytorch)环境配置与代码学习1—边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection
  8. kettle spoon判断增量更新_使用Kettle实现数据实时增量同步--时间戳增量回滚同步...
  9. Java猿社区—ShardingSphere之广播表与绑定表
  10. Android 11 WiFi开启流程