CF 1420D. Rescue Nibel!(枚举点计算组合数)
发布日期:2021-06-30 10:24:53
浏览次数:2
分类:技术文章
本文共 858 字,大约阅读时间需要 2 分钟。
快要被自己菜哭了
不管怎么算都会有重复
可以把所有区间的 2 n 2n 2n个点存下来枚举‘
按左端点顺序一条一条加入线段
对于每条线段,计算自己和前面的线段所有可能的组合
这样一定是不重不漏
遇到左端点加加,右端点减减,就可以动态维护目前有几条线段覆盖到了这个点
#includeusing namespace std;#define int long longconst int mod = 998244353;const int maxn = 6e5+10;int aabs(int x){ return x<0?-x:x;}bool com(int a,int b){ if( aabs(a)==aabs(b) ) return (a>b);//先处理左端点 return aabs(a) >=1,x=x*x%mod ) if( n&1 ) ans = ans*x%mod; return ans;}int C(int n,int m){ return fac[n]*quick( fac[m]*fac[n-m]%mod,mod-2 )%mod;}signed main(){ cin >> n >> k; for(int i=1;i<=n;i++) { int l,r; scanf("%lld%lld",&l,&r); st[++top] = l, st[++top] = -r; } fac[0]=1; for(int i=1;i<=n;i++) fac[i] = fac[i-1]*i%mod; sort( st+1,st+1+2*n,com ); for(int i=1;i<=2*n;i++) { if( st[i]>0 ) shu++; else shu--; if( st[i]>0&&shu>=k ) ans = ( ans+C(shu-1,k-1) )%mod; } cout << ans;}
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/110185499 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年05月01日 15时09分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于JAVA_JSP电子书下载系统
2019-04-30
基于java出租车计价器设计与实现
2019-04-30
基于java的B2C的网上拍卖系统
2019-04-30
十二时辰篇:这该死的 996
2019-04-30
2021最新 上海互联网公司排名
2019-04-30
字节vs快手!取消大小周之战
2019-04-30
送一个闲置显示器!
2019-04-30
Oracle 行转列 pivot函数基本用法
2019-04-30
Oracle字符串分隔符替换(替换奇数个或偶数个)
2019-04-30
Oracle 利用 UTL_SMTP 包发送邮件
2019-04-30
Oracle 自定义函数实现split功能,支持超长字符串和clob类型的分隔
2019-04-30
Oracle 的循环中的异常捕捉和处理
2019-04-30
Oracle通过pivot和unpivot配合实现行列转换
2019-04-30
给Oracle数据库换一个1522端口的监听
2019-04-30
Excel表格数据生成ECharts图表
2019-04-30
阿里云短信服务python版,pyinstaller打包运行时缺少文件
2019-04-30
Oracle的pfile和spfile的一点理解和笔记
2019-04-30
WebService的简单案例记录(Java)
2019-04-30
Html利用PHP与MySQL交互
2019-04-30