求使最大值最小,可以想到二分答案。

  然后再根据题目意思乱搞一下,按要求输出斜杠(这道题觉得就这一个地方难)。

Code

  1. /**
  2. * UVa
  3. * Problem#12627
  4. * Accepted
  5. * Time:0ms
  6. */
  7. #include<iostream>
  8. #include<cstdio>
  9. #include<cctype>
  10. #include<ctime>
  11. #include<cstring>
  12. #include<cstdlib>
  13. #include<fstream>
  14. #include<sstream>
  15. #include<algorithm>
  16. #include<map>
  17. #include<set>
  18. #include<stack>
  19. #include<queue>
  20. #include<vector>
  21. #include<stack>
  22. #ifndef WIN32
  23. #define AUTO "%lld"
  24. #else
  25. #define AUTO "%I64d"
  26. #endif
  27. using namespace std;
  28. typedef bool boolean;
  29. #define inf 0xfffffff
  30. #define smin(a, b) a = min(a, b)
  31. #define smax(a, b) a = max(a, b)
  32. template<typename T>
  33. inline void readInteger(T& u){
  34. char x;
  35. int aFlag = ;
  36. while(!isdigit((x = getchar())) && x != '-');
  37. if(x == '-'){
  38. x = getchar();
  39. aFlag = -;
  40. }
  41. for(u = x - ''; isdigit((x = getchar())); u = (u << ) + (u << ) + x - '');
  42. ungetc(x, stdin);
  43. u *= aFlag;
  44. }
  45.  
  46. int T;
  47. int n, a, b;
  48.  
  49. template<typename T>
  50. T pow(T a, int pos) {
  51. if(pos == ) return ;
  52. if(pos == ) return a;
  53. T temp = pow(a, pos / );
  54. if(pos & ) return temp * temp * a;
  55. return temp * temp;
  56. }
  57.  
  58. inline void init() {
  59. readInteger(n);
  60. readInteger(a);
  61. readInteger(b);
  62. }
  63.  
  64. long long dfs(int dep, int top, int bottom) {
  65. if(dep == ) return ;
  66. if(top == && bottom == ( << dep)) return pow((long long), dep);
  67. int mid = << (dep - );
  68. if(bottom <= mid) return * dfs(dep - , top, bottom);
  69. if(top > mid) return dfs(dep - , top - mid, bottom - mid);
  70. return * dfs(dep - , top, mid) + dfs(dep - , , bottom - mid);
  71. }
  72.  
  73. inline void solve() {
  74. long long res = dfs(n, a, b);
  75. printf(AUTO"\n", res);
  76. }
  77.  
  78. int main() {
  79. readInteger(T);
  80. for(int kase = ; kase <= T; kase++) {
  81. init();
  82. printf("Case %d: ", kase);
  83. solve();
  84. }
  85. return ;
  86. }

UVa 714 Copying Books - 二分答案的更多相关文章

  1. UVA 714 Copying Books 二分

    题目链接: 题目 Copying Books Time limit: 3.000 seconds 问题描述 Before the invention of book-printing, it was ...

  2. uva 714 Copying Books(二分法求最大值最小化)

    题目连接:714 - Copying Books 题目大意:将一个个数为n的序列分割成m份,要求这m份中的每份中值(该份中的元素和)最大值最小, 输出切割方式,有多种情况输出使得越前面越小的情况. 解 ...

  3. UVa 714 Copying Books(二分)

    题目链接: 传送门 Copying Books Time Limit: 3000MS     Memory Limit: 32768 KB Description Before the inventi ...

  4. UVA 714 Copying Books 最大值最小化问题 (贪心 + 二分)

      Copying Books  Before the invention of book-printing, it was very hard to make a copy of a book. A ...

  5. 【NOIP提高组2015D2T1】uva 714 copying books【二分答案】——yhx

    Before the invention of book-printing, it was very hard to make a copy of a book. All the contents h ...

  6. uva 714 - Copying Books(贪心 最大值最小化 二分)

    题目描写叙述开头一大堆屁话,我还细致看了半天..事实上就最后2句管用.意思就是给出n本书然后要分成k份,每份总页数的最大值要最小.问你分配方案,假设最小值同样情况下有多种分配方案,输出前面份数小的,就 ...

  7. UVa 714 Copying books 贪心+二分 最大值最小化

    题目大意: 要抄N本书,编号为1,2,3...N, 每本书有1<=x<=10000000页, 把这些书分配给K个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的.每个抄写员的速度是相 ...

  8. UVA 714 Copying Books 抄书 (二分)

    题意:把一个包含m个正整数的序列划分成k个非空的连续子序列.使得所有连续子序列的序列和Si的最大值尽量小. 二分,每次判断一下当前的值是否满足条件,然后修改区间.注意初始区间的范围,L应该为所有正整数 ...

  9. UVA - 714 Copying Books (抄书)(二分+贪心)

    题意:把一个包含m个正整数的序列划分成k个(1<=k<=m<=500)非空的连续子序列,使得每个正整数恰好属于一个序列(所有的序列不重叠,且每个正整数都要有所属序列).设第i个序列的 ...

随机推荐

  1. iOS常用基础框架

    一,简述  1.1,IOS操作系统的层次架构         iOS为应用程序开发提供了许多可使用的框架,并构成IOS操作系统的层次架构,分为四层,从上到下依次为:Cocoa Touch Layer( ...

  2. Spring Data 介绍 (一)

    简介 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷 Spring Data JPA能干什么 可以极大的 ...

  3. Closest Common Ancestors---poj1470(LCA+离线算法)

    题目链接:http://poj.org/problem?id=1470 题意是给出一颗树,q个查询,每个查询都是求出u和v的LCA:    以下是寻找LCA的预处理过程: void LCA(u){ f ...

  4. tomcatserver解析(五)-- Poller

    在前面的分析中介绍过,Acceptor的作用是控制与tomcat建立连接的数量,但Acceptor仅仅负责建立连接.socket内容的读写是通过Poller来实现的.   Poller使用java n ...

  5. xls的读写

    import xlrd # 读取xls文件 # 打开xls文件 data = xlrd.open_workbook('x1.xls') print(type(data)) # 获取表Sheet1 ta ...

  6. CMSPRESS-PHP无限级分类2

    原文章地址:http://www.thinkphp.cn/code/170.html 超级无限分类 使用简单 效率极高 核心代码10行不到 另外 求这个分类的不足,和更高效简单的无限分类方法 ^_^ ...

  7. 使用客户端等远程连接mysql数据库

    1:  远程数据库(D1)数据: 数据库用户:root,数据库密码:root,数据库ip 内网地址  192.168.100.91,数据库端口 3306 本地主机:ip  192.168.127.1 ...

  8. Centos 6.5安装OpenSSL

    方法一.直接安装 yum install openssl 方法二.下载源码编译安装 1.下载 wget https://www.openssl.org/source/openssl-1.0.2h.ta ...

  9. [LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  10. React组件,React和生命周期

    笔记,具体可以看看这个博客: https://segmentfault.com/a/1190000004168886?utm_source=tag-newest react 的jsx document ...