Gym 100425A Luggage Distribution (组合数学,二分)
2024-08-30 11:43:11
一开始想着球盒模型,数据范围大,递推会GG。
用凑的方法来算方案。往n个小球之间插两个隔板,方案是(n-1)*(n-2)/2,不区分盒子,三个盒子小球数各不相同的方案数被算了6次(做排列),
两个相同的被算了3次,如果n可以被3整除,那么3个相同的被算了一次。全部都加到6,在一起除以6就得到总的方案数。
方案数对n的函数具有单调性,因此二分答案。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; ll cal(ll n)
{
return ((n-)*(n-)/+(n-)/*+!(n%)*)/;
} ll chaos(ll x)
{
ll L = , R = 2e9,mid;
for(;L<R; cal(mid)<x?L=mid+:R=mid ) mid = (L+R)>>;
return L;
} int main()
{
ll L,R;
scanf("%I64d%I64d",&L,&R);
ll sL = chaos(L), sR = chaos(R+);//由于二分本身是找下界所以写成R+1变成找上界
printf("%I64d",sR-sL);
}
最新文章
- Ubuntu 12.04 安装 Apache2+PHP5+MySQL
- 关于call和apply函数的区别及用法
- 【Swift】iOS 9 Core Spotlight
- [转]ExtJs:xtype的含义
- CocoaPods使用 主要带图。转载。
- 异步I/O操作
- Redis学习笔记一:基本安装和配置
- JMeter学习(十九)JMeter测试MongoDB
- python深复制和浅复制
- HTML DOM(学习笔记一)
- Spring 官方下载地址(非Maven)
- [Swift]LaunchScreen.storyboard如何跳转到到Main.storyboard
- js便签笔记(5)——Dean Edwards大牛的跨浏览器AddEvent()设计(不知道是不是jQuery事件系统的原型)
- Vue-router的基本用法
- Linux驱动之串口(UART)
- js数组之迭代器方法
- 玩转mongodb(六):索引,速度的引领(普通索引篇)
- Codeforces Round #288 (Div. 2) E. Arthur and Brackets 贪心
- AutoPlay Menu Builder入门教程
- 20145204 《Java程序设计》第7周学习总结