奶牛编号

jozj 2932

题目大意

求出有m个1的01串中字典序第n大的字典序

输入样例

7 3

输出样例

10110

数据范围

1⩽M⩽101 \leqslant M \leqslant 101⩽M⩽10
1⩽N⩽1071 \leqslant N \leqslant 10^71⩽N⩽107

解题思路

我们先从01串长度入手:
先对m=1m = 1m=1的特判
然后m⩾2m \geqslant 2m⩾2的我们用组合数来判断当前位是否为1(详情见代码)

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
ll n, m, a, b, p;
int main()
{scanf("%lld%lld", &n, &m);if (m == 1)//特判{printf("1");for (int i = 1; i < n; ++i)printf("0");return 0;}for (ll i = 5000; i > 0; --i)//C_(5000,2)>10^7,已经足够了if (!m) printf("0");else{a = b = 1;//c_(i,m)就是这一位是0的组合数for (ll j = m; j > 1; --j)//组合数公式的分母部分b *= j;for (ll j = i; j > i - m && a / b < n; --j)//分子部分,a/b<n是防止数据过大a *= j;if (a / b < n)//如果这一位是1那n就比C_(i,m)大{printf("1");m--;n -= a / b;p = 1;}else if (p) printf("0");}if (m) printf("1");else printf("0");return 0;
}

【数学】奶牛编号(jzoj 2932)相关推荐

  1. 【DP】和谐的奶牛(jzoj 1750)

    和谐的奶牛 题目大意: 有一些括号(保证是合法的,合法:每一个左括号都有自己配对的有括号),现在要将这些括号分为两组(其中一组可以为空),分完组后括号的顺序要和原来的一样,问有多少种方法使括号分组,结 ...

  2. bzoj 3374: [Usaco2004 Mar]Special Serial Numbers 特殊编号

    3374: [Usaco2004 Mar]Special Serial Numbers 特殊编号 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 20 ...

  3. 【word】常用数学符号、数学表达式的快捷键(持更)

    在word中输入数学符号,可以在插入菜单栏中找到符号选项,点进去挨个找要插入的符号,比如集合里的"属于".这种插入的方式很麻烦,写一个"x²+y²≤1"就要重复 ...

  4. 2049. 奶牛摄影

    奶牛们今天非常调皮. 农夫约翰想给站成一排的奶牛拍一张照片,但是在他有机会拍下照片之前,奶牛一直在移动. 具体的说,约翰有 N 头奶牛,编号 1∼N. 约翰想拍一张奶牛以特定顺序站成一排的照片,这个顺 ...

  5. 2020.08.08【NOIP提高组】模拟:奶牛的图片 总结

    2020.08.08[NOIP提高组]模拟:奶牛的图片 总结 Description Farmer John希望给他的 N ( 1 ≤ N ≤ 100 , 000 ) N(1\leq N\leq100 ...

  6. BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap

    题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...

  7. [spfa][差分约束] 洛谷 P3084 照片Photo

    题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...

  8. Hoofball(B题)

    题面: 题目大意: 为了准备即将到来的马蹄球锦标赛,农夫约翰正在训练他的N头奶牛.奶牛都站在谷仓的一边,排成一条很长的队伍,奶牛站在单位离开谷仓(1< xi< 1000).每头牛都站在不同 ...

  9. [爱奇艺]校招笔试(2017/9/11)

    题目2:  如果一个数字满足以下条件,就称它是奇异数  1.这个数字至少有两位  2.这个数字的最低两位是相同的  计算区间[L,R]内的所有奇异数. 参考答案: #include <iostr ...

最新文章

  1. IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
  2. php mysql 修改密码_设置及修改MySQL root用户密码
  3. jquery1.6中的.prop()和.attr()异同
  4. Linux服务器编程 用SIGURG检测带外数据是否到达
  5. IOS疯狂基础之GIF图片的显示
  6. Adwonder笔记
  7. AE插件自动创建图层工具LayerGenerators使用教程
  8. android 生成长截图,【UNIAPP截长图】方案之一:滚动截屏 Android
  9. 区块链-WeBase企业部署
  10. SpringMVC中的MultipartResolver,LocaleResolver
  11. 作为一名APP开发者,你更Care什么?
  12. jovi语音助手安装包_Jovi语音助手安装包下载-vivoJovi语音助手v3.1.1.0 最新版-腾牛安卓网...
  13. 易拉宝Roll up Banner
  14. 揭秘考研英语阅读理解技巧(何凯文)
  15. 计算机前沿技术云论文,计算机前沿技术论文.doc
  16. 为Adobe Reader添加书签功能
  17. 轻松搞定PMP考试的计算题---挣值管理(EVM)
  18. newff新旧用法/minmax函数的用法
  19. 隐写术之pngIDAT隐藏信息
  20. 【职坐标】java面向对象三大特性(二)——继承详解

热门文章

  1. HTML第八章ppt,第八章 web基础教程之HTML篇v1.0.ppt
  2. php super和parent,parent()、parents()的用法区别
  3. java控制系统音量_Java 控制 Windows 系统音量-Go语言中文社区
  4. 计算机科普小知识——Win7系统32位与64位的区别,该如何选择?
  5. 算法设计与分析——回溯法——n皇后问题
  6. Pandas中的 transform() 结合 groupby() 用法示例
  7. Java面向对象编程(中级)
  8. [Java基础]自定义注解 格式本质
  9. 《C++ Primer》7.5.2节练习
  10. mysql查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层如何执行吗?