【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 考试. ...
随机推荐
- 获取 Rancher 中 Prometheus 的数据
1.需求 在 rancher 应用商店添加集群监控,会安装 prometheus.grafana:需要从 prometheus 的 api 中收集 pod 的一些信息. 查看grafana 配置的数据 ...
- CSS属性相关知识
Css选择器 选择器的权重 在css中,哪个选择器的权重高,就走谁的样式. 标签选择器的权重是 1 Class选择器的权重是10 Id选择器的权重是100 行间样式的权重是1000 带有关键字 !im ...
- 四、Hexo静态博客绑定域名及域名解析
示例: http://zsy.xyz/ 域名准备 购买域名及实名认证不再赘述,可通过阿里云.腾讯云等平台自行购买域名. 域名解析 进入解析界面 添加记录 选择主机记录,根据提示自行选择 记录类型选 ...
- 我是如何一步步编码完成万仓网ERP系统的(二)前端框架
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- Kubernetes中的Volume介绍
Kubernetes中支持的所有磁盘挂载卷简介发表于 2018年1月26日 Weihai Feb 10,2016 7400 字 | 阅读需要 15 分钟 容器磁盘上的文件的生命周期是短暂的,这就使得在 ...
- vue中如果在页面中v-model的是字典,那么在定义字典的时候,需要明确定义键值为''或者[],否则给字典的键值赋值后页面不显示
如题 在template模板中 {{}} {{form_temp.blOwnerMemberList}} #是字典的形式哦 {{}} 在return的属性中 form_temp: { blOwnerM ...
- python每日经典算法题5(基础题)+1(较难题)
一:基础算法题5道 1.阿姆斯特朗数 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数.判断用户输入的数字是否为阿姆斯特朗数. (1)题目分析:这里要先得到该数是多少位的,然后再把 ...
- Python文件属性模块Os.path
Python文件属性模块Os.path介绍 os.path模块主要用于文件属性获取和判断,在编程中会经常用到,需要熟练掌握.以下是该模块的几种常用方法. os.path官方文档:http://docs ...
- 软件开发的生产力vs质量
在<人月神话>里看到引用的一篇论文,<没有银弹:软件工程的本质性与附属性工作>(英语:No Silver Bullet-Essence and Accidents of Sof ...
- 7.vertical-align属性
本节学习目标: 图片.表单和旁边的文字对齐 解决图片底部默认空白缝隙问题 1.图片.表单和旁边的文字对齐 默认的图片.表单等行内元素或行内快元素是和文字的基线对齐的,但在实际情况下,我们想让他们中间对 ...