栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2002 Copying Books

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2002 Copying Books

#include <iostream>#include <cstdio>#include <memory.h>using namespace std;const int maxn = 510;long long P[maxn];bool Div[maxn], tmp[maxn];int N, K;int main(){int nCase;scanf("%d", &nCase);while (nCase--){long long l = 0, r = 0;scanf("%d%d", &N, &K);for (long long i = 0; i < N; ++i){scanf("%lld", &P[i]);r += P[i];}memset(Div, 0, sizeof(Div));while (l <= r){long long mid = (l + r) >> 1;memset(tmp, 0, sizeof(tmp));int i = N - 1, tk = K - 1, f = 0;for (; i >= 0 && tk >= 0; ){long long sum = 0;int j = i;while(j >= 0 && sum <= mid && j >= tk){if(sum + P[j] <= mid){sum += P[j--];}else{break;}}if(i == j)break;i = j;if(i >= 0)tmp[i] = 1;--tk;}if(i >= 0){l = mid + 1;}else{memcpy(Div, tmp, sizeof(tmp));r = mid - 1;}}for (long long i = 0; i < N; ++i){printf("%lld", P[i]);if(Div[i])printf(" / ");else if(i + 1 != N)printf(" ");}printf("n");}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号