我们的可可西里

题面

转眼到了2008年的6月9日,盼望已久的高考结束了。我们踏上了向西的旅程(本来是想写西去之路,可是考虑不太妥当)。可可西里,多么诱人的名词,充满了奇幻的色彩和自然的淳朴。从可可西里徒步走回家的决定是在1年半前定下的,而现在,终于可以实现那个钩过手指的预定。我们的可可西里。。。

在回家的路上,疯子和蚊子看到了许多可爱的藏羚羊,无意之中疯子和蚊子发现藏羚羊的居住地的分布也是有规律的,虽然疯子和蚊子早就听说藏羚羊是一种群体性很强又有超高IQ的动物,但是还是为它们的居住地分布规律感到惊叹。经过细心的观察,疯子和蚊子发现,如果假设一个藏羚羊群体有N只羊,就可以把它们的领地当做一个N*N的方阵,在这个方阵上第I列的第I 行都有一个圣地,它们不会居住在圣地,同时每行每列只能居住一只羚羊。于是他们很快算出一个有N只羊的藏羚羊群体的居住地分布方法数。

这是圣地的一种排列方法

输入格式

一个整数N 代表藏羚羊的个数

输出格式

一个整数sum代表方法数

样例

\(\texttt{input\#1}\)

4

\(\texttt{output\#1}\)

9

数据范围与提示

对于30%的数据,n<=10

对于全部数据 n<=1000


题解

错排。高精度(毒瘤)。


\(Code\)

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm> int n;
std::string f[1001]={"0","0","1","2"}; inline std::string jia(std::string a,std::string b) {
std::string ans="",cheng1="",cheng2="";
int len=a.length();
for(int i=len-1;i>=0;--i) cheng1+=a[i];
len=b.length();
for(int i=len-1;i>=0;--i) cheng2+=b[i];
int len1=cheng1.length(),len2=cheng2.length();
int sum=0;
char jinwei=0,c1,c2;
while(sum<len1||sum<len2) {
c1=cheng1[sum]-48;
c2=cheng2[sum]-48;
if(c1<0) c1=0;
if(c2<0) c2=0;
if(sum>=len1) c1=0;
if(sum>=len2) c2=0;
c1+=c2;
c1+=jinwei;
jinwei=0;
if(c1>9) {
jinwei=c1/10;
c1=c1%10;
}
ans+=c1+'0';
sum++;
}
while(jinwei!=0) {
char qwq=jinwei/10;
jinwei=jinwei%10;
ans+=jinwei+'0';
jinwei=qwq;
}
std::string anss="";
len=ans.length();
for(int i=len-1;i>=0;--i) anss+=ans[i];
return anss;
} inline std::string cheng(int n,std::string a) {
std::string ans="",cheng1="",cheng2="";
while(n) {
cheng1+=n%10+'0';
n/=10;
}
int len=a.length();
for(int i=len-1;i>=0;--i) cheng2+=a[i];
int len1=cheng1.length(),len2=cheng2.length();
std::string qwq="0",qaq="",emm="";
char jinwei=0;
for(int i=0;i<len1;++i) {
qaq="",emm="";
int x=i;
while(x) {
--x;
qaq+='0';
}
for(int j=0;j<len2;++j) {
char c2=cheng2[j]-'0',c1=cheng1[i]-'0';
c1*=c2;
c1+=jinwei;
jinwei=0;
if(c1>9) {
jinwei=c1/10;
c1%=10;
}
qaq+=c1+'0';
}
while(jinwei!=0) {
char wasd=jinwei/10;
jinwei%=10;
qaq+=jinwei+'0';
jinwei=wasd;
}
int len=qaq.length();
for(int j=len-1;j>=0;--j) emm+=qaq[j];
qwq=jia(qwq,emm);
}
return qwq;
} inline std::string jiaqwq(std::string qaq) {
int len=qaq.length();
std::string ans="",qwq="";
char jinwei=1;
for(int i=len-1;i>=0;--i) {
qaq[i]-='0';
qaq[i]+=jinwei;
jinwei=0;
ans+=qaq[i]%10+'0';
if(qaq[i]>9) jinwei=qaq[i]/10;
}
len=ans.length();
for(int i=len-1;i>=0;--i) qwq+=ans[i];
return qwq;
} int main() {
std::cin>>n;
for(int i=4;i<=n;++i) {
std::string qwq=jia(f[i-1],f[i-2]);
f[i]=cheng(i-1,qwq);
}
std::cout<<f[n];
return 0;
}

上接【CSP-S膜你考】那23个路口

【CSP-S膜你考】我们的可可西里的更多相关文章

  1. 【CSP-S膜你考】那23个路口

    那23个路口 题面 故事的起源不加赘述,那23个路口. 单刀直入,我直接说题的意思. 蚊子和疯子在做一件事,就是他们要在茫茫的大街上找一个出发点,然后从出发点开始,经过上下左右23次拐弯,到达一个他们 ...

  2. 【CSP-S膜你考】即时战略(模拟)

    Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...

  3. 【CSP-S膜你考】不怕噩梦 (模拟)

    不怕噩梦 题面 蚊子最近经常做噩梦,然后就会被吓醒.这可不好.. 疯子一直在发愁,然后突然有一天,他发现蚊子其实就是害怕某些事. 如果那些事出现在她的梦里,就会害怕. 我们可以假定那个害怕的事其实是一 ...

  4. 【CSP-S膜你考】 A

    A 题面 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) , 其中每个正整数都能表示成两个质数乘积. 输入格式 第一行一个正整数 q,表示询问组数. 接下来 q 行,每行一个 ...

  5. 【CSP-S膜你考】最近公共祖先 (数学)

    Problem A. 最近公共祖先 (commonants.c/cpp/pas) 注意 Input file: commonants.in Output file: commonants.out Ti ...

  6. N(C)O(S)I(P)P 2019 退役记

    N(C)O(S)I(P)P 2019 退役记 day-4 今天下午老师突然咕了,于是一下午欢乐时光 今天上午考试T3线段树维护个区间加,区间乘 一遍过编译,一遍过样例(第一次,俺比较弱(虽然也发现和暴 ...

  7. 杂记三 &#183; CSP-2019-The first step

    update:我终于懂得衰亡的民族之所以沉默的缘由了. 初赛Day -7 虽然我是第一次参加初赛而且到现在为止我还没见过初赛题但我一点也不慌! 真的!一点!也不慌! 初赛Day 1 早上和可s爱b j ...

  8. 日记 + sb错误

    置顶消息cpdd 1.29 完了,文化课没了 我是废物 1.28 更新了自己的副标题 前副标题:Future never has to do with past time,but present ti ...

  9. 「CSP」第一届提高组考后总结

    「CSP」第一届提高组考后总结 问题分析+反思 成绩 心态 考前心态 考时心态 考后心态 方法 心灵鸡汤... 在学习了三年之后,我们信竞迎来了初中最后一次大考,也是第一次 CSPCSPCSP 考试. ...

随机推荐

  1. [Python学习笔记-008] 使用双向链表去掉重复的文本行

    用Python处理文本文件是极方便的,当文本文件中有较多的重复的行的时候,将那些重复的行数去掉并打印诸如"...<repeats X times>..."有助于更好的浏 ...

  2. 从时序异常检测(Time series anomaly detection algorithm)算法原理讨论到时序异常检测应用的思考

    1. 主要观点总结 0x1:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...

  3. opc 相关组件

    http://external.informer.com/opcsystems.com/download_opc_systems_net.htm

  4. JAVA WEB面试总结

    本文目录: 1. 什么是cookie 2. 什么是session 3.什么是Servlet,Servlet生命周期方法 4.JSP隐含对象 5.JSP的四个域对象的作用范围 6.转发和重定向的区别 7 ...

  5. 2019-08-26 linux

    1.question:什么是linux? answer:Linux由林纳斯·托瓦兹开发的一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU ...

  6. js中this绑定方式及如何改变this指向

    this的绑定方式基本有以下几种: 隐式绑定 显式绑定 new 绑定 window 绑定 箭头函数绑定 隐式绑定 第一个也是最常见的规则称为 隐式绑定. var a = { str: 'hello', ...

  7. javascript format 字符串 函数

    函数实现如下: function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + ...

  8. 一个判断js数据类型的函数

    function judgeType(change) { if (arguments.length == 0) { return '0';//无参数传入 } if (change === null) ...

  9. Vue.js最佳实践--给大量子孙组件传值(provide/inject)

    开发中有个需求,有个Parent组件(例如div)下,输入框,下拉框,radiobutton等可编辑的子孙组件几百个,根据某个值统一控制Parent下面的所有控件的disabled状态 类似于这样,给 ...

  10. 在dockers中调试dump的dotnet程序

    其他调试参考文章 centos7使用lldb调试netcore应用转储dump文件 centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试) 生成dump文件 如何在 ...