[luogu7092]计数题】的更多相关文章

由于$\mu(i)$,因此每一个素数最多存在1次,当$k=0$答案必然为0 根据莫比乌斯和欧拉函数的积性,答案与对素数的划分无关,仅与每一个素数是否出现有关,换言之枚举素数出现的集合$P'$,答案即为$\sum_{P'\subseteq P}(-1)^{|P'|}div(|P'|)\prod_{p\in P'}(p-1)$ (其中$div(n)$表示对$n$个数划分的方案数,当$k=1$时即$div(n)=1$) 令$f(x)=\sum_{i=0}^{\infty}(\sum_{|P'|=i}\…
ZOJ3955 题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于这个剩下的矩阵,我们考虑其中是否存在特殊的元素,保证这些元素是所在行最大,所在列最小的元素 且非之一. 求对于所有删法,上述元素个数之和 对10^9+7取余. 显然所有删法 有2^(n+m)种 暴力是搞不定的. 于是反过来看,矩阵的元素最多有10^6个 是不是可以考虑每一个元素对最终答案的贡献? 所…
#428. [集训队作业2018]普通的计数题 模型转化好题 所以变成统计有标号合法的树的个数. 合法限制: 1.根标号比子树都大 2.如果儿子全是叶子,数量B中有 3.如果存在一个儿子不是叶子,数量A中有 然后考虑DP 直接枚举根的儿子的情况 cdq分治NTT还是很恶心的 不光是自己卷自己,还是互相卷 进行一番化简和平移之后,可以转化为cdq分治NTT的形式: 怎么好做怎么来. 反正我最后推的式子有如下特点(式子就不写了): 为了方便,钦定g[0],f[0],g[1],f[1]都是0 对于f,…
D. Count the Arrays 也是一个计数题. 题目大意: 要求构造一个满足题意的数列. \(n\) 代表数列的长度 数列元素的范围 \([1,m]\) 数列必须有且仅有一对相同的数 存在一个位置 \(i\),使得小于 \(i\) 这个位置的是严格递增的,大于这个位置则是严格递减的. 这个题目也很容易把自己绕晕,所以我们要想开点... 不要去太细节的考虑哪一个位置放什么之类的,而是考虑如何构造满足条件的序列. 因为序列长度是 \(n\),范围是 \(m\),而且又必须有一对相同的数.…
[NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 Data Constraint 题解 题意 给出\(a[i]\),有一完全图,\(i\)与\(j\)之间的边的值为\(a[i] \oplus a[j]\)(\(\oplus\)为异或的意思) 求最小生成树及方案数 题解 科普一个东西,\(n\)个点的完全图的生成树个数是\(n^{n-2}\) 这个东西…
noip模拟44 solutions 这一场抱零的也忒多了,我也只有45pts 据说好像是把几套题里面最难的收拾出来让我们考得 好惨烈啊,这次的考试我只有第一题骗了40pts,其他都抱零了 T1 Emotional Flutter 这个我直接用线段树维护解集, 这样的,你不能踩到每一个黑块,所以每一个黑块都对应着一个不踩他的范围 我们用线段树维护这些范围的交集,因为值域有点大所以炸了 40pts #include<bits/stdc++.h> using namespace std; #def…
最近细品了 FJOI2020 的两道计数题,感觉抛开数据范围不清还卡常不谈里面的组合计数技巧还是挺不错的.由于这两道题都基于卡特兰数的拓展,所以我们把它们一并研究掉. 首先是 D1T3 ,先给出简要题意: 有 \(4\) 个栈 \(s_{1 \ldots 4}\),初始时 \(s_1\) 从栈底到栈顶为 \(1,2, \ldots, n\),\(s_{2 \ldots 4}\) 为空. 接下来,对它们进行若干次操作,每次操作可以任选 \(i \in \{1,2,3\}\),并将 \(s_i\)…
A. 序列 考场不认真读题会死..... 读清题就很简单了,分成若干块,然后块内递增,块外递减,同时使最大的块长为$A$ B. 购物 考场思路太局限了,没有发现性质, 考虑将$a_{i}$,排序前缀和为$sum_{i}$,发现如果存在断区肯定处于$sum_{i-1},a_{i}/2$之间 C. 计数 很不错的题,$rvalue$学长的题解写的很清楚 需要进行性质分析: 对于先序遍历,需要保证每个子数的节点编号是连续的,同时左儿子的编号是根的编号$+1$; 那么进行题意的转化: 对于每一对限定的点…
http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值. 题解:考虑最大的那个数,必然是顶点.然后再考虑第二大的,它只能填在上一个数所在的行列.通过这个填法,不断填下去并计数.但完全不会写程序(要分类,递归完全不会写). 后来知道是个O(n*n*m*m)的dp(搜索)orz 直播里的转移方程和代码:dp[i][j][k]代表填了i个数,j行k列已经填数…
Portal --> uoj428 Solution 不会胖子的一个log正解qwq只能怂怂滴写分治了qwq ​ 首先就是一个我想不到的转化qwq ​ 我们将第\(i\)次操作加入的数看成一个编号为\(i\)的节点的权值,并且把操作\(2\)中删除的节点看成\(i\)号点的儿子,那么整个操作序列对应一个树结构,并且满足父亲的编号大于儿子,特别的,原来的\(0\)对应了叶子节点,\(1\)对应了非叶子节点,那么原题中的限制就变成了:当某个节点的儿子都是叶子的时候,它的儿子个数在\(B\)集合中,否…