【GDOI2017第二轮模拟day2】中位数
来源:互联网 发布:seo 专家 顺丰 编辑:程序博客网 时间:2024/04/28 03:44
Description
Input
Output
Sample Input
3 2
Sample Output
6
Data Constraint
题解
直接做k似乎不好做,所以考虑>=k的方案数,那么最后的答案就是>=k的方案数减去>=k+1的方案数
设>=k的数为1,否则为-1
容易发现如果最中间的一个位置是1而且它旁边的一个也是1的话那么答案一定是1,把这个结论扩展一下,我们发现当从中间开始两边对称且为“1 -1 1 -1 1”的形状,那么答案就是中间的那一个数,如果他不是对称的,那么就找离中间最近的两个连续的1或-1,那么答案就是它,这个也是比较明显的,因为整个图就像是一个倒金字塔的形状,两个连续的会导致在下一层又有两个连续的
那么我们可以先枚举中间的数是1/-1,然后枚举对称的长度,然后就可以通过组合数和一个简单的容斥算出答案了
注意最后要分别乘1,-1个数的阶乘,因为数是可以随便对应1/-1的
贴代码
const md=998244353;var i,j,k,n:longint; ans,x,y,z:int64; s:array[0..1000005]of int64;function quickmi(x,y:int64):int64;var t1,t2:int64;begin t1:=1; t2:=x mod md; while y>0 do begin if y mod 2=1 then t1:=(t1*t2) mod md; t2:=(t2*t2) mod md; y:=y div 2; end; exit(t1);end;function c(x,y:int64):int64;var ans:int64;begin if x>y then exit(0); if (x<0) or (y<0) then exit(0); ans:=quickmi(s[x]*s[y-x],md-2); ans:=(ans*s[y]) mod md; exit(ans);end;function get(k:longint):int64;var ans,t1,t2:int64;begin t1:=k-1; t2:=n-k+1; ans:=0; for i:=0 to n div 2-1 do if i mod 2=0 then begin ans:=ans+2*c(t2-2*(i div 2)-2,n-2*i-2); ans:=(ans-c(t2-2*(i div 2)-3,n-2*i-3)+md) mod md; end; for i:=0 to n div 2-1 do if i mod 2=1 then begin ans:=ans+2*c(t2-2*((i+1) div 2)-1,n-2*i-2); ans:=(ans-c(t2-2*((i+1) div 2)-2,n-2*i-3)+md) mod md; end; if t2=t1+1 then inc(ans); ans:=(ans*s[t1]) mod md; ans:=(ans*s[t2]) mod md; exit(ans);end;begin assign(input,'median.in'); reset(input); assign(output,'median.out'); rewrite(output); readln(n,k); s[0]:=1;s[1]:=1; for i:=2 to n do s[i]:=(s[i-1]*i) mod md; ans:=ans+get(k); ans:=(ans-get(k+1)+md) mod md; writeln(ans); close(input); close(output);end.
0 0
- 【GDOI2017第二轮模拟day2】中位数
- 【GDOI2017第二轮模拟day2】中位数
- 【JZOJ5066】【GDOI2017第二轮模拟day2】中位数
- jzoj【GDOI2017第二轮模拟day2】开房间
- 【GDOI2017第二轮模拟day2】开房间
- 【GDOI2017第二轮模拟day2】开房间
- 【JZOJ5065】【GDOI2017第二轮模拟day2】开房间
- 【jzoj5065】【GDOI2017第二轮模拟day2】【开房间】【动态规划】
- jzoj 5065. 【GDOI2017第二轮模拟day2】开房间 动态规划
- GDOI2017第二轮模拟
- GDOI2017第二轮模拟总结
- GDOI2017模拟第二轮总结
- GDOI2017第二轮模拟总结
- GDOI2017模拟第二轮 4.15-4.17
- 【GDOI2017第二轮模拟day1】最长路径
- 【GDOI2017第二轮模拟day1】公路建设
- 【JZOJ5060】【GDOI2017第二轮模拟day1】公路建设
- 【jzoj5060】【GDOI2017第二轮模拟day1】【公路建设】【数据结构】
- db2pd -edus命令详解
- ACM-动态规划总结
- mybatis中SQL语句单双引号的问题java.lang.NumberFormatException: For input string: "Y"
- struts2之文件上传
- python pandas中对Series数据进行轴向连接
- 【GDOI2017第二轮模拟day2】中位数
- java 集合总结(Collection)
- Softwaredistribution与系统瘦身
- 看看《速度与激情 8》中使用的尖端黑客技术都有哪些?
- 集训-旅游(spfa+状压DP)
- android list contain的使用
- java8之stream
- 达内课程-JAVA开发环境
- ElasticSearch-jdbc从Mysql数据库导入和更新数据