微软2016实习生笔试--第一题Font Size

2024-06-03 14:18

本文主要是介绍微软2016实习生笔试--第一题Font Size,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#1288 : Font Size

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

描述

Steven loves reading book on his phone. The book he reads now consists of N paragraphs and the i-th paragraph contains ai characters.

Steven wants to make the characters easier to read, so he decides to increase the font size of characters. But the size of Steven's phone screen is limited. Its width is W and height is H. As a result, if the font size of characters is S then it can only show ⌊W / S⌋ characters in a line and ⌊H / S⌋ lines in a page. (⌊x⌋ is the largest integer no more than x)  

So here's the question, if Steven wants to control the number of pages no more than P, what's the maximum font size he can set? Note that paragraphs must start in a new line and there is no empty line between paragraphs.

输入

Input may contain multiple test cases.

The first line is an integer TASKS, representing the number of test cases.

For each test case, the first line contains four integers N, P, W and H, as described above.

The second line contains N integers a1, a2, ... aN, indicating the number of characters in each paragraph.


For all test cases,

1 <= N <= 103,

1 <= W, H, ai <= 103,

1 <= P <= 106,

There is always a way to control the number of pages no more than P.

输出

For each testcase, output a line with an integer Ans, indicating the maximum font size Steven can set.

样例输入
2
1 10 4 3
10
2 10 4 3
10 10
样例输出
3
2
代码如下:
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;int main()
{int N;  //保存要处理的任务数while(cin >> N){int *parNum = new int[N];           // N组任务的段落数int *pageNum = new int[N];          // N组任务的页数int *width = new int[N];            // N组任务的屏幕宽度int *height = new int[N];           // N组任务的屏幕高度vector<vector<int> > parWord(N);    // N组任务的每一段落的字数for(int i = 0; i < N; i++){cin >> parNum[i] >> pageNum[i] >> width[i] >> height[i];parWord[i].resize(parNum[i]);for(int j = 0; j < parNum[i]; j++)cin >> parWord[i][j];}int *result = new int[N];           // 保存最终结果memset(result, 0, N*sizeof(int));for(int i = 0; i < N; i++){int sumWord = 0;for(int j = 0; j < parNum[i]; j++)sumWord += parWord[i][j];while((width[i]/(result[i]+1)) * (height[i]/(result[i]+1)) * pageNum[i] >= sumWord)  // 如果当前字的大小为result[i]+1,计算这些页数能存的总字数,result[i]++;                                                                     // 当总字数刚好小于sumWord时,result[i]存放的为正确结果}for(int i = 0; i < N; i++)                                                               // 输出最终答案{cout << result[i] <<endl;}delete[] parNum;delete[] pageNum;delete[] width;delete[] height;delete[] result;}return 0;
}




这篇关于微软2016实习生笔试--第一题Font Size的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027220

相关文章

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

半年高达552亿元,锁定云第一,中国电信天翼云紧追不舍

【科技明说 | 科技热点关注】 刚才我注意到中国电信公布2024年中期业绩,报告期内,中国电信实现营业收入为人民币2660亿元,同比增长2.8%,其中服务收入为人民币2462亿元,同比增长4.3%;净利润为人民币218亿元,同比增长8.2%。 其中亮点,2024年上半年,天翼云保持快速增长,收入达到了552亿元,同比增长20.4%,占服务收入比升至22.4%,市场头部地位进一步巩固。 为

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答

某公司笔试编程题

参加了某公司编程题,这些题都来自牛客网,记录总结吧! 一、蛇形矩阵 题目描述 蛇形矩阵是有1开始的自然数依次排列成的一个上三角矩阵. 接口说明 void GetResult(int Num, int* pResult);输入参数:int Num :输入的正整数N输出参数:int *pResult: 指向放蛇形矩阵的字符串指针指针指向的内存区域保证有效 样例输入: 4

android.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5

描述: 01-02 00:13:43.380: E/flyLog:ChatManager(963): getUnreadChatGroupandroid.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5 01-02 00:13:43.380: E/flyLog:ChatManager(

CVTE java web后台实习生笔试+技术一面总结

投的第一份简历,也可以说是第一次写笔试和参加面试。题在前面,总结在最后,努力不骗人。 笔试 题型:20道不定项选择题+2道算法题+1道架构设计题 选择题 选择题出的很全面,因为是不定项选择,一道题就可以考很多知识点。 当时做的时候以为笔试都是这么难,做完实验室同学告诉我这个算比较难的了,而且据我观察可能是跟春招找正式offer的一批难度的题。可能最后过的标准不一样吧。 选项信息量很大,