不用FFT的多项式(大雾) 题目链接: https://www.luogu.org/problemnew/show/P5469 (这题在洛谷都成绿题了海星) 题解: 首先我们考虑,一个序列位置最右边的最大值可以走遍整个序列,并且其余任何点都不能跨过这个位置. 所以我们可以区间dp, \(dp[l][r][x]\)表示区间\([l,r]\)最大值不超过\(x\)的方案数,枚举最大值点\(mid\)及其值\(k\), \(dp[l][r][x]=\sum_{mid}\sum_{k}dp[l][mid…
洛谷题面传送门 神仙题,放在 D1T2 可能略难了一点( 首先显然对于 P 型机器人而言,将它放在 \(i\) 之后它会走到左边第一个严格 \(>a_i\) 的位置,对于 Q 型机器人而言,将它放在 \(i\) 之后它会走到右边第一个 \(\ge a_i\) 的位置,为了避免分类讨论我们可以假定 \(a_0=a_{n+1}=\infty\).看到这个状态我们可以设计出一个区间 \(dp\),\(dp_{l,r,x}\) 表示 \([l,r]\) 中的柱子最大值为 \(x\),并且有 \(a_{l…
LINK:序列 考虑前20分 容易想到爆搜. 考虑dp 容易设\(f_{i,j,k,l}\)表示前i个位置 选了j对 且此时A选择了k个 B选择了l个的最大值.期望得分28. code //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<ctime> #include<cctype> #include<queue> #include<deq…
luogu P4012 深海机器人问题 // luogu-judger-enable-o2 #include<queue> #include<cstdio> #include<cstring> #include<algorithm> #define INF 0x7fffffff const int maxn = 2007; using std::min; using std::queue; int dis[maxn];bool vis[maxn]; inli…
题目链接: (luogu) https://www.luogu.org/problemnew/show/P5468 题解: 爆long long毁一生 我太菜了,这题这么简单考场上居然没想到正解-- 设\(dp[i]\)表示最后一步是坐\(i\)这辆车,一共花在等待上的烦躁值(不包括最终时间)为\(f[i]\). 然后容易发现这个转移是个DAG.(我在考场上居然以为有环,于是直接放弃--) 转移方程\(dp[i]=\min_{j|y[j]=x[i]}dp[j]+A(x_i-x_j)^2+B(x_…
Description: \(1<=n,k<=1e5,mod~1e9+7\) 题解: 考虑最经典的排列dp,每次插入第\(i\)大的数,那么可以增加的逆序对个数是\(0-i-1\). 不难得到生成函数: \(Ans=\prod_{i=0}^{n-1}(\sum_{j=0}^ix^j)[x^k]\) \(=\prod_{i=1}^{n}{1-x^i\over 1-x}[x^k]\) 分母是一个经典的生成函数: \({1\over 1-x}^n=(\sum_{i>=0}x^i)^n=\sum…
[luogu]P1070 道路游戏 题目描述小新正在玩一个简单的电脑游戏.游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 n 个机器人工厂编号为1~n,因为马路是环形的,所以第 n 个机器人工厂和第 1 个机器人工厂是由一段马路连接在一起的.小新将连接机器人工厂的这 n 段马路也编号为 1~n,并规定第 i 段马路连接第 i 个机器人工厂和第 i+1 个机器人工厂(1≤i≤n-1),第 n 段马路连接第…
网页链接 https://www.luogu.org/problemnew/show/4012 做题背景 在不久的将来,人工智能发展使得人类大量失业,也使得现在的我们做[深海机器人问题]做得想死... 准备工作 确实是一个很难的题目呢,要是做不出来,你可以选择看一看另一道题 https://www.luogu.org/problemnew/show/2045 这叫方格取数加强版(虽然说实话这道题跟方格取数没有关系) 也是深海机器人的弱化版 其实方格取数加强版的思路跟深海机器人是一样的,只是实现上…
题目大意 有两棵 \(n\) 个点的树 \(T_1\) 和 \(T_2\). 你要给每个点一个权值吗,要求每个点的权值为 \([1,y]\) 内的整数. 对于一条同时出现在两棵树上的边,这条边的两个端点的值相同. 若 \(op=0\),则给你两棵树 \(T_1,T_2\),求方案数. 若 \(op=1\),则给你一棵树 \(T_1\),求对于所有 \(n^{n-2}\) 种 \(T_2\),方案数之和. 若 \(op=2\),则求对于所有的 \(T_1,T_2\),求方案数之和. \(n\leq…
官方题解:http://codeforces.com/blog/entry/54233 就是由简入繁 1.序列处理,只考虑一个半圆 2.环形处理(其实这个就是多了旋转同构) 然后基于分割线邻居的跨越与否,分类讨论 g->没有分割线方案数(其实也可以变成贡献,但是太简单,之后乘上(i+0/1/2)也方便) f0->有分割线,两边都没有选所有情况的贡献的和 f1->有分割线,两边选择了一个所有情况的贡献的和 f2->有分割线,两边都选择了所有情况的贡献的和 最后对于环 考虑除了中间割线…