题目

分析:

乍一看不就是从楼上扔鸡蛋那道题吗。。。

然后开始写写写。。。

设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 上台拿衣服的更多相关文章

  1. 20200104模拟赛 问题A 图样

    题目 分析: 老规矩,遇到期望要准备好随时投降... 大致想到了按位处理,然后分别下去搜索,再用组合数加加减减一下... 但是两个连通块之间连边的期望怎么算呢? 很好,投降... 下来看题解... 果 ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  4. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  5. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  6. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  7. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  8. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  9. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

随机推荐

  1. 为什么我们要使用DTO

    基础结构解释 UI-表现层-与控制器打交道(UI向Controller 传递数据时使用DTO(数据传输对象)) Service-应用服务层 Domain 领域对象 DTO 数据传输对象,一般只包含基础 ...

  2. Oracle如何分组排序并产生序号

    SELECT C.ORG_SHORTNAME, B.USER_NAME, ROW_NUMBER () OVER ( PARTITION BY B.ORG_ID ORDER BY A.TOTAL_SCO ...

  3. 北京师范大学第十七届程序设计竞赛决赛 G

    传送门:https://ac.nowcoder.com/acm/contest/895/G 题意: \[ 操作 1:L,R,X,Y,对所有L≤i≤R赋值 \\ Ai=min(Ai,(i−L)×Y+X) ...

  4. 解决IDEA下tomcat启动server乱码

    亲测成功的方式: 配置TOMCAT时,在VM  opthions 添加 -Dfile.encoding=UTF-8

  5. Google 浏览器设置打开超链接到新窗口标签页

    一.windows  按住Ctrl + 鼠标点击,在新窗口打开,停留在当前页面: 按住Ctrl + Shift + 鼠标点击,在新窗口打开,停留在新窗口: 登录Google账号,管理Google账号, ...

  6. 37.html

    转载:https://www.cnblogs.com/yuanchenqi/articles/5976755.html 前端概述 import socket def main(): sock = so ...

  7. 利用脚本运行APP

    1.电脑安装Xcode(iOS)/Androidsdk(Android),连接手机,并在手机上安装相应代理,下图为iOS的Xcode代理样式: 2.打开Appium,点击搜索图标,添加并设置该手机信息 ...

  8. `docker数据持久化volume和bind mounts两种方式

    将数据从宿主机到容器的三种方式: ,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式 ,bind mounts 将宿主机上的任 ...

  9. HTTP 安全头配置

    在本篇中,我将介绍常用的安全头信息设置,并对每个响应头设置给出一个示例. HTTP安全头说明 Content-Security-Policy 内容安全策略(CSP)常用来通过指定允许加载哪些资源来防止 ...

  10. Django 开发项目创建

    创建项目环境 """ 为项目创建一个虚拟环境 >: mkvirtualenv 环境名 """ """ 按 ...