我们的可可西里

题面

转眼到了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. centos7.x下环境搭建(四)—redis安装

    redis介绍 redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串.列表 ...

  2. CSS之flex布局和边框阴影

    flex布局 main axis:主轴:cross axis:交叉轴 容器的子元素自动成为容器成员,成为flex 项目(item) flex容器属性 flex-direction ​ 该属性决定主轴的 ...

  3. .net core (领域事件,并发 for update) 工作内容记录

    这周工作,因为要对几个不同的表进行货币增加,锁定,所以 用了领域事件和并发 for update  ,先记录一下 领域事件 ,Dapper 事务 ,sql for update 这几个点 头大,最近工 ...

  4. WPF 精修篇 BackgroundWorker

    原文:WPF 精修篇 BackgroundWorker 效果 <Grid> <Grid.RowDefinitions> <RowDefinition Height=&qu ...

  5. 基于.net core 3 和 Orleans 3 的 开发框架:Phenix Framework 7

    Phenix Framework 7 for .net core 3 + Orleans 3 发布地址:https://github.com/phenixiii/Phenix.NET7 2019052 ...

  6. 05 .NET CORE 2.2 使用OCELOT -- NLog

    加入NLog 按照官网的文档 https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2 一步一步操作下来,即可设置好. ...

  7. PIE SDK 精度分析(分类后处理)

    1.算法功能简介 遥感图像分类精度分析通常把分类图与标准数据进行比较,然后用正确分类的百分比来表示分类的精度. PIE SDK支持算法功能的执行,下面对精度分析算法功能进行介绍. 2.算法功能实现说明 ...

  8. Java I/O系统学习系列三:I/O流的典型使用方式

    尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...

  9. C#实现outlook自动签名

    Outlook下实现自动签名的方式   网上找到一篇资料是在outlook里用vba实现的,但是这样实现的方式由于数字认证的问题不便于部署 在此介绍一种C#下实现的方式,目前确定的outlook版本为 ...

  10. Linux从入门到放弃、零基础入门Linux(第三篇):在虚拟机vmware中安装linux(二)超详细手把手教你安装centos6分步图解

    一.继续在vmware中安装centos6.9 本次安装是进行最小化安装,即没有图形化界面的安装,如果是新手,建议安装带图形化界面的centos, 具体参考Linux从入门到放弃.零基础入门Linux ...