微软2016校园招聘4月在线笔试 A FontSize
2016-04-07 10:06
441 查看
题目链接:http://hihocoder.com/problemset/problem/1288
分析:题目中所求的是最大的FontSize(记为S),其应该满足P*[W/S]*[H/S] >= Sum,其中Sum是字符的总数。但是我们也要注意,段与段之间不能在同一行,所以根据上面公式求出来的S不一定满足条件,还要对其进行检验。下面是我的代码。
分析:题目中所求的是最大的FontSize(记为S),其应该满足P*[W/S]*[H/S] >= Sum,其中Sum是字符的总数。但是我们也要注意,段与段之间不能在同一行,所以根据上面公式求出来的S不一定满足条件,还要对其进行检验。下面是我的代码。
#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; int num[1001]; int N , P, W,H; bool check(int font,int N ,int p){ int page = 0 , line = 0; int lc = W/font; int wc = H/font; for(int i = 0 ; i < N ; i ++){ line += num[i]/lc; if(num[i]%lc) line ++; } page = line/wc; if(line%wc) page ++; return (page<=p); } int main() { int cas,lines; scanf("%d",&cas); while(cas --) { scanf("%d%d%d%d",&N,&P,&W,&H); int sum = 0; for(int i = 0 ; i < N ; i ++){ scanf("%d",&num[i]); sum += num[i]; } double cc = (double)1/sum * P*W*H; int font = sqrt(cc) + 1; int lc = H/font ; int wc = W/font ; while(P*lc*wc < sum || !check(font,N,P)){ font --; lc = H/font ; wc = W/font ; } printf("%d\n",font ); } return 0; }
相关文章推荐
- wifi与wimax
- HDU 4005 The war 双连通分量 缩点
- UIWebView第三方进度条NJKWebViewProgress
- jvm参数设置 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
- 每天laravel-20160707|KeyWritten
- 干货技巧!有哪些实用秘诀可以帮助UI/UX设计师自我提升
- 视觉里程计总结
- 每天laravel-20160707|KeyWritten
- MongoDB3.0后的数据库安全认证
- 路径
- 闭包
- ECShop - 数据库操作类
- tinyint(4),tinyint(80)有什么区别
- 教你如何写thinkphp多表查询语句
- c语言学习----基本篇(上)
- Java连接SFTP服务器下载上传文件
- IOS 三维图像处理(九)--CATransform3D
- 浏览器、操作系统DNS缓存时间
- DAO初探
- mac 配置hadoop 2.6(单机和伪分布式)