题意:给一张纸上有h行w列,再给n个词语,问需要多少张纸才能把这些词语全都在记录下来。。纯模拟。。
//author: CHC
//First Edit Time: 2014-07-18 12:32
//Last Edit Time: 2014-07-18 12:32
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;
int h,w,n;
char str[10010][110];
int main()
{
while(~scanf("%d%d%d",&h,&w,&n)){
for(int i=0;i<n;i++)scanf("%s",str[i]);
int row=1,col=0;
for(int i=0;i<n;i++){
col+=strlen(str[i]);
if(col>w){
col=strlen(str[i]);
row++;
++col;
if(col>=w){
++row;
col=0;
}
}
else if(col==w){
col=0;
++row;
}
else {
++col;
if(col>=w){
++row;
col=0;
}
}
}
if(col==0)row--;
printf("%d\n",row/h+(row%h!=0));
}
return 0;
}
本文介绍了一个模拟算法的问题,即如何将给定数量的词语排列在一定尺寸的纸张上,并计算所需的纸张总数。通过逐词计算并考虑换行和新页的条件,该算法实现了对词语的有效排版。

3232

被折叠的 条评论
为什么被折叠?



