码迷,mamicode.com
首页 > 其他好文 > 详细

hihoCoder #1288 : Font Size

时间:2020-06-19 18:09:12      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:hellip   任务   nbsp   http   空行   包含   mamicode   内存限制   int   

时间限制:10000ms
单点时限:1000ms
内存限制:256MB
技术图片
题目的大概意思就是

史蒂文·爱在手机上读书。 他现在阅读的书包含N个段落,第i个段落包含ai字符。史蒂文想使字符更易于阅读,因此他决定增加字符的字体大小。 但史蒂文(Steven)的手机屏幕尺寸有限。 其宽度为W,高度为H。因此,如果字符的字体大小为S,则它只能在一行中显示⌊W/S⌋个字符,而在页面中仅显示⌊H/S⌋行。(⌊x⌋是不超过x的最大整数)因此,这里的问题是,如果史蒂文想控制页数不超过P,那么他可以设置的最大字体大小是多少? 请注意,段落必须以换行开头,并且段落之间没有空行。

输入可能包含多个测试用例。第一行是一个整数任务,表示测试用例的数量。对于每个测试用例,第一行包含四个整数N、P、W和H,如上所述。第二行包含N个整数a1 a2…表示每个段落中的字符数。

输出可以设置的最大字体大小。


 样例输入:

2
1 10 4 3
10
2 10 4 3
10 10

样例输出:

3
2

  

代码如下:

#include<stdio.h>
#include<string.h>
main()
{
  int N;
  scanf("%d",&N);
  int i,j,accum[N],data[N][999],n[N],p[N],w[N],h[N],flag=1;
  memset(accum,0,sizeof(accum));
  memset(data,0,sizeof(data));
  for(i=0;i<N;i++)
  {
    scanf("%d%d%d%d",&n[i],&p[i],&w[i],&h[i]);
    for(j=0;j<n[i];j++)
    {
      scanf("%d",&data[i][j]);
      accum[i]+=data[i][j];
    }
  }
  for(i=0;i<N;i++)
  {
    int size=w[i]>h[i]?h[i]:w[i];
    for(;size>=1;size--)
    {
      int row=h[i]/size;//行数
      int column=w[i]/size;//列数
      int total_row=row*p[i];//总行数
      int accum=0;//使用的行数
      flag=1;
      for(j=0;j<999&&data[i][j]!=0;j++)
      {
        int temp=data[i][j]/column;
        accum+=temp;
        if(temp*column<data[i][j])
        accum++;
        if(accum>total_row)
        flag=0;
      }
      if(flag)break;
    }
    if(flag)
    printf("%d\n",size);
    else
    printf("0\n");
  }
}

  

hihoCoder #1288 : Font Size

标签:hellip   任务   nbsp   http   空行   包含   mamicode   内存限制   int   

原文地址:https://www.cnblogs.com/yunners/p/13164259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!