LOJ 6432 「PKUSC2018」真实排名——水题
2024-09-06 00:36:44
题目:https://loj.ac/problem/6432
如果不选自己,设自己的值是 x ,需要让 “ a<x && 2*a>=x ” 的非 x 的值不被选;如果选自己,需要让 “ a>=x && 2*a<x ” 的非 x 的值被选。
注意是 “非 x ” 的值。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
int rdn()
{
int ret=;bool fx=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')fx=;ch=getchar();}
while(ch>=''&&ch<='')ret=ret*+ch-'',ch=getchar();
return fx?ret:-ret;
}
const int N=1e5+,mod=;
int upt(int x){while(x>=mod)x-=mod;while(x<)x+=mod;return x;}
int pw(int x,int k)
{int ret=;while(k){if(k&)ret=(ll)ret*x%mod;x=(ll)x*x%mod;k>>=;}return ret;} int n,k,a[N],b[N],jc[N],jcn[N];
bool cmp(int a,int b){return a>b;}
void init()
{
jc[]=;for(int i=;i<=n;i++)jc[i]=(ll)jc[i-]*i%mod;
jcn[n]=pw(jc[n],mod-);
for(int i=n-;i>=;i--)jcn[i]=(ll)jcn[i+]*(i+)%mod;
}
int C(int n,int m)
{
if(n<m)return ;
return (ll)jc[n]*jcn[m]%mod*jcn[n-m]%mod;
}
int cal(int x)//a<x&&2*a>=x
{
int l=,r=n,L=n+;
while(l<=r)
{
int mid=l+r>>;
if(b[mid]>=x)l=mid+;
else if(*b[mid]<x)r=mid-;
else L=mid,r=mid-;
}
l=; r=n; int R=;
while(l<=r)
{
int mid=l+r>>;
if(b[mid]>=x)l=mid+;
else if(*b[mid]<x)r=mid-;
else R=mid,l=mid+;
}
if(L<=R) return R-L+; return ;
}
int cal2(int x)//a>=x&&a<2*x
{
int l=,r=n,x2=*x,L=n+;
while(l<=r)
{
int mid=l+r>>;
if(b[mid]<x)r=mid-;
else if(b[mid]>=x2)l=mid+;
else L=mid,r=mid-;
}
l=; r=n; int R=;
while(l<=r)
{
int mid=l+r>>;
if(b[mid]<x)r=mid-;
else if(b[mid]>=x2)l=mid+;
else R=mid,l=mid+;
}
if(x<x2)R--;//self
if(L<=R) return R-L+; return ;
}
int main()
{
n=rdn();k=rdn();
for(int i=;i<=n;i++)
a[i]=b[i]=rdn();
sort(b+,b+n+,cmp); init();
for(int i=;i<=n;i++)
{
int ct=cal(a[i]),ans=;
ans=C(n-ct-,k);
ct=cal2(a[i]);
if(ct<k)ans=upt(ans+C(n-ct-,k-ct-));
printf("%d\n",ans);
}
return ;
}
最新文章
- C++数组实现的循环队列
- 作业二:Github注册账户过程
- buildroot 添加ssh,以及使用stftp 服务
- 由简入繁实现Jquery树状结构
- 【Spring学习笔记-1】Myeclipse下Spring环境搭建
- 将centos系统中的网卡em1还原为eth0
- 安装php时,make步骤报错make: *** [ext/gd/gd.lo] Error 1
- CentOS安装搜狗词库
- 从并发处理谈PHP进程间通信(二)System V IPC
- 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)
- BZOJ3223/洛谷P3391 - 文艺平衡树
- 373. Find K Pairs with Smallest Sums (java,优先队列)
- C++:多态浅析
- iOS7中修改StatusBar的显示颜色
- 【环境配置】配置ndk
- iOS APP 新增表情包拓展
- Maven 修改默认JDK版本
- python 数据分析 Matplotlib常用图表
- 【spring data jpa】jpa中使用in查询或删除 在@Query中怎么写 ,报错:org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field &#39;goodsConfigUid&#39; cannot be found on null 怎么处理
- datagridview 日期列排序
热门文章
- mybatis缓存机制(转)
- 正则表达式从入门到放弃「Java」
- Python分布式爬虫必学框架Scrapy打造搜索引擎 学习教程
- mybatis配置mapper.xml 的基本操作
- let/const及块级作用域
- 凸包模板——Graham扫描法
- CVE-2013-2094 porting to x86-32 分析
- SQL 一次插入多次数据
- Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
- TCP为什么会采用三次握手,若采用二次握手可以吗?