我受不了了。

Catalan数第100项,30000项,50000项,cnm

这tm哪里是在考数学,分明是在考高精度,FFT......

有剧毒!

我只得写高精度,只能过100的那个题,两个进化版超时......

 #include <cstdio>
#include <string>
using namespace std;
const int N = ; int p[N], tp, sum[N];
bool vis[N]; struct LL {
string n;
LL operator * (const long long &x) const {
int a[N];
int t = n.size();
for(int i = ; i < t; i++) {
a[t - i - ] = ((int)(n[i] - '')) * x;
}
for(int i = ; i < t; i++) {
if(a[i] > ) {
a[i + ] += a[i] / ;
a[i] %= ;
if(i + == t) t++;
}
}
string f = "";
for(int i = ; i < t; i++) {
f = (char)(a[i] + '') + f;
}
LL ans;
ans.n = f;
return ans;
}
void out() {
for(int i = ; i < n.size(); i++) {
putchar(n[i]);
}
return;
}
}; void getprime(int b) {
for(int i = ; i <= b; i++) {
if(!vis[i]) {
p[++tp] = i;
}
for(int j = ; j <= tp && p[j] * i <= b; j++) {
vis[p[j] * i] = ;
if(i % p[j] == ) {
break;
}
}
}
return;
} inline long long pow(int a, int b) {
if(b < ) {
printf("ERROR!!!\n");
return ;
}
long long ans = ;
while(b) {
if(b & ) {
ans = ans * a;
}
a = a * a;
b = b >> ;
}
return ans;
} int main() {
int n;
scanf("%d", &n);
getprime(n << );
int n2 = n << ; for(int i = ; i <= tp; i++) {
int _i = p[i];
while(_i <= n2) {
sum[i] += n2 / _i;
_i *= p[i];
}
}
for(int i = ; i <= tp && p[i] <= n; i++) {
int _i = p[i];
while(_i <= n) {
sum[i] -= n / _i;
_i *= p[i];
}
}
n++;
for(int i = ; i <= tp && p[i] <= n; i++) {
int _i = p[i];
while(_i <= n) {
sum[i] -= n / _i;
_i *= p[i];
}
} LL ans;
ans.n = '';
for(int i = ; i <= tp; i++) {
ans = ans * pow(p[i], sum[i]);
}
ans.out();
return ;
}

AC代码

tyvj/joyoi 1374 火车进出栈问题(水水版)的更多相关文章

  1. 【讲●解】火车进出栈类问题 & 卡特兰数应用

    火车进出栈类问题详讲 & 卡特兰数应用 引题:火车进出栈问题 [题目大意] 给定 \(1\)~\(N\) 这\(N\)个整数和一个大小无限的栈,每个数都要进栈并出栈一次.如果进栈的顺序为 \( ...

  2. luogu P1044 火车进出栈问题(Catalan数)

    Catalan数就是魔法 火车进出栈问题即: 一个栈(无穷大)的进栈序列为 1,2,3,4,...,n 求有多少个不同的出栈序列? 将问题进行抽象, 假设'+'代表进栈, 则有'-'代表出栈 那么如果 ...

  3. CH1102 火车进出栈问题(高精/卡特兰数)

    描述 一列火车n节车厢,依次编号为1,2,3,-,n.每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种. 输入格式 一个数,n(n<=60000) 输出格式 一个数s表示 ...

  4. 火车进出栈 java

    题目描述 一列火车n节车厢,依次编号为1,2,3,…,n.每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种. 输入 一个数,n(n<=60000) 输出 一个数s表示n节 ...

  5. tyvj/joyoi 1336 火车进栈

    比原题水了很多(因为原题要高精度) 输出字典序前20种出栈序列. 其实是贪心题:我们每次确定一个出栈的数. 当栈里有数时,字典序显然比从后面拿数要小,所以先搜这个. 之后依次搜后面队列里的数,因为字典 ...

  6. HDU 4283 You Are the One ★(进出栈的括号匹配性质:区间DP)

    题意 有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D.但是边上有一个小黑屋(一个FILO堆栈),可以一定程度上调整上场程序,求一种安排上场方案使得所有人的不开心指数 ...

  7. 【火车出栈】ZOJ - 2603 Railroad Sort

    好久没写递归了,怕手生再来练练手. 题意:车轨上有上图所示的n个中转栈,现有2n个列车,给出列车初始编号序列.列车从最右边驶入车轨,并且列车只能从右向左移动,要求给出列车中转操作序列,使列车经过这n个 ...

  8. 数据结构之 栈 (Python 版)

    数据结构之 栈 (Python 版) -- 利用线性表实现栈 栈的特性: 后进先出 基于顺序表实现栈 class SStack(): ''' 基于顺序表 实现的 栈类 ''' def __init__ ...

  9. 火车进栈(进出栈的模拟,dfs爆搜)

    这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头. 这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从 ...

随机推荐

  1. Linux安装jdk环境

    前言: 又重新起了一个CentOS7,里面什么都没有,翻出以前CentOS7安装jdk的笔记,现在已经弃用有道云了,用博客比较多,所以把它移过来. 有道云笔记地址(CentOS7安装1.8jdk):h ...

  2. Unit 2.前端之html--table(表格),form(表单)标签

    一.table标签 作用:定义html表格.一个table标签元素至少包含 thead(表头),tbody(表主题),还可以有tfoot(表底部) html表格游table元素及一个或者多个tr,th ...

  3. 谈谈B-树和B+树及其应用

    待更!!! B-树和B+树的应用:数据搜索和数据库索引 B+/-Tree原理及mysql的索引分析 从B树.B+树.B*树谈到R 树 B树.B-树.B+树.B*树

  4. python爬虫之scrapy模拟登录

    背景: 初来乍到的pythoner,刚开始的时候觉得所有的网站无非就是分析HTML.json数据,但是忽略了很多的一个问题,有很多的网站为了反爬虫,除了需要高可用代理IP地址池外,还需要登录.例如知乎 ...

  5. mysql逻辑架构

    逻辑架构图 MySQL有点与众不同,它的逻辑架构可以在多种不同的场景中应用并发挥良好的作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离.这种架构 ...

  6. 【转】说说MySQL中的Redo log Undo log都在干啥

    阅读目录(Content) 1 undo 1.1 undo是啥 1.2 undo参数 1.3 undo空间管理 2 redo 2.1 redo是啥 2.2 redo 参数 2.3 redo 空间管理 ...

  7. python3 写的一个压测脚本(有待开发)

    import requests import queue import threading import time status_code_list = [] exec_time = 0 class ...

  8. Java多线程2:线程的使用及其生命周期

    一.线程的使用方式 1.继承Thread类,重写父类的run()方法 优点:实现简单,只需实例化继承类的实例,即可使用线程 缺点:扩展性不足,Java是单继承的语言,如果一个类已经继承了其他类,就无法 ...

  9. HTML5-MathML-基础篇

    MathML是数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准.用来在互联网上书写数学符号和公式的置标语言. 注意:大部分浏览器都支持MathML标签,如果你的浏览器不支持该标签,可以使 ...

  10. eclipse添加tomcat服务器

    在网上找资料好辛苦,还不对,自己试了好久,终于成功了 还是一如既往的分享 右键 弄好以后发现如此简单| _ |