【CSP-S膜你考】我们的可可西里
我们的可可西里
题面
转眼到了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膜你考】我们的可可西里的更多相关文章
- 【CSP-S膜你考】那23个路口
那23个路口 题面 故事的起源不加赘述,那23个路口. 单刀直入,我直接说题的意思. 蚊子和疯子在做一件事,就是他们要在茫茫的大街上找一个出发点,然后从出发点开始,经过上下左右23次拐弯,到达一个他们 ...
- 【CSP-S膜你考】即时战略(模拟)
Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...
- 【CSP-S膜你考】不怕噩梦 (模拟)
不怕噩梦 题面 蚊子最近经常做噩梦,然后就会被吓醒.这可不好.. 疯子一直在发愁,然后突然有一天,他发现蚊子其实就是害怕某些事. 如果那些事出现在她的梦里,就会害怕. 我们可以假定那个害怕的事其实是一 ...
- 【CSP-S膜你考】 A
A 题面 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) , 其中每个正整数都能表示成两个质数乘积. 输入格式 第一行一个正整数 q,表示询问组数. 接下来 q 行,每行一个 ...
- 【CSP-S膜你考】最近公共祖先 (数学)
Problem A. 最近公共祖先 (commonants.c/cpp/pas) 注意 Input file: commonants.in Output file: commonants.out Ti ...
- N(C)O(S)I(P)P 2019 退役记
N(C)O(S)I(P)P 2019 退役记 day-4 今天下午老师突然咕了,于是一下午欢乐时光 今天上午考试T3线段树维护个区间加,区间乘 一遍过编译,一遍过样例(第一次,俺比较弱(虽然也发现和暴 ...
- 杂记三 · CSP-2019-The first step
update:我终于懂得衰亡的民族之所以沉默的缘由了. 初赛Day -7 虽然我是第一次参加初赛而且到现在为止我还没见过初赛题但我一点也不慌! 真的!一点!也不慌! 初赛Day 1 早上和可s爱b j ...
- 日记 + sb错误
置顶消息cpdd 1.29 完了,文化课没了 我是废物 1.28 更新了自己的副标题 前副标题:Future never has to do with past time,but present ti ...
- 「CSP」第一届提高组考后总结
「CSP」第一届提高组考后总结 问题分析+反思 成绩 心态 考前心态 考时心态 考后心态 方法 心灵鸡汤... 在学习了三年之后,我们信竞迎来了初中最后一次大考,也是第一次 CSPCSPCSP 考试. ...
随机推荐
- sqlyog -------- 安装
SQLyog是RDBMS MySQL的GUI工具.在从Windows Vista到Windows 10的Windows平台上运行,使用Wine环境,还使其可以在Linux和各种Unix(包括macOS ...
- C# Thread was being aborted
先重现问题 1.新建一个aspx页面项目,插入两个页面WebForm1.aspx,WebForm2.aspx, WebForm1代码修改如下 protected void Page_Load(obje ...
- 34 个今年11月最受欢迎的 JavaScript 库
作者:Iren Korkishko 译者:前端小智 来源:dev 点赞再看,养成习惯 本文 GitHub:github.com/qq449245884… 上已经收录,更多往期高赞文章的分类,也整理了很 ...
- Web应急:网站被植入Webshell
网站被植入webshell,意味着网站存在可利用的高危漏洞,攻击者通过利用漏洞入侵网站,写入webshell接管网站的控制权.为了得到权限 ,常规的手段如:前后台任意文件上传,远程命令执行,Sql注入 ...
- TensorFlow的数据读取机制
一.tensorflow读取机制图解 首先需要思考的一个问题是,什么是数据读取?以图像数据为例,读取的过程可以用下图来表示 假设我们的硬盘中有一个图片数据集0001.jpg,0002.jpg,0003 ...
- 【51nod1355】斐波那契的最小公倍数(min-max容斥)
[51nod1355]斐波那契的最小公倍数(min-max容斥) 题面 51nod 题解 显然直接算还是没法算的,所以继续考虑\(min-max\)容斥计算. \[lcm(S)=\prod_{T\su ...
- python 练习题:计算的BMI指数,并根据BMI指数条件选择
小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:低于18.5:过轻18.5-25:正常25-28:过重28-32:肥胖高于32:严 ...
- 微信开放平台apk的应用签名的获取
https://open.weixin.qq.com 微信里面的应用签名相关的签名信息 1.首先生成JKS文件,放入的是包名,利用的是android studio工具生成的. 步骤:随便建立一个安卓项 ...
- .net core 读取appsettings.json乱码
.net core 读取配置文件乱码:vs2019读取appsettings.json乱码问题; .net core 读取appsettings.json乱码问题;用notepad++或者其他编辑器打 ...
- Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...