FJOI2020 的两道组合计数题】的更多相关文章

最近细品了 FJOI2020 的两道计数题,感觉抛开数据范围不清还卡常不谈里面的组合计数技巧还是挺不错的.由于这两道题都基于卡特兰数的拓展,所以我们把它们一并研究掉. 首先是 D1T3 ,先给出简要题意: 有 \(4\) 个栈 \(s_{1 \ldots 4}\),初始时 \(s_1\) 从栈底到栈顶为 \(1,2, \ldots, n\),\(s_{2 \ldots 4}\) 为空. 接下来,对它们进行若干次操作,每次操作可以任选 \(i \in \{1,2,3\}\),并将 \(s_i\)…
1.POJ 3450 Coporate Identity 这两题的解法都是枚举子串,然后匹配,像这种题目以后可以不用KMP来做,直接字符串自带的strstr函数搞定,如果字符串未出现,该函数返回NULL. 下面贴出其比较. 代码:(KMP版)(1360ms 888KB) #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorith…
Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 有一天人诹Lee在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于1010),但是她很好奇在可能的多少进制下这个式子得到的答案长度最长,为了从人赢Lee手中抢走女神,你需要快速…
. 遇到一个很大的数除以另一个数时,可以尝试把这个很大的数进行,素数因子分解. . 遇到多个数的乘积与另一个数的除法时,求是否能整除,可以先求每一个数与分母的最大公约数,最后若分母数字为1,则证明可整除.或者把分子上的每个数进行素数因子分解,分母上的数也进行素数因子分解,若分子上的与分母上相同素数因子进行比较,分子上的素数因子指数大于分母位置上的,则证明可整除. . 遇到乘法的时候注意越界问题. . 遇到求某一个区间内,满足某一特征的数的个数,而这个特征与因子,约数有关,尝试用埃筛的方法. 今天…
LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令k=N/2,画出表格显示程序对于N种不同的值的运行时间. 分析:选择问题是指从N个数当中,按升序(降序也可以)排列,找出第k个数.LZ的写法是采用书中给出的算法自己实现的,分别采用冒泡排序和分批处理的方式.以下为LZ写出的算法代码. import java.util.Arrays; import j…
算法(JAVA)----两道小小课后题   LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令k=N/2,画出表格显示程序对于N种不同的值的运行时间. 分析:选择问题是指从N个数当中,按升序(降序也可以)排列,找出第k个数.LZ的写法是采用书中给出的算法自己实现的,分别采用冒泡排序和分批处理的方式.以下为LZ写出的算法代码. import java…
这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试了一下,果然被虐成渣,十二道题目在有限时间内就做了四道,还有一道疯狂的WA,拿出两道一些有趣的想法出来分享一下. 今天打题就遇到了大数计算的问题,本来昨晚想解决这个难题,也没来得及,所以打题的时候大数计算那道就放弃了,过几天我一定会扔上来的. 今日兴趣新闻: 年度最惨小学生!在姥姥家热炕头写作业,写…
#每天进步一点点# 来两道很相似的题目~ (智商啊智商.....) hihoCoder #1236:Scores (简单的分桶法+bitset) 2015 Beijing Online的最后一题.题目链接:http://hihocoder.com/problemset/problem/12361.每门课成绩sort一下,分桶,bitset维护每个桶.2.根号n复杂度处理出每门课高于所给成绩人的状态. (bitset还是不错了,很适合维护状态~)3.最后每个bitset相与一下就OK... get…
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [T-SQL基础]09.可编程对象 -------------------------…
Linux运维跳槽必备的40道面试精华题(转)   下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家年后跳槽找个高薪好工作. 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身的技术运维又包括很多种,有DBA运维.网站运维.虚拟化运维.监控运维.游戏运维等等 2)游戏运维又有分工,分为开发运维.应用运维(业务运维)和…
目录 题意: 输入格式: 输出格式: 数据范围: 思路: 嵌套题的转移 基本题的转移 Part1 Part2 Part3 代码 题意: 这是一个关于括号组合的题. 首先定义一道题是由'(',')',',','!' (即左括号,右括号,逗号,感叹号)四种符号组成的. 然后我们再定义两种题型. 基本题:由若干个嵌套题(>=1个)组成,相邻的两套嵌套题之间由','(逗号)隔开.两道基本题被认为是相同的,当且仅当其中一个基本题的"嵌套题的序列"经过轮换之后能够得到另外一个基本题的&quo…
[HNOI2019]多边形(模拟,组合计数) 题面 洛谷 题解 突然特别想骂人,本来我考场现切了的,结果WA了几个点,刚刚拿代码一看有个地方忘记取模了. 首先发现终止态一定是所有点都向\(n\)连边(看样例图解就知道了) 那么大力猜想一下第一问的答案一定是\(n-3-\)和\(n\)号点直接相连的边数. 手玩一下,发现这样一件事情:和\(n\)直接相连的所有边把多边形分割成了若干个区间,每个区间都用\([l,r]\)表示. 对于\([l,r]\)这个区间,因为已经分割出来了,也就是除了\(l-n…
Linux运维跳槽40道面试精华题 运维派 3天前 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身的技术运维又包括很多种,有DBA运维.网站运维.虚拟化运维.监控运维.游戏运维等等 2)游戏运维又有分工,分为开发运维.应用运维(业务运维)和系统运维开发运维:是给应用运维开发运维工具和运维平台的应用运维:是给业务上线.维护和做故障排除的,用开发运…
0 写在前面 0.0 前言 由于我太菜了,导致一些东西一学就忘,特开此文来记录下最让我头痛的数学相关问题. 一些引用的文字都注释了原文链接,若侵犯了您的权益,敬请告知:若文章中出现错误,也烦请告知. 该文于 2018.3.31 完成最后一次修改(若有出错的地方,之后也会进行维护).其主要内容限于数论和组合计数类数学相关问题.因为版面原因,其余数学方面的总结会以全新的博文呈现. 感谢你的造访. 0.1 记号说明 由于该文完成的间隔跨度太大,不同时期的内容的写法不严谨,甚至 $LaTeX$ 也有许多…
[BZOJ4830][HNOI2017]抛硬币(组合计数,拓展卢卡斯定理) 题面 BZOJ 洛谷 题解 暴力是啥? 枚举\(A\)的次数和\(B\)的次数,然后直接组合数算就好了:\(\displaystyle \sum_{i=0}^a{a\choose i}\sum_{j=0}^{i-1}{b\choose j}\). 完美\(TLE\). 先考虑特殊点的情况,如果\(a=b\),那么显然两者输赢的情况反过来是一一对应的,所以答案就是总情况减去平局的情况除二,而总方法就是\(\displays…
[Luogu4921]情侣?给我烧了!(组合计数) 题面 洛谷 题解 很有意思的一道题目. 直接容斥?怎么样都要一个平方复杂度了. 既然是恰好\(k\)对,那么我们直接来做: 首先枚举\(k\)对人出来\(\displaystyle {n\choose k}\),然后枚\(k\)排座位出来\(\displaystyle {n\choose k}\),这些人间的顺序关系\(k!\),然后这些人可以左右交换\(2^{k}\). 好的,现在的问题转化为了剩下\(n-k\)对人,两两之间不能坐在一排,求…
一道组合数问题--出自 曹钦翔_wc2012组合计数与动态规划 [问题描述] 众所周知,xyc 是一个宇宙大犇,他最近在给他的学弟学妹们出模拟赛. 由于 xyc 实在是太巨了,他出了一套自认为很水的毒瘤模拟赛(看看这题的文件名你就 知道是什么难度了). 这些题目对于选手来说实在是太 hard 了,愤怒的选手们在评测的时候蜂拥而上,把 xyc 抬了起来--在这一过程中,xyc 用于评测的电脑也被选手们给砸坏了. 尽管选手们的成绩极其惨淡,xyc 还是想研究一下选手们的分数分布情况,他尝试还原 出了…
下面给出两道POJ上的问题,看如何用穷举法解决. [例9]Calling Extraterrestrial Intelligence Again(POJ 1411) Description A message from humans to extraterrestrial intelligence was sent through the Arecibo radio telescope in Puerto Rico on the afternoon of Saturday November 16…
ZOJ3955 题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于这个剩下的矩阵,我们考虑其中是否存在特殊的元素,保证这些元素是所在行最大,所在列最小的元素 且非之一. 求对于所有删法,上述元素个数之和 对10^9+7取余. 显然所有删法 有2^(n+m)种 暴力是搞不定的. 于是反过来看,矩阵的元素最多有10^6个 是不是可以考虑每一个元素对最终答案的贡献? 所…
LINK:除法与取模 鬼题.不过50分很好写.考虑不带除法的时候 其实是一个dp的组合计数. 考虑带除法的时候需要状压一下除法操作. 因为除法操作是不受x的大小影响的 所以要状压这个除法操作. 直接采用二进制状压是不明智的 2的个数最多为13个 2^13也同样到达了1e4的复杂度. 考虑 hash状压 即 2的个数有x个 那么我们就有状态w表示2还有x个. 这样做的原因是把一些相同的东西给合并起来 而并非分散开来.即有多个2直接记录有多少个即可. 可以发现 这样做不同的除数最多只有5个 状态量较…
1 排列组合 1.1 排列 \[A_n^m=n(n-1)(n-2)\cdots(n-m+1)=\frac{n!}{(n-m)!} \] 定义:从 n 个中选择 m 个组成有序数列,其中不同数列的数量. 解释:从 n 个中选一个,有 n 种选法,再选第二个,从 n-1 个中选,有 n-1 种选法,以此类推,根据组合数学的乘法原理所以公式是\(n(n-1)(n-2)...(n-m+1)\). 1.2 组合 \[C_n^m=\frac{A_n^m}{m!}=\frac{n!}{m!(n-m)!} \]…
两道以Floyd算法为解法的范例,第二题如果数据量较大,须采用其他解法 POJ2570-Fiber Network //经典的传递闭包问题,由于只有26个公司可以采用二进制存储 //Time:141Ms Memory:328K #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define MAX 205 #define MAXS 28 int n; int d[MAX…
两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory:360K #include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<algorithm> using namespace std; #define…
两道较为典型的单源最短路径问题,采用dijkstra解法 本来是四道练习题,后来发现后面两道用dijkstra来解的话总觉得有点冗余了,因此暂且分成三篇博客(本篇以及后两篇). ZOJ1053(POJ1122)-FDNY to the Rescue! //POJ1122-ZOJ1053 //dijkstra-需要记录路径 //给出n个路口的邻接矩阵,求给定多个火警到失火点的时间及任一路径 //注意输入最后一行时,cin.getline需要两次,猜测需要接受邻接矩阵最后一行其他字符后再接受下一行(…
软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h>#include<stdlib.h>#include<time.h>void demo(void)  //随机产生四则运算{ int m,n,k;   //随机数m,n,计数  m=rand()%100;//生成随机数 n=rand()%100; k=rand()%5; switch…
第一道:poj 1905Expanding Rods 题意:两道墙(距离L)之间架一根棒子,棒子受热会变长,弯曲,长度变化满足公式( s=(1+n*C)*L),求的是弯曲的高度h. 首先来看这个图: 如图,蓝色为杆弯曲前,长度为L 红色为杆弯曲后,长度为s h是所求. 又从图中得到三条关系式; (1)       角度→弧度公式  θr = 1/2*s (2)       三角函数公式  sinθ= 1/2*L/r (3)       勾股定理  r^2 – ( r – h)^2 = (1/2*…
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林数 \] 首先你要把这个组合计数肝出来,于是我去翻了一波<组合数学> 用斯特林数容斥原理推导那个式子可以直接出卷积形式,见下一篇,本篇是分治fft做法 组合计数 斯特林数 \(S(n,i)\)表示将n个不同元素划分成i个相同集合非空的方案数 Bell数 \(B(n)=\sum\limits_{i=…
[BZOJ5323][JXOI2018]游戏(组合计数,线性筛) 题面 BZOJ 洛谷 题解 显然要考虑的位置只有那些在\([l,r]\)中不存在任意一个约数的数. 假设这样的数有\(x\)个,那么剩下的数有\(n-x\)个. 枚举时间\(t\),那么强制在\(t\)时刻放下\(x\)数中的最后一个, 那么这样子的方案数就是\(\displaystyle {t-1\choose x-1}*x!*(n-x)!\). 预处理阶乘和逆元就很好做了. #include<iostream> #inclu…
[BZOJ5305][HAOI2018]苹果树(组合计数) 题面 BZOJ 洛谷 题解 考虑对于每条边计算贡献.每条边的贡献是\(size*(n-size)\). 对于某个点\(u\),如果它有一棵大小为\(K\)的子树的话,考虑方案数. 首先要从剩下的\(n-u\)个点中选出\(K\)个点作为这棵子树,那么选择方案数是\({n-u\choose K}\),构树的方案数是\(K!\).除了这些点外,还剩下\(n-u-K\)个点,他们随意的方案数我们这样考虑,首先把选出来的\(K\)个点拿出来,余…
[BZOJ3142][HNOI2013]数列(组合计数) 题面 BZOJ 洛谷 题解 唯一考虑的就是把一段值给分配给\(k-1\)天,假设这\(k-1\)天分配好了,第\(i\)天是\(a_i\),假设\(Sum=\sum a_i\).那么这一种分配方案的贡献就是\(n-Sum\). 而分配方式一共有\(m^{k-1}\)种,所以先把\(n\)个提出来,得到\(n*m^{k-1}\)再减去一堆东西.减去是的啥呢?所有合法方案的\(a_i\)的和. 那么考虑一个位置为某个特定值的贡献就好了. 也就…