LOJ 10239 有趣的数列

首先可以将奇数视作入栈,偶数视作出栈,那么它是卡特兰数,其实打表也能看出来,而且好像可以用dp?

不过这道题的难点不在这里,p不是素数,所以不能用求逆元来做,不过前50%的分可以用杨辉三角+达标拿到,之后的分就要用到质因数分解了。

求卡特兰数的公式:$h[n]=\frac{C_{2n}^n}{n+1}$,化简之后将其分解,一开始我并没有按质因数分解,结果T了,分解质因数要更快一点。

 void add(int x,int nu)
{
for(int i=;prime[i]*prime[i]<=x;i++)
while(x%prime[i]==)
{
cnt[prime[i]]+=nu;
x/=prime[i];
}
cnt[x]+=nu;
}
for(int i=n+;i<=*n;i++)add(i,);
for(int i=;i<=n;i++)add(i,-);
LL ans=;
for(int i=;i<=*n;i++)
for(int j=;j<=cnt[i];j++)
ans=ans*i%p;

代码实现

 #include<iostream>
#include<cstdio>
#define LL long long
//#define int LL
using namespace std;
int n,p;
int cnt[];
int prime[],num;
bool isprime[];
#define N 20000
void s()
{
for(int i=;i<=N;i++)isprime[i]=;
for(int i=;i<=N;i++)
{
if(isprime[i])prime[++num]=i;
for(int j=;j<=num&&i*prime[j]<=N;j++)
{
isprime[i*prime[j]]=;
if(!i%prime[j])break;
}
}
}
void add(int x,int nu)
{
for(int i=;prime[i]*prime[i]<=x;i++)
while(x%prime[i]==)
{
cnt[prime[i]]+=nu;
x/=prime[i];
}
cnt[x]+=nu;
}
signed main()
{
s();
cin>>n>>p;
for(int i=n+;i<=*n;i++)add(i,);
for(int i=;i<=n;i++)add(i,-);
LL ans=;
for(int i=;i<=*n;i++)
for(int j=;j<=cnt[i];j++)
ans=ans*i%p;
cout<<ans<<endl;
}

完整代码

最新文章

  1. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
  2. bzoj 3821: 玄学
  3. IOS开发基础知识--碎片36
  4. github入门教程
  5. hdu 4920 Matrix multiplication bitset优化常数
  6. 提取c#代码文件中的方法块
  7. MySQL 5.5 服务器变量详解二(转)
  8. C# Best Practices - Define Fields Appropriately
  9. SQL Server系统数据库备份最佳实践
  10. 在Javascript中使用protobuf与c++进行通信
  11. JAVA的高并发编程
  12. Ubuntu下配置ShadowS + Chrome
  13. EOJ3536 求蛇形矩阵每一行的和---找规律
  14. 安装composer时,提示 /usr/bin/env: php: 没有那个文件或目录
  15. 高可用-mysql安装,双主模式+keepalived
  16. 警惕 MySql 更新 sql 的 WHERE 从句中的 IN() 子查询时出现的性能陷阱
  17. POJ 1195 Mobile phones【二维树状数组】
  18. activitemq整合spring
  19. 12.8 Daily Scrum
  20. Python3 tkinter基础 Entry validate validatecommand 失去焦点时,检查输入内容

热门文章

  1. html文件中script标签放在哪里?
  2. Win7下设置WiFi热点
  3. &lt;a&gt;标签操作
  4. LINNX查看当前登录的用户
  5. CPU 和内存 $ free -m$ uptime$ top$ htop
  6. Uva1252 Twenty Questions
  7. CommonJS、requirejs、ES6的对比
  8. JavaScript-JQ实现自定义滚动条插件1.0
  9. Python3 中 configparser 模块用法
  10. Git clone远程仓库