我们的可可西里

题面

转眼到了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\)

  1. #include<iostream>
  2. #include<cstring>
  3. #include<string>
  4. #include<cstdio>
  5. #include<algorithm>
  6. int n;
  7. std::string f[1001]={"0","0","1","2"};
  8. inline std::string jia(std::string a,std::string b) {
  9. std::string ans="",cheng1="",cheng2="";
  10. int len=a.length();
  11. for(int i=len-1;i>=0;--i) cheng1+=a[i];
  12. len=b.length();
  13. for(int i=len-1;i>=0;--i) cheng2+=b[i];
  14. int len1=cheng1.length(),len2=cheng2.length();
  15. int sum=0;
  16. char jinwei=0,c1,c2;
  17. while(sum<len1||sum<len2) {
  18. c1=cheng1[sum]-48;
  19. c2=cheng2[sum]-48;
  20. if(c1<0) c1=0;
  21. if(c2<0) c2=0;
  22. if(sum>=len1) c1=0;
  23. if(sum>=len2) c2=0;
  24. c1+=c2;
  25. c1+=jinwei;
  26. jinwei=0;
  27. if(c1>9) {
  28. jinwei=c1/10;
  29. c1=c1%10;
  30. }
  31. ans+=c1+'0';
  32. sum++;
  33. }
  34. while(jinwei!=0) {
  35. char qwq=jinwei/10;
  36. jinwei=jinwei%10;
  37. ans+=jinwei+'0';
  38. jinwei=qwq;
  39. }
  40. std::string anss="";
  41. len=ans.length();
  42. for(int i=len-1;i>=0;--i) anss+=ans[i];
  43. return anss;
  44. }
  45. inline std::string cheng(int n,std::string a) {
  46. std::string ans="",cheng1="",cheng2="";
  47. while(n) {
  48. cheng1+=n%10+'0';
  49. n/=10;
  50. }
  51. int len=a.length();
  52. for(int i=len-1;i>=0;--i) cheng2+=a[i];
  53. int len1=cheng1.length(),len2=cheng2.length();
  54. std::string qwq="0",qaq="",emm="";
  55. char jinwei=0;
  56. for(int i=0;i<len1;++i) {
  57. qaq="",emm="";
  58. int x=i;
  59. while(x) {
  60. --x;
  61. qaq+='0';
  62. }
  63. for(int j=0;j<len2;++j) {
  64. char c2=cheng2[j]-'0',c1=cheng1[i]-'0';
  65. c1*=c2;
  66. c1+=jinwei;
  67. jinwei=0;
  68. if(c1>9) {
  69. jinwei=c1/10;
  70. c1%=10;
  71. }
  72. qaq+=c1+'0';
  73. }
  74. while(jinwei!=0) {
  75. char wasd=jinwei/10;
  76. jinwei%=10;
  77. qaq+=jinwei+'0';
  78. jinwei=wasd;
  79. }
  80. int len=qaq.length();
  81. for(int j=len-1;j>=0;--j) emm+=qaq[j];
  82. qwq=jia(qwq,emm);
  83. }
  84. return qwq;
  85. }
  86. inline std::string jiaqwq(std::string qaq) {
  87. int len=qaq.length();
  88. std::string ans="",qwq="";
  89. char jinwei=1;
  90. for(int i=len-1;i>=0;--i) {
  91. qaq[i]-='0';
  92. qaq[i]+=jinwei;
  93. jinwei=0;
  94. ans+=qaq[i]%10+'0';
  95. if(qaq[i]>9) jinwei=qaq[i]/10;
  96. }
  97. len=ans.length();
  98. for(int i=len-1;i>=0;--i) qwq+=ans[i];
  99. return qwq;
  100. }
  101. int main() {
  102. std::cin>>n;
  103. for(int i=4;i<=n;++i) {
  104. std::string qwq=jia(f[i-1],f[i-2]);
  105. f[i]=cheng(i-1,qwq);
  106. }
  107. std::cout<<f[n];
  108. return 0;
  109. }

上接【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. Cookie,Session,Token and Oauth

    Cookie 服务器端生成,发送给客户端,保存用户信息.下一次请求同一网站时会把该cookie发送给服务器. 应用:登录表单自动填充,同样 随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等 ...

  2. python的import和form...import的区别

    import和form...import的区别 参考链接 骏马金龙 https://www.cnblogs.com/lzc978/p/10105194.html 普通区别 import 使用impor ...

  3. Linux常用命令:fdisk mkfs mount umount fstab实现自动挂载

    写在前 记录点常用命令,fdisk mkfs mount和umount,以及fstab实现自动挂载 fdisk fdisk主要用于操作硬盘的分区表.分区,下面简单记一点最常用的部分 查看当前系统识别到 ...

  4. WPF 精修篇 长时间线程加取消功能

    原文:WPF 精修篇 长时间线程加取消功能 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11*&qu ...

  5. C#查找指定路径下的所有指定文件,并读取

    string path="指定路径"; string filename =“需要查找的文件名.csv"; List<string> lineStringLis ...

  6. Redis缓存数据库基础

    思维导图xmind文件:https://files-cdn.cnblogs.com/files/benjieming/Redis.zip

  7. javascript DOM拓展

    针对JS高级程序设计这本书,主要是理解概念,大部分要点源自书内.写这个主要是当个笔记加总结 存在的问题请大家多多指正! DOM拓展 1选择符 API 1.1 querySelector() 由docu ...

  8. File "tesserocr.pyx", line 2443, in tesserocr._tesserocr.image_to_text RuntimeError: Failed to in...

    将Tesseract-OCR安装目录下的tessdata文件夹复制到Python解释器目录下就可以了

  9. 企业安全之APT攻击防护

    现在针对企业APT[1]攻击越来越多了,企业安全也受到了严重的威胁,由于APT攻击比较隐匿的特性[2],攻击并不能被检测到,所以往往可以在企业内部网络潜伏很长时间. APT的攻击方式多种多样,导致企业 ...

  10. vue+element打印页面功能

    项目中遇到了要打印页面的功能,我感之前使用的是一个第三方的插件,但是不兼容IE,后来发现直接调用window的API就可以了,MMP // 打印表单 printBtn() { window.print ...