20200104模拟赛 问题C 上台拿衣服
题目



分析:
乍一看不就是从楼上扔鸡蛋那道题吗。。。
然后开始写写写。。。
设f [ i ] [ j ]表示 i 个记者膜 j 次可以验证多少层楼。。。
于是开始递推:
我们选取第 i 个记者去尝试其中一层楼y
如果他被续了(续和膜蛤是sm意思啊2333)

/*龙门粗口*/
如果他被续了,那么说明x<y,然后研究子问题f [ i-1 ] [ j-1 ]
如果他没被续,那么说明x>=y,然后研究子问题f [ i ] [ j-1 ]
包括自己所在这层楼,所以递推式为:
f [ i ] [ j ] = f [ i ] [ j-1 ] + f [ i-1 ] [ j-1 ] + 1
于是我们可以预处理出答案,然后询问时lowerbound就好了。。。
我记得当时开的f[64][64]来着。。。
开了,美滋滋。。。。
一个小时后。。。
不对!!!!
这样连n=100,k=1都算不对?!
突然想起原题有这样一个限制,如果尝试次数超过64就直接输出-1!
差点翻车。。。
于是就往大了开
开到了f[64][100000]
这样能算多少呢。。。
嗯,当k>3时,都是算的出来的。。。
那么找一下k=1,2,3的规律吧。。
k=1时,ans就是n
k=2时,ans满足ans*(ans+1)/2>=n
k=3时。。。
不会诶。。。
那么为3新开一个怎么样
又开了个g[3][3000000]
咦,跑出来了,稳了。。。
结果。。。

枯了出来。。。
真该死啊,改小一点就过了。。。
但是这道题的奇奇怪怪的技巧有必要记一下2333
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector> #define maxn 100005
#define maxm 65
#define INF 1000000000000000000ll using namespace std; inline long long getint()
{
long long num=,flag=;char c;
while((c=getchar())<''||c>'')if(c=='-')flag=-;
while(c>=''&&c<='')num=num*+c-,c=getchar();
return num*flag;
} long long f[maxm][maxn];
long long g[][*maxn];
long long N,K; inline void init()
{
for(int i=;i<maxm;i++)for(int j=;j<maxn;j++)f[i][j]=min(f[i][j-]+f[i-][j-]+,INF);
for(int i=;i<=;i++)for(int j=;j<*maxn;j++)g[i][j]=min(g[i][j-]+g[i-][j-]+,INF);
} inline void solve(long long N)
{
long long l=,r=1ll<<;
while(l<r)
{
long long mid=(l+r)>>;
if(1ll*mid*(mid+)/<N)l=mid+;
else r=mid;
}
printf("%lld\n",l);
} int main()
{
int T=getint();
init();
while(T--)
{
N=getint(),K=getint();
if(K==)printf("%lld\n",N);
else if(K==)solve(N);
else if(K==)printf("%d\n",lower_bound(g[K]+,g[K]+*maxn,N)-g[K]);
else printf("%d\n",lower_bound(f[K]+,f[K]+maxn,N)-f[K]);
}
}

20200104模拟赛 问题C 上台拿衣服的更多相关文章
- 20200104模拟赛 问题A 图样
题目 分析: 老规矩,遇到期望要准备好随时投降... 大致想到了按位处理,然后分别下去搜索,再用组合数加加减减一下... 但是两个连通块之间连边的期望怎么算呢? 很好,投降... 下来看题解... 果 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 小奇模拟赛9.13 by hzwer
2015年9月13日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- [GRYZ]寒假模拟赛
写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...
随机推荐
- opacity兼容性以及存在问题处理
opacity兼容性以及存在问题处理 opacity兼容性 opacity属性是CSS3的属性,用于设置元素的不透明级别.语法: opacity: value | inherit; ①值value表示 ...
- win10 配置g++环境
一.配置g++编译器的环境 1.将g++编译器的位置添加到环境变量path中,安装了C++ IDE的可以在IDE的安装目录下寻找 例如:C:\MySoftware\dev\Dev-Cpp\MinGW6 ...
- c++ CArray函数
CArray属于MFC,是一个数组模板类.MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型.常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象 ...
- 聚类分析 一、k-means
前言 人们常说"物以类聚,人以群分",在生物学中也对生物从界门纲目科属种中进行了划分.在统计学中,也有聚类分析法,通过把相似的对象通过静态分类的方法分成不同的组别或者更多的子集,从 ...
- Webpack4不求人系列(1)
Webpack是一个现在Javascript应用程序的模块化打包器,在Webpack中JS/CSS/图片等资源都被视为JS模块,简化了编程.当Webpack构建时,会递归形成一个模块依赖关系图,然后将 ...
- 如何从0到1设计一个MQ消息队列
消息队列作为系统解耦,流量控制的利器,成为分布式系统核心组件之一. 如果你对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现非常重要. 不仅知其然还要知其所以然,这才是一个优秀的工程师需要具 ...
- java连接elasticsearch:查询、添加数据
导入jar包 <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport --> <depe ...
- 【题解/模板】P1248 加工生产调度(贪心)
[题解/模板]P1248 加工生产调度(贪心) 分析: \(A\)流水线的时间是确定的,所以现在就是要让\(b\)的时间尽量短 \(tB > tA\),除非所有东西都不需要\(b\).(t指结束 ...
- $CH$ $0x50$ & $0x51$ 做题记录
[X]$Mr.Young's\ Picture\ Permutations$ 前面这儿写了挺多道辣,,,懒得写辣$QAQ$ (后面所有同上都是同这个$QwQ$ [X]$LCIS$ 做过了,看这儿 $u ...
- CommandPattern(命令模式)-----Java/.Net
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式.请求以命令的形式包裹在对象中,并传给调用对象.调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该 ...