P1375 小猫

题目描述

有2n只小猫站成一圈,主人小明想把它们两两之间用绳子绑住尾巴连在一起。同时小明是个完美主义者,不容许看到有两根绳子交叉。请问小明有几种连线方案,可以把让所有小猫两两配对?

方案数很大,仅需输出方案数模1000000007(一个质数)的值。

数据范围:

60% N<=100

100% N<=100000

输入输出格式

输入格式:

输入一个整数n

输出格式:

输出方案数对1000000007取模的值

输入输出样例

输入样例#1: 复制

  1. 3
输出样例#1: 复制

  1. 5
卡特兰数
这个题可以很快的将她转化成一个有2*n个点的圆,要在上面接n条边,求方案数
卡特兰数递推式
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<algorithm>
  5. #define N 100010
  6. #define mod 1000000007
  7. using namespace std;
  8. int n,a,b,c,h[N],gcd;
  9. int read()
  10. {
  11. ,f=; char ch=getchar();
  12. ;ch=getchar();}
  13. +ch-',ch=getchar();
  14. return x*f;
  15. }
  16. int main()
  17. {
  18. n=read();
  19. h[]=h[]=;
  20. ;i<=n;i++)
  21. ;j<=i;j++)
  22. h[i]=(1ll*h[j-]*h[i-j]%mod+h[i]%mod)%mod;
  23. printf("%d",h[n]);
  24. ;
  25. }

80分

AC代码

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<algorithm>
  5. #define N 100010
  6. #define LL long long
  7. #define mod 1000000007
  8. using namespace std;
  9. LL n,ans,f[N*];
  10. LL read()
  11. {
  12. LL x=,f=; char ch=getchar();
  13. ;ch=getchar();}
  14. +ch-',ch=getchar();
  15. return x*f;
  16. }
  17. LL Mi(LL a,LL b,int p)
  18. {
  19. LL res=;
  20. while(b)
  21. {
  22. ) res=res*a%p;
  23. b>>=;a=a*a%p;
  24. }return res;
  25. }
  26. LL C(LL n,LL m,int p)
  27. {
  28. ;
  29. ,p)%p;
  30. }
  31. LL Lus(LL n,LL m,int p)
  32. {
  33. ) ;
  34. return (C(n%p,m%p,p)*Lus(n/p,m/p,p))%p;
  35. }
  36. int main()
  37. {
  38. n=read();f[]=;
  39. ;i<=*n;i++) f[i]=1ll*f[i-]*i%mod;
  40. ans=(Lus(*n,n,mod)-Lus(*n,n+,mod)+mod)%mod;
  41. printf("%lld",ans);
  42. ;
  43. }

洛谷——P1375 小猫的更多相关文章

  1. 洛谷—— P1375 小猫

    https://www.luogu.org/problemnew/show/1375 题目描述 有2n只小猫站成一圈,主人小明想把它们两两之间用绳子绑住尾巴连在一起.同时小明是个完美主义者,不容许看到 ...

  2. 洛谷 P1361 小猫爬山

    题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了. WD和LHX只好花钱让它们坐索道下山.索道上的缆车最大承重量为W ...

  3. 洛谷——P1361 小猫爬山

    https://www.luogu.org/problem/show?pid=1361#sub 题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲 ...

  4. BZOJ1270或洛谷1107 [BJWC2008]雷涛的小猫

    BZOJ原题链接 洛谷原题链接 \(DP\)水题. 定义\(f[i][j]\)表示小猫在高度\(i\),位于第\(j\)棵树时最多能吃到的柿子的数量.分为直接往下跳和跳到另一棵树两个决策. 那么很容易 ...

  5. 洛谷P1107 & BZOJ1270 [BJWC2008]雷涛的小猫

    一道DP. 给你一个矩阵里面有很多数,你需要从上往下找到一种跳跃方法使得经过的点的价值之和最大. 具体题面见链接 洛谷P1107 BZOJ1270 很明显是一个二维的DP. #include<b ...

  6. [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)

    [BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ...

  7. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  8. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  9. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

随机推荐

  1. MySQL触发器写法

    触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/dele ...

  2. BZOJ3243 [Noi2013]向量内积 【乱搞】

    题目链接 BZOJ3243 题解 模数只有\(2\)或\(3\),可以大力讨论 如果模数为\(2\),乘积结果只有\(1\)或\(0\) 如果一个向量和前面所有向量乘积都为\(1\),那么其和前面向量 ...

  3. Adore 解题报告

    Adore 问题描述 小\(\text{w}\) 偶然间得到了\(1\)个 \(DAG\). 这个 \(DAG\) 有 \(m\) 层,第\(1\)层只有\(1\)个源点,最后\(1\)层只有\(1\ ...

  4. 如何优化JQuery each()函数的性能

    如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用jQuery,这框架的API设定就有误导人们走上歧途之嫌. 01 $.fn.be ...

  5. JSONP以及Spring对象MappingJacksonValue的使用方式

    什么是JSONP?,以及Spring对象MappingJacksonValue的使用方式 原文: https://blog.csdn.net/weixin_38111957/article/detai ...

  6. linux bash学习(一)

    1.请你以 read 指令的用途,撰写一个 script ,他可以让使用者输入:1. first name 与 2. last name, 最后并且在屏幕上显示:“Your full name is: ...

  7. C语言一些常用的功能

    1.测试运行时间: #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { clock ...

  8. 设置edittext的样式

    1.在res->drawable编写 <?xml version="1.0" encoding="utf-8"?> <shape xml ...

  9. 创建Maven项目出现:An internal error occurred during: "Retrieving archetypes:". Java heap space 错误解决办法

    首先说明一下网上的方法: 在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archety ...

  10. js如何弹出新窗口

    js如何弹出新窗口 时间:2012-4-22 弹出新窗口也是在网页设计中会经常用到的,其用法也很简单,是通过调用javascript的内置函数windows.open来产生的.  window.ope ...