题目:http://hihocoder.com/problemset/problem/1288

手机屏幕大小为 W(宽) * H(长),一篇文章有N段,每段有ai个字,要求使得该文章占用的页数不超过P的字体最大值S。

思路:

1. 最大的字体:一页只放一个字,则S = min(W, H)

2. 枚举方式:对于每一个S,计算需要的行数,然后判断页数是否超过P

注意点:

1. 如果一段文字的最后一行没有被填满,下一段文字也必须从下一行开始。

2. 关于ceil和floor函数

  • 需要包含头文件 #include <math.h>
  • 参数类型应该为double。如果是个计算式子,要注意类型转换
int a, b;
ceil(a/b);//结果不正确,因为a/b已经被截断,成为int型的数
ceil(a/(double) b);//ceil里面的值是个double类型

3. a / (b / c) 不一定等于 a / b * c 

源码

 #include <iostream>
#include <math.h>
using namespace std; int main()
{
int cnt, N, P, W, H, a, S;
int as[];
cin >> cnt;
while (cnt-- > )
{
cin >> N >> P >> W >> H;
a = ; for (int i = ; i < N; i++)
cin >> as[i];
int max = W>H ? H : W;//最大的字体大小,一页只放一个字
for (int i = max;; i--)
{
int lines = ;//需要多少行
int perline = W / i;//一行可以放几个字
for (int a_i = ; a_i < N; a_i++)
lines += ceil(as[a_i] / (double)perline);
if (ceil(lines / (H / i)) <= P)
{
cout << i << endl;
break;
}
}
}
return ;
}

【hihoCoder】1288 : Font Size的更多相关文章

  1. hihocoder 1288 : Font Size (微软2016校园招聘4月在线笔试)

    hihocoder 1288 笔试第一道..wa了好几次,也是无语..hihocoder错了不会告诉你失败的时候的测试集,这样有时候就很烦.. 遍历所有的字体,从min(w,h)开始逐渐变小开始遍历. ...

  2. ACM学习历程—Hihocoder 1288 Font Size(暴力 || 二分)

    http://hihocoder.com/problemset/problem/1288 这题是这次微软笔试的第一题,关键的是s的上限是min(w, h),这样s的范围只有到1000,这样就可以直接暴 ...

  3. hihoCoder 1288 Font Size 二分

    题意:给定一个宽度为和高度为的屏幕,如果字体的大小为,那么一行可以显示个字,每一页可以显示行.给出段文本段落,每段有个文字,问现在能设置的最大字体并且总的页数不能超过? 思路:如果知道字体大小很容易求 ...

  4. 【hihoCoder】1082: 然而沼跃鱼早就看穿了一切

      题目:http://hihocoder.com/problemset/problem/1082 输入一个字符串,将其中特定的单词替换成另一个单词   代码注意点: 1. getline(istre ...

  5. 【hihoCoder】1121:二分图一·二分图判定

      题目   http://hihocoder.com/problemset/problem/1121 无向图上有N个点,两两之间可以有连线,共有M条连线. 如果对所有点进行涂色(白/黑),判定是否存 ...

  6. 【Hihocoder】1014 : Trie树

    问题:http://hihocoder.com/problemset/problem/1014 给定一个字符串字典dict,输入字符串str, 要求从dict中找出所有以str为前缀的字符串个数. 构 ...

  7. 【hihoCoder】【挑战赛#12】

    模拟+枚举+模拟……+构造 QAQAQQQ rank12求杯子! A 顺子 ……模拟题,分类讨论一下就好了……比如当前四张牌是不是同一花色……是不是连续的四张牌,如果是连续的四张牌,是不是两边的……( ...

  8. 【hihoCoder】1148:2月29日

    问题:http://hihocoder.com/problemset/problem/1148 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 思路: 1. 将问题转换成求两个日 ...

  9. 【hihoCoder】1036 Trie图

    题目:http://hihocoder.com/problemset/problem/1036 给一个词典dict,词典中包含了一些单词words.要求判断给定的一个文本串text中是否包含这个字典中 ...

随机推荐

  1. Target runtime com.genuitec.runtime.generic.jee60 is not defined

    转载自:http://jingyan.baidu.com/article/d7130635338e3f13fdf47518.html 用eclipse加载别人的工程,报错Target runtime ...

  2. RSA原理及生成步骤

    摘自:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html(可到原网址查看秘钥生成原理) RSA算法原理(一) 因为它是 ...

  3. MVC Code First 自动生成数据库

    1.新建一个MVC项目

  4. 深入HashMap

    HashMap: 内部基于数组和单向链表 重要的变量有: Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE:结点数组table中存 ...

  5. superSlider实现美女轮播图

    superSlider实现美女轮播图 <!DOCTYPE html><html lang="en"><head><meta charset ...

  6. ofbiz定时任务配置

    1.一个service的java类 2.在framework/service/servicedef/service.xml中配置上一步的service服务. <service name=&quo ...

  7. win7系统网卡驱动正常,网线连接设备正常,但电脑右下角网络图片显示一直在转圈或者显示一个黄色感叹号的解决办法

    今天遇到一个问题是电脑的win7系统一直都可以连接有线,但今天突然连接不了.在我的电脑右键-->管理--->设备管理器-->网络适配器,里面查看了网络适配器安装正常.但是电脑右下角的 ...

  8. retrofit使用随记

    1.请求接口 public interface RetrofitApi { /*注册*/ /*登录*/ @FormUrlEncoded //post请求带这个 @POST("url" ...

  9. 微信JS SDK配置授权,实现分享接口

    微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...

  10. PyAutoGUI 简介

    转载来自: https://muxuezi.github.io/posts/doc-pyautogui.html http://blog.topspeedsnail.com/archives/5373 ...