【HDOJ5981】Guess the number(DP)
题意:A和B玩一个游戏:A在[L,R]之间随机选取一个数X,之后由B来猜这个数,
如果猜的数比X小,则A就告诉B你猜的数小了,
如果猜的数等于X则游戏结束,
如果猜的数大于X,则在这之后A只会回答B是否猜对了,而不会告诉B是否猜小了。
问:在最坏的情况下,B猜到X时最少需要猜多少次,并输出方案数对100000073取模
L,R<=5e6
思路:少了蛋数量的鹰蛋……
f[i]表示长度为i的区间需要的询问次数
p[i]表示至少需要i次询问的最短区间长度
a[i]表示区间长度为i的最优选择方案数
i可以由[i-f[i],p[f[i]]-1]转移而来
i-f[i]是还剩f[i]次机会,每次选择猜的数+1
p[f[i]]-1是需要测试f[i]-1次的最大区间长度
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<bitset>
typedef long long ll;
using namespace std;
#define N 5100000
#define oo 10000000
#define MOD 100000073 int f[N],p[N],a[N],s[N]; int main()
{
for(int i=;i*(i+)/<N;i++)
for(int j=i*(i-)/+;j<=i*(i+)/;j++) f[j]=i;
for(int i=;i*(i-)/+<N;i++) p[i]=i*(i-)/+;
a[]=a[]=;
a[]=;
s[]=; s[]=;
for(int i=;i<N;i++)
{
int x=i-f[i];
int y=p[f[i]]-;
a[i]=(s[y]-s[x-]+MOD)%MOD;
s[i]=(s[i-]+a[i])%MOD;
}
int x,y;
while(scanf("%d%d",&x,&y)!=EOF) printf("%d %d\n",f[y-x+],a[y-x+]);
return ;
}
【HDOJ5981】Guess the number(DP)的更多相关文章
- 【BZOJ】1068: [SCOI2007]压缩(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1068 发现如果只设一维的话无法转移 那么我们开第二维,发现对于前i个来说,如果确定了M在哪里,第i个 ...
- 【CF1017C】The Phone Number(构造)
题意:要求构造一个1-n的排列,使得它的LIS+LDS最小 n<=1e5 思路:一个百度之星时候从LYY处听来的结论:1-n随机排列的LIS期望是根号级别的 考虑将LIS与LDS都构造成根号级别 ...
- 【POJ】3616 Milking Time(dp)
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10898 Accepted: 4591 Des ...
- 【POJ】2385 Apple Catching(dp)
Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13447 Accepted: 6549 D ...
- 【51nod1519】拆方块[Codeforces](dp)
题目传送门:1519 拆方块 首先,我们可以发现,如果第i堆方块被消除,只有三种情况: 1.第i-1堆方块全部被消除: 2.第i+1堆方块全部被消除:(因为两侧的方块能够保护这一堆方块在两侧不暴露) ...
- 【bzoj1925】地精部落[SDOI2010](dp)
题目传送门:1925: [Sdoi2010]地精部落 这道题,,,首先可以一眼看出他是要我们求由1~n的排列组成,并且抖来抖去的序列的方案数.然后再看一眼数据范围,,,似乎是O(n^2)的dp?然后各 ...
- 【ZOJ2278】Fight for Food(dp)
BUPT2017 wintertraining(16) #4 F ZOJ - 2278 题意 给定一个10*10以内的地图,和p(P<=30000)只老鼠,给定其出现位置和时间T(T<=1 ...
- 【vijos】1764 Dual Matrices(dp)
https://vijos.org/p/1764 自从心态好了很多后,做题的确很轻松. 这种题直接考虑我当前拿了一个,剩余空间最大能拿多少即可. 显然我们枚举每一个点拿出一个矩形(这个点作为右下角), ...
- 【Luogu】P3856公共子串(DP)
题目链接 DP.设last[i][j]是第i个串字符'j'所在的最后的位置,f[i][j][k]是第一个串匹配到i,第二个串匹配到j,第三个串匹配到k,最多的公共子串数. 那么我们三重循环i.j.k, ...
随机推荐
- 64位系统InlineHook
APIHook64Class.h #ifndef APIHOOK64CLASS_H_ #define APIHOOK64CLASS_H_ #include <Windows.h> clas ...
- ceph 性能
mysql在以下设备备份耗时,供大家参考: 备份文件大小 sata用时 ceph用时 nas挂载sata盘用时 7G 1分钟 15G 2分钟 21分钟 47G 8分钟 82分钟 274 ...
- uva1422 二分法+优先队列贪心
题意:有n个任务,每个任务必须在在时刻[r, d]之内执行w的工作量(三个变量都是整数).处理器执行的速度可以变化,当速度为s时,一个工作量为w的任务需要 执行的时间为w/s个单位时间.另外不一定要连 ...
- 1010: [HNOI2008]玩具装箱toy(斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 12280 Solved: 5277[Submit][S ...
- 03015_JSTL技术
1.JSTL概述 (1)JSP(JSP Standard Tap Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能.jstl出现的目的同el一样也是要替代js ...
- lambda表达式与函数接口的关系以及使用案例
lambda表达式与函数式接口是结合使用的. 函数式接口:接口中只有一个抽象方法的接口,其中可以包括default修饰,static 修饰的实例方法.函数式接口可以在接口上添加@FuncationIn ...
- Creating Hyperv Agent Installer
Creating Hyperv Agent Installer Skip to end of metadata Created by Anshul Gangwar, last modified ...
- wim
wim 编辑 WIM是英文Microsoft Windows Imaging Format(WIM)的简称,它是Windows基于文件的映像格式.WIM 映像格式并非现在相当常见的基于扇区的映像格式, ...
- 【Median of Two Sorted Arrays】cpp
题目: There are two sorted arrays A and B of size m and n respectively. Find the median of the two sor ...
- IOS开发学习笔记015-block和protocol
一.block block 代码段 标识是 ^ block 和函数很像 1.可以保存代码 2.有返回值 3.有形参 格式 返回值 (block名)(形参列表) = ^(形参列表) {代码段 ...