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)题,经过他们优( ...
随机推荐
- CF Round #580(div2)题解报告
CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...
- 特殊字符,如Emoji表情Base64存储到数据库
有些特殊字符,如Emoji,存储到oracle数据库就会变成乱码,解决方案就是Base64转码后存储到数据库,取出后再解码传输,经过验证是可以的. 编码存储,接收参数转json再.ToString() ...
- 牛客练习赛4 A Laptop
传送门:https://ac.nowcoder.com/acm/contest/16/A 题意: 每个物品有2个属性,求有多少个物品的两个属性完全小于另一个物品 题解: 求逆序对板子题 代码: /** ...
- VRchat模型之unity
VRChat模型制作及上传总篇(包含总流程和所需插件):https://www.cnblogs.com/raitorei/p/12015876.html 0.新建工程, 导入VRCSDK及动态骨骼插件 ...
- 13.python基础试题(二)
借鉴:https://www.cnblogs.com/shengyang17/p/8543712.html https://www.cnblogs.com/you-wei1/p/9693254.htm ...
- 1061 判断题 (15 分)C语言
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量.第二行给出 M ...
- java基础之----redi分布式锁
最近项目中,用到了redis分布式锁,使用过程有些心得,所以希望分享给大家. 首先我们意识里要知道分布锁有哪些? 分布式锁一般分三种,基于数据库的乐观锁,基于redis的分布式锁,基于zookeper ...
- Java开发中的各种乱码问题
乱码问题 其实解决乱码问题,就是保证所有的编码格式一致,就不会出现问题. 控制台乱码 修改idea的控制台格式 修改 idea.exe.vmoptions和idea64.exe.vmoptions 在 ...
- TypeScript 源码详细解读(1)总览
TypeScript 由微软在 2012 年 10 月首发,经过几年的发展,已经成为国内外很多前端团队的首选编程语言.前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript ...
- Date类(java.util)和SimpleDateFormat类(java.text)
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默 ...