传送门

文章目录

  • 题意:
  • 思路:

题意:

给你nnn个灯,每次可以打开一个灯,当连续的kkk个灯有至少两个灯开着的时候停止,问最终期望能打开多少灯。

思路:

由于不想打latexlatexlatex,所以手推了公式。

实现起来就很简单啦。
ansansans初始为111是因为i=0i=0i=0的时候概率显然为111。

// Problem: E. Crypto Lights
// Contest: Codeforces - Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)
// URL: https://codeforces.com/problemset/problem/1523/E
// Memory Limit: 256 MB
// Time Limit: 3000 ms
//
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n,k;
LL fun[N],inv[N];LL qmi(LL a,LL b) {LL ans=1;while(b) {if(b&1) ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans%mod;
}void init() {fun[0]=1;for(int i=1;i<N;i++) fun[i]=fun[i-1]*i%mod;inv[N-1]=qmi(fun[N-1],mod-2);for(int i=N-2;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod;
}LL C1(int n,int m) {return fun[n]*inv[n-m]%mod*inv[m]%mod;
}LL C2(int n,int m) {return fun[n-m]*fun[m]%mod*inv[n]%mod;
}int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0); init();int _; scanf("%d",&_);while(_--) {scanf("%d%d",&n,&k);LL ans=1;for(int i=1;i<=n-1;i++) if(n-1ll*(i-1)*(k-1)>=i) ans+=C1(n-1ll*(i-1)*(k-1),i)*C2(n,i)%mod,ans%=mod;printf("%lld\n",ans%mod);}return 0;
}
/**/

Deltix Round, Spring 2021 E. Crypto Lights 组合数学 + 推公式相关推荐

  1. CodeForces - 1523E Crypto Lights(组合数学+推公式)

    题目链接:点击查看 题目大意:给出 nnn 个初始时熄灭的灯泡,每次操作会等概率打开一个灯泡,当每 kkk 个连续的灯泡中出现了大于一个亮着的灯泡时停止操作,问期望操作次数是多少 题目分析:组合数学题 ...

  2. Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)

    Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2) 题号 题目 知识点 A Game of Life B Lor ...

  3. Deltix Round, Spring 2021 D. Love-Hate 随机化 + sos dp(高维前缀和)

    传送门 文章目录 题意: 思路: 题意: 给你nnn个朋友,一共有mmm种货币,一个朋友最多喜欢ppp种,用二进制给出111代表喜欢,让你选出最多的一个货币集合使得至少有⌈n2⌉\left \lcei ...

  4. Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2)

    Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2) 题号 题目 知识点 A A Variety of Opera ...

  5. 牛客多校6 - Binary Vector(组合数学+推公式)

    题目链接:点击查看 题目大意:给出一个 n * n 的 01 矩阵,求满秩的概率 题目分析:首先公式是: 稍微解释一下吧,将 n * n 的矩阵视为 n 个长度为 n 的向量,对于每一个长度为 n 的 ...

  6. 另类推柿子 Crypto Lights

    Crypto Lights 大意: 有 n 个台灯初始时都是暗的,每次等概率随机一个暗台灯将其点亮,若点亮后存在一个长度为 k 的连续段有大于一个台灯被点亮则立刻停止,求期望点亮多少台灯.答案对1e9 ...

  7. spring boot 集成socketIo 做消息推送

    spring boot 集成socketIo 做消息推送 项目需求 代码展示 客户端代码 服务端代码 项目需求 后台管理系统用户小铃铛,消息推送功能并展示有多少条消息或者小红点 代码展示 客户端代码 ...

  8. 腾讯2021届暑期实习内推开始啦

    我是2019届进入腾讯的学长腾讯2021届暑期实习内推已经开始啦,现在回馈学弟学妹 可以内推直接给面试官,快速安排面试~希望有能力.有梦想的你加入鹅厂这个大家庭 全军出击~~~. [校招简介] 腾讯暑 ...

  9. ByteCTF 2021(Crypto部分)

    easyxor 核心加密算法convert就是四个shift,写个逆就行,flag被分为两部分,前半部分用OFB模式加密,后半部分用CBC模式加密,由于CBC模式的缺陷,当我们只考虑最后一块时,将倒数 ...

最新文章

  1. QIIME 2用户文档. 5粪菌移植分析练习Fecal microbiota transplant (FMT) study
  2. 华为程序员频交Linux内核补丁遭质疑,管理员后续回应:承认贡献,但请不要琐碎提交...
  3. jvm性能调优实战 - 27亿级数据量的实时分析引擎,为啥频繁发生Full GC
  4. Curl http_code 状态码
  5. armgcc交叉编译的文件无法运行_认识GCC交叉编译器
  6. bzoj3122 [Sdoi2013]随机数生成器(bsgs+扩欧+数列)
  7. JavaFX 2.0和Scala,例如牛奶和饼干
  8. js常用字符串处理方法
  9. ASP.NET Core:使用IdentityServer构建可靠的身份验证和授权系统
  10. HTTP POST发消息
  11. Linux文件类型 扩展名的作用
  12. 【08月21日】指数估值排名
  13. 安利几个实用且有趣的Excel实用技巧给你
  14. SpringMvc+饿了么UI组件+七牛云做图片上传
  15. 使用Java 2D绘制黑白太极图案
  16. 花开花落又是一度春秋,聚散离别见证一场青春。
  17. 《清华园日记》读后感
  18. React 所见即所得编辑器 Vditor
  19. SeaJS入门教程系列之使用SeaJS(二)
  20. 面向特定问题的开源算法管理和推荐(六)

热门文章

  1. python怎么执行程序_小鹅通视频怎么下载?用python实现小鹅通视频下载(二)
  2. 爱因斯坦留下的预言还有几个未实现?
  3. 现在的男生真的太惨了
  4. 豆瓣最高评分8.1!万维钢:读懂这本书,你会比身边人更深的理解这个时代
  5. 82 个代码案例实践,带你学好 Python 机器学习
  6. 50张神图……好不容易才找到完整版!
  7. oracle与sqlserver差异,Oracle与SQLServer的SQL语法差异总结
  8. 生产者消费者_【线程通信】生产者消费者模型
  9. ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题
  10. java main 声明_Java中main方面面试题