牛客挑战赛 39 牛牛与序列 隔板法 容斥 dp
LINK:牛牛与序列
(牛客div1的E题怎么这么水... 还没D难.
定义一个序列合法 当且仅当存在一个位置i满足 $a_i>a_,a_j<a_$且对于所有的位置i,$1 \leq a_i\leq k$
人话解释:一个合法序列 每个数字都在1~k之间 且有两个相邻数字是递增关系两个相邻数字是递减关系。
发现我们枚举某两个位置递增递减再进行计数会重复 而且很难减掉重复方案。这个不能代表元容斥。
考虑总方案-不合法方案。发现不合法方案就两种不增,不降.
显然不增翻转一下就是不降 考虑求出不增的方案数 考虑从前往后放数字且数字大小递减 每个数字都可以分到一些位置。
容易发现是一个隔板法 所以总方案数为C(n+k-1,k-1).
值得注意的是 最后要加上k 因为所有数字都相同时 同时为不增和不降。
这个组合数可以O(k)计算。可以通过此题。
而题解上给了一个dp 这个dp也很显然f[i][j]表示前i个数字使用的最小数字为j的方案数。
最后答案为$\sum_^f[n][i]$ 更扯得是 需要打标发现是上述的组合数 再接一个数学归纳法证明。
我觉得很麻烦 可能正因为如此 出题人才把这道题放到E吧.
const ll MAXN=100010;
ll n,k,T;
ll ans;
inline ll ksm(ll b,ll p)
{
ll cnt=1;
while(p)
{
if(p&1)cnt=cnt*b%mod;
b=b*b%mod;p=p>>1;
}
return cnt;
}
signed main()
{
freopen("1.in","r",stdin);
get(T);
while(T--)
{
get(n);get(k);
ans=ksm(k,n%(mod-1))+k;
ll cnt=1,ww=1;
fep(n+k-1,n+1,i)cnt=cnt*i%mod,ww=ww*(i-n)%mod;
ww=ksm(ww,mod-2);
putl(((ans-cnt*ww%mod*2%mod)%mod+mod)%mod);
}
return 0;
}
牛客挑战赛 39 牛牛与序列 隔板法 容斥 dp的更多相关文章
- 牛客练习赛43 Tachibana Kanade Loves Game (简单容斥)
链接:https://ac.nowcoder.com/acm/contest/548/F来源:牛客网 题目描述 立华奏是一个天天打比赛的萌新. 省选将至,萌新立华奏深知自己没有希望进入省队,因此开始颓 ...
- Codeforces Round 450 D 隔板法+容斥
题意: Count the number of distinct sequences a1, a2, ..., an (1 ≤ ai) consisting of positive integers ...
- 牛客挑战赛39 D 牛牛的数学题 NTT FMT FWT
LINK:牛牛的数学题 题目看起来很不可做的样子. 但是 不难分析一下i,j之间的关系. 对于x=i|j且i&j==0, i,j一定是x的子集 我们可以暴力枚举子集来处理x这个数组. 考虑 x ...
- 牛客练习赛26:D-xor序列(线性基)
链接:牛客练习赛26:D-xor序列(线性基) 题意:小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 题解:线性基 #inc ...
- 牛客OI测试赛 C 序列 思维
链接:https://www.nowcoder.com/acm/contest/181/C来源:牛客网 题目描述 小a有n个数,他想把他们划分为连续的权值相等的k段,但他不知道这是否可行. 每个数都必 ...
- 牛客训练21674——牛牛与LCM
Problem 链接:https://ac.nowcoder.com/acm/problem/21674 来源:牛客网 牛牛最近在学习初等数论,他的数学老师给他出了一道题,他觉得太简单了, 懒得做,于 ...
- 牛客练习赛39 B.选点
链接:https://ac.nowcoder.com/acm/contest/368/B 来源:牛客网 题目描述 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi.现在要选出尽量多的点. 对于 ...
- 牛客练习赛26 D xor序列 (线性基)
链接:https://ac.nowcoder.com/acm/contest/180/D 来源:牛客网 xor序列 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他 ...
- 【牛客挑战赛30D】小A的昆特牌(组合问题抽象到二维平面)
点此看题面 大致题意: 有\(S\)张无编号的牌,可以将任意张牌锻造成\(n\)种步兵或\(m\)种弩兵中的一种,求最后步兵数量大于等于\(l\)小于等于\(r\)的方案数. 暴力式子 首先我们来考虑 ...
随机推荐
- web开发,前后分离接口规范
1. 前言 随着互联网的高速发展,前端页面的展示.交互体验越来越灵活.炫丽,响应体验也要求越来越高,后端服务的高并发.高可用.高性能.高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长 ...
- HTML5 Canvas绘图基本使用方法, H5使用Canvas绘图
Canvas 是H5的一部分,允许脚本语言动态渲染图像.Canvas 定义一个区域,可以由html属性定义该区域的宽高,javascript代码可以访问该区域,通过一整套完整的绘图功能(API),在网 ...
- 【线型DP】洛谷P2066 机器分配
[线型DP]洛谷P2066 机器分配 标签(空格分隔): 线型DP [题目] 题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配 ...
- HDU 4352 XHXJ's LIS HDU 题解
题目 #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the ent ...
- 【网鼎杯2018】fakebook
解题过程: 首先进行目录扫描,发现以下目录: user.php.bak login.php flag.php user.php robots.txt user.php.bak猜测存在源码泄露. 查看源 ...
- java 面向对象(二十七):注解的使用
1. 注解的理解① jdk 5.0 新增的功能*② Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理.通过使用 Annotation, ...
- JavaWeb基础(day14_css)
css css样式种类 内部样式 在head标签中使用 <style>标签 行内样式 直接在标签中写style属性进行赋值,style属性的就相当于内部样式的{} 外部样式 单独写一个文件 ...
- Java中使用方法的注意事项
Java方法使用的注意事项 本文列举了几个小白在java中使用方法应该注意的几个地方 1. 方法应该定义在类中2.方法中不可以再嵌套方法3.方法定义的前后顺序无所谓4.想要执行方法必须要调用5.如果方 ...
- “我放弃了年薪20W的offer......”
我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试.那时候在一家电商公司做测试,做了有一段时间,熟悉产品的业务流程以及熟练测试工作流程规范之后,效率提高了,工作比较轻松,也得到了更好的机会 ...
- ATX 学习 (四)-atxserver2
ATXSERVER2 一.main()文件启动 1.首先通过parse_args返回一个Namespace作一些配置,登录页html在SimpleLoginHandler这个里边写着,2.接着通过db ...