某考试 T1 line】的更多相关文章

状压dp+矩阵转移,据说正解是dfs出的合法状态,,但难道不是三个for就行了吗2333 #include<iostream> #include<cmath> #include<algorithm> #include<cstdio> #include<cstdlib> #include<cstring> #define ll long long const int ha=1000000007; using namespace std;…
考试T1CE... 最近不适合考试 T1 扶苏是个喜欢一边听古风歌一边写数学题的人,所以这道题其实是五三原题.歌曲中的主人公看着墙边的海棠花,想起当年他其实和自己沿着墙边种了一排海棠,但是如今都已枯萎,只剩下那一株,寄托着对他深深的思念.沿着墙一共有 n 个位置可以种下海棠花,主人公记得自己当年和他一共种下了 m朵,由于花的特性,海棠不能紧挨着种植,也就是两朵海棠花之间最少间隔一个不种花的空位置.但是她记不清当时海棠花具体是怎么摆放的了,所以她想知道一共有多少方案使得 m 朵海棠花都被种下且两两…
题目背景 无 题目描述 Alice 和 Bob 在一个圆环上玩游戏.圆环上有 n 个位置,按照顺时针顺序 依次标号为 1 到 n.Alice 和 Bob 分别有一个数字集合,集合中都是在 [1, n−1] 内的正整数.游戏开始时会有一个棋子摆在圆环上的某个位置,然后两人轮流 行动.轮到某个人的回合时,他可以从他的集合中选出某个数 x,然后把棋子 沿顺时针方向移动 x 个位置.如果某个人把棋子移动到了 1 号位置,那么他就 获胜了.两个人都会以最优策略行动. 你需要对不同先后手顺序以及棋子初始位置…
我们把每一行看成一个多项式 f[i][1] + f[i][2] * x + f[i][3] * x^2 + ..... + f[i][n] * x^(n-1) 的话,一行转移到下一行就相当于乘上一个{b*x + a}的多项式. 于是本题就有了不下五种做法233333,但是大部分做法都因为用了多次NTT而被卡常,就算只用了一次NTT的算法过了,那也不是最优的,因为我们完全可以把 (b*x + a)^n 广义二项式展开,这样就可以 O(N) 计算出转移多项式 (因为n<0也适用广义多项式定理,所以多…
题目描述 给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. 输入格式 第一行两个整数 n, m. 接下来一行 m 个整数, 表示 A. 输出格式 一行一个整数表示答案. 样例 Input: 5 3 1 3 4 Output: 11 数据范围与提示 对于前 30% 的数据, n ≤ 9; 对于前 60% 的数据, n ≤ 12; 对于 100% 的数据, 1 ≤ m ≤ n ≤ 15. 我们可以很自然的想到用f[S][s]表示目前选了S中的数…
把lcm写成 (a+n)*(b+n) / gcd(a+n,b+n). 因为gcd可以辗转相减,所以就成了gcd(abs(a-b),a+n),一个常量一个变量之间的gcd,我们可以直接把abs(a-b)的所有约数找出来,然后看a要有某个约数的话n至少是多少,更新答案即可.(因为1e9以下的数的最多的约数的级别是1e3) #include<iostream> #include<cstdio> #include<algorithm> #include<cmath>…
\(\color{#0066ff}{题解}\) 然后a,b,c通过矩阵加速即可 为什么1出现偶数次3没出现的贡献是上面画绿线的部分呢? 考虑暴力统计这部分贡献,答案为\(\begin{aligned}\sum_{2|i}C_n^i*3^{n-i}\end{aligned}\) 显然如果没有\(\sum\)下面的限制,它就是一个生成函数\((x+3)^n\) 相当于我们只取偶数项 可以用单位根反演 把\(\omega_2^1,\omega_2^2\)分别代入\((x+3)^n\) 得到的就是2倍的…
\(\color{#0066ff}{ 题目描述 }\) 衡水二中的机房里经常有人莫名其妙地犇雷,leizi很生气,决定要找出那个犇雷的人 机房有n个人,每个人都认为机房里有两个人可能会犇雷,其中第i个人认为xi和yi可能会在机房犇雷(1<=i,xi,yi<=n,xi!=yi) (某个人不可能资磁自己犇雷,即xi,yi!=i) leizi决定找出两个pwang并把他们按在床上揍.leizi希望选择的方案恰好被c个人支持,一个oier会支持一个方案当且仅当至少有一个他认为的pwang被leizi揍…
转化一下模型:每天可以选1也可以选0,但是任意前i天(i<=n)1的个数都必须>=0的个数,求总方案数/2^n. 然后可以发现这是一个经典题,随便推一下公式发现等于  C(n,n/2)/2^n  [请在二维平面直角坐标系上自行演算,(x,y)可以到 (x+1,y)和(x,y+1),横坐标代表1的个数,纵坐标代表0的个数,求不经过 y=x+1 这条直线的路径总数  (终点是 任意 (x,y) 满足 x+y==n 且 x>=y)] 本来以为卡卡常数就过去了23333,没想到竟然还要用 阶乘逼…
一开始死磕sam,发现根本没法做...... 后来想了想,反正匹配子串的大部分不是sam就是 二分+hash啊,,,于是就想了想二分+hash,发现好像可以做啊! 就是假设我们要让 s1[1] 映射到s2 中的位置是 s2[i] ,那么这种情况的答案就很好算了,就是求一次lcp之后把第一个不匹配的钦定成匹配之后再一次lcp. 所以总的时间复杂度就是 O(N * log(N)) 啦. #include<iostream> #include<cstdio> #include<cs…