题意描述:

给你一个长度为 \(n\) 的序列,让你从中选出 \(k\) 个数组成一个集合,定义这个集合的极限高度为\(a_i...a_k\) 的最大值。

让你求所有的集合极限高度 之和对 \(1000000007\) 的结果。

题解:

套路题 OR 水题

我们还是考虑一个数对答案的贡献,就是他作为区间最大值出现的次数。

假设,比 \(x\) 小的数有 \(m\) 个,那么从这 \(m\) 个数中选出 \(k-1\) 个数在和 \(x\) 这个数拼在一起组合成一个集合的最大值就是 \(x\)

选数的方案数为 \(C_{m}^{k-1}\) ,那么 \(x\) 这个数对答案的贡献就是 \(C_{m}^{k-1} \times x\)

先处理一下阶乘以及阶乘的逆元,在计算每个数对答案的贡献即可。

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define int long long
const int p = 1e9+7;
const int N = 1e5+10;
int n,k,ans,t;
int h[N],jz[N],inv[N];
inline int read()
{ int s = 0,w = 1; char ch = getchar();
while(ch < '0' || ch > '9'){if(ch == '-') w = -1; ch = getchar();}
while(ch >= '0' && ch <= '9'){s = s * 10 + ch - '0'; ch = getchar();}
return s * w;
}
bool comp(int a,int b)
{
return a > b;
}
int ksm(int a,int b)
{
int res = 1;
for(; b; b >>= 1)
{
if(b & 1) res = res * a % p;
a = a * a % p;
}
return res;
}
void YYCH()
{
jz[0] = inv[0] = 1;
for(int i = 1; i <= N-5; i++) jz[i] = jz[i-1] * i % p;
inv[N-5] = ksm(jz[N-5],p-2);
for(int i = N-6; i >= 1; i--) inv[i] = inv[i+1] * (i+1) % p;
}
int C(int n,int m)
{
if(n < m) return 0;
if(n == 0 || m == 0) return 1;
return jz[n] * inv[n-m] % p * inv[m] % p;
}
signed main()
{
freopen("trees.in","r",stdin);
freopen("trees.out","w",stdout);
n = read(); k = read(); YYCH();
for(int i = 1; i <= n; i++) h[i] = read();
sort(h+1,h+n+1,comp);
for(int i = 1; i <= n; i++)
{
ans = (ans + C(n-i,k-1) * h[i] % p) % p;
}
printf("%lld\n",ans % p);
fclose(stdin); fclose(stdout);
return 0;
}

9.23 T1 tree的更多相关文章

  1. noi.ac NOIP2018 全国热身赛 第四场 T1 tree

    [题解] 考虑从小到大枚举边权,按顺序加边. 当前树被分成了若干个联通块,若各个块内的点只能跟块外的点匹配,那么最终的min g(i,pi)一定大于等于当前枚举的边. 判断各个联通块内的点是否全部能跟 ...

  2. Test 6.23 T1 扫雷

    题目背景 题目描述 输入格式 输出格式 样例输入输出 数据范围 解析 我们设两个作弊器的参数分别为\((a_1,b_1)\)和\((a_2,b_2)\),那么设 \[ S1=\frac{a_1}{b_ ...

  3. 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树

    http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...

  4. bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)

    每个节点继承父节点的树,则答案为query(root[x]+root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #i ...

  5. [Codechef - ADITREE] Adi and the Tree - 树链剖分,线段树

    [Codechef - ADITREE] Adi and the Tree Description 树上每个节点有一个灯泡,开始所有灯泡都是熄灭的.每次操作给定两个数 \(a,b\) ,将 \(a,b ...

  6. [luogu3950] 部落冲突 - Link Cut Tree

    有了LCT这不就是思博题了吗 #include <bits/stdc++.h> using namespace std; const int N = 1000000; int n,m,t1 ...

  7. 【433】COMP9024 复习

    目录: 01. Week01 - Lec02 - Revision and setting the scene 02. Week02 - Lec01 - Data structures - memor ...

  8. python设计模式之享元模式

    python设计模式之享元模式 由于对象创建的开销,面向对象的系统可能会面临性能问题.性能问题通常在资源受限的嵌入式系统中出现,比如智能手机和平板电脑.大型复杂系统中也可能会出现同样的问题,因为要在其 ...

  9. python实现常见的设计模式

    Pyhton实现常用的23种设计模式[详解] 关注公众号[轻松学编程],回复[设计模式],获取本文源代码. 在文章末尾可以扫码关注公众号. 一.概念 软件工程中,设计模式是指软件设计问题的推荐方案. ...

随机推荐

  1. Labview学习之路(二)截屏时弹出来的窗口总是关闭

    当屏幕上存在一些弹出来的窗口时,总是会出现一按下截图快捷键那些窗口就关闭的情况,开始我也很苦恼,后来我发现,只要按顺序按下  Ctrl    Alt      A   就可以让那些窗口不关闭,记住一定 ...

  2. spring中bean初始化执行顺序

    常用的javabean的初始化方法为,构造方法,@PostConstruct,以及实现InitializingBean接口的afterPropertiesSet方法. note在构造方法执行时候,sp ...

  3. Black & White(尺取)

    链接:https://ac.nowcoder.com/acm/contest/893/F来源:牛客网 * 第一行一个整数 T ,表示接下来有 T 个样例.* 首先输入n,m,表示S串的长度n和操作次数 ...

  4. vue 多代理

    多代理就要建立多个axios实例对象 vueconfig devServer: { open: true, host: "localhost", // host: "10 ...

  5. vue init深度定制团队自己的Vue template

    大家都知道,使用vue-cli可以快速的初始化一个基于Vue.js的项目,全局安装脚手架之后,你可以通过vue list命令看到官方提供的5个模板 vue list 当开发一个独立项目的时候,使用官方 ...

  6. LAMP 和 LNMP

    #0x01 组成: LAMP==Linux+Apache+Mysql+PHP LNMP==Linux+Nginx+Mysql+PHP LANMP==linux + nginx + apache + m ...

  7. pwnable.kr之fd

    题目如图: 在终端输入:ssh fd@pwnable.kr -p2222 连接到远程终端,如图: 输入ls -l,查看文件: 输入whoami,查看自身用户名称: 根据题目意思我们只要打开flag文件 ...

  8. springboot2.x基础教程:自动装配原理与条件注解

    spring Boot采用约定优于配置的方式,大量的减少了配置文件的使用.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 当springboot启动的时候,默认在容器中注入 ...

  9. 基于jQuery的鼠标悬停时放大图片的效果制作

    这是一个基于jQuery的效果,当鼠标在小图片上悬停时,会弹出一个大图,该大图会跟随鼠标的移动而移动.这个效果最初源于小敏同志的一个想法,刚开始做的时候只能实现弹出的图片是固定的,不能随鼠标移动,最后 ...

  10. Oracle自动存储管理ASM

    参考资料: https://docs.oracle.com/cd/B19306_01/server.102/b14231/storeman.htm#ADMIN036 什么是ASM? ASM是Autom ...