C++作文排版【USACO-Jan-B】

作文排版【USACO-Jan-B】

题目描述
奶牛 Bessie 正在完成她的写作课的一篇作文。由于她写字很难看,她决定用一个文字处理器来输入这篇作文。

这篇作文共有 N 个单词(1≤N≤100),用空格分隔。每个单词的长度在 1 到 15 之间,仅由大写和小写字母组成。根据作业的要求,这篇作文需要用一种特别的方式排版:每一行包含的字符不超过 K 个(1≤K≤80),空格不计。幸好 Bessie 的文字处理器能够处理这样的要求,它会按照如下的方式:如果 Bessie 输入了一个单词,这个单词能够放进当前行,就放在当前行。否则,将这个单词放到下一行,然后继续向下一行添加单词。

当然,同一行中的单词之间仍然用一个空格分隔。每一行的结尾都不应当有空格。

很不幸,Bessie 的文字处理器刚好坏了。请帮助她正确地排版她的作文!

输入格式
输入的第一行包含两个空格分隔的整数 N 和 K。

下一行包含 N 个单词,单词之间用单个空格分隔。所有单词的长度都不超过一行中的字符上限数 K。

输出格式
输出正确排版的 Bessie 的作文。

输入输出样列
输入样例1:
10 7
hello my name is Bessie and this is my essay
输出样例1:
hello my
name is
Bessie
and this
is my
essay
说明
第一行包含 7 个非空格字符,包括 “hello” 以及 “my”。再加入 “name” 会使得第一行包含 11>7 个非空格字符&

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是题目和代码: 题目描述: 农夫约翰想要了解他的奶牛们每天产生的牛奶量。他有 $N$ 头奶牛,编号为 $1,2,…,N$,他想要在连续的 $M$ 天里知道这些奶牛的总产量。他记录了每头奶牛在这 $M$ 天里每天产生的牛奶数量。 每天的奶牛产量都是非负的,但不一定相同。约翰想要知道哪些奶牛在这 $M$ 天里总共产生了至少 $G$ 加仑的牛奶。请帮助约翰找出这些奶牛。由于总共有 $N$ 头奶牛,你的算法的时间复杂度至多为 $O(NM)$,否则你可能会超时。 输入格式 第一行包含三个整数 $N,G,M$。 接下来 $N$ 行,每行包含 $M$ 个整数,表示每头奶牛在这 $M$ 天里每天的产量。 输出格式 每行输出一个奶牛的编号,表示这些奶牛中的每一头最少产出了 $G$ 加仑的牛奶。 输出这些编号的顺序应该与它们在输入中出现的顺序相同。 如果没有奶牛的总产量至少为 $G$ 加仑,则输出 NONE。 数据范围 $1≤N,M≤1000$ $0≤G≤10^9$ 输入样例: 5 24 2 15 20 20 10 25 18 30 32 40 50 输出样例: 1 2 3 4 c++ 代码: ```cpp #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N = 1010; int n, g, m; int sum[N][N]; //记录前缀和 vector<int> ans; int main() { cin >> n >> g >> m; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) { int x; cin >> x; sum[i][j] = sum[i][j - 1] + x; } for (int i = 1; i <= n; ++i) { int s = 0; for (int j = 1; j <= m; ++j) s += sum[i][min(j + m - 1, m)] - sum[i][j - 1]; if (s >= g * m) ans.push_back(i); } if (ans.empty()) puts("NONE"); else for (auto x : ans) cout << x << endl; return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值