题目1 : Guess Number with Lower or Higher Hints

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

There is a game about guessing number between 1 and N. This game is played by two people A and B. When A guesses a number(e.g. 5), he needs to pay that amount of dollars($5). Then B will give a hint whether A's guess is lower, higher or correct. B will choose the hint that forces to gain maximal amount of earning as long as it's not conlict with previous hints.

Assume they are both smart enough. What is the minimal amount that A needs to pay to finish this game? That is, there is only one number left and A will surely guess it right. Careful: B does not have a fixed number in mind.

输入

An integer N. (1 <= N <= 200)

输出

The minimal amount A needs to pay.

样例输入
  1. 5
样例输出
  1. 6

题目意思:

  A和B玩猜数字的游戏,范围是1到N,B心中想一个数,然后A猜一个数k,付出的费用就是 k,这时候B会告诉A,猜的数是高了,低了,还是猜对了,并且B每次的提示都要和前面所有的提示不冲突。B要使得尽可能的让A多出钱,而A要尽可能的少出钱,求A猜对B心中想的数要付出的最小代价。

思路:

  看懂大概题意就直接想到了二分,这种猜数字的题一般就是二分猜的次数是最少的,然后果断写了二分,wa了一次。后面再仔细看了下题目,二分的时候是只站在A考虑的,B想的数字是什么并没有考虑,然后越想越觉得是一个区间DP的题,果断写了一个区间DP,AC~~

  具体区间DP思路:我定义dp[i][j]为从i到j这个区间中猜中j所需要花费的最小代价,假设我在ij之间猜了一个数k,那么我猜到j的最小代价就是   max(i到k-1的最小代价, k+1到j的最小代价)+k。

  AC代码:

  1. // Asimple
  2. #include <bits/stdc++.h>
  3. #define debug(a) cout<<#a<<" = "<<a<<endl
  4. #define sysp system("pause")
  5. using namespace std;
  6. typedef long long ll;
  7. const int maxn = + ;
  8. const int INF = 1e9+;
  9. ll T, n, sum, num, m, t, len, k;
  10. ll dp[maxn][maxn];
  11.  
  12. void input() {
  13. while( cin >> n ) {
  14. for(int l = n; l>; l -- ) {
  15. for(int r = l + ; r <= n; r ++) {
  16. dp[l][r] = INF;
  17. for(int k=l; k<=r; k++) {
  18. dp[l][r] = min(dp[l][r], max(dp[l][k-], dp[k+][r])+k);
  19. }
  20. }
  21. }
  22.  
  23. cout << dp[][n] << endl;
  24. }
  25. // sysp;
  26. }
  27.  
  28. int main() {
  29. input();
  30. return ;
  31. }

hiho一下 第206周的更多相关文章

  1. 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point

    // 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point // 思路:直接暴力绝对T // 先确定x范围,每个x范围内,离圆心最远的点一定是y轴两端的点.枚举x的范围,再 ...

  2. hiho一下 第115周:网络流一•Ford-Fulkerson算法 (Edmond-Karp,Dinic,SAP)

    来看一道最大流模板水题,借这道题来学习一下最大流的几个算法. 分别用Edmond-Karp,Dinic ,SAP来实现最大流算法. 从运行结过来看明显SAP+当前弧优化+gap优化速度最快.   hi ...

  3. 【hiho一下第77周】递归-减而治之 (MS面试题:Koch Snowflake)

    本题是一道微软面试题,看起来复杂,解出来会发现其实是一个很简单的递归问题,但是这道题的递归思路是很值得我们反复推敲的. 原题为hihocoder第77周的题目. 描述 Koch Snowflake i ...

  4. hiho一下 第207周

    题目1 : The Lastest Time 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 What is latest time you can make with ...

  5. hiho一下第128周 后缀自动机二·重复旋律5

    #1445 : 后缀自动机二·重复旋律5 时间限制:10000ms 单点时限:2000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数 ...

  6. 【hiho一下】第一周 最长回文子串

    题目1:最长回文子串 题目原文:http://hihocoder.com/contest/hiho1/problem/1 [题目解读] 题目与 POJ 3974 palindrome 基本同样.求解最 ...

  7. Solution: 最近公共祖先·一 [hiho一下 第十三周]

    题目1 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中 ...

  8. hiho一下十六周 RMQ-ST算法

    RMQ-ST算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在美国旅行了相当长的一段时间之后,终于准备要回国啦!而在回国之前,他们准备去超市采购一些当 ...

  9. hiho一下 第九十七周 数论六·模线性方程组

    题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...

随机推荐

  1. 中文乱码总结之JSP乱码

    一.JSP中文乱码问题 JSP页面的汉字显示为乱码,而英文和阿拉伯数字正常. 二.原因 汉字编码时用的字符集 与解码用的字符集不一致:所有的字符集都兼容ASCII码,所以英文.数字不存在乱码. 编号 ...

  2. kubenetes master重启以后,服务异常排查

    k8s集群环境:三台机器,一台master,三个node(每台都安装node服务) 问题藐视:重启的时候,发现master的服务都能正常启动,但是就是不好使,看/var/log/message日志也没 ...

  3. .NET Core开发日志——GraphQL

    GraphQL是什么 GraphQL既是一种用于API的查询语言也是一种通过使用对应数据的类型系统,执行数据查询的服务端运行时.GraphQL没有局限于任何数据库或存储引擎,而是通过既有代码及数据获得 ...

  4. A股魔咒

    4.19魔咒 从2007年开始每逢4月19日大盘大跌. 基金“88”魔咒 88%魔咒,就是当基金的仓位水平达到88%左右的时候,A股市场往往会出现大跌,基金仓位成了股市的“反向指标”,当基金的平均仓位 ...

  5. SHA256的总结与Go实现

    SHA256在线验证链接:SHA256 online hash function My Golang github源码 :https://github.com/kumataahh/Golang-too ...

  6. HTML技巧篇:如何让单行文本以及多行文本溢出时显示省略号(…)

    参考:https://baijiahao.baidu.com/s?id=1621362934713048315&wfr=spider&for=pc 本篇文章主要给大家介绍一下在html ...

  7. Spark入门到精通--(外传)Cloudera CDH5.5.4搭建

    http://www.mamicode.com/info-detail-601202.html continue...

  8. springcloud第三步:发布服务消费者

    服务消费者 创建项目sercice-order Maven依赖 <parent> <groupId>org.springframework.boot</groupId&g ...

  9. Delphi窗体显示Echarts图表

    笨办法,先保存用着 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Varian ...

  10. 2017UGUI之slider

    不让鼠标控制slider的滑动: 鼠标之所以可以控制滑动是因为slider具有interactable这个属性(下图红色的箭头的地方):如果取消了这个属性的运行的时候就不能滑动了.如果要代码去控制这个 ...