HDU 5933 ArcSoft's Office Rearrangement(构造题)
来源:互联网 发布:淘宝优惠券在哪里查看 编辑:程序博客网 时间:2024/06/05 00:40
http://acm.hdu.edu.cn/showproblem.php?pid=5933
题意,给出n块价值为a的working blocks,现在要你把他们弄成k块相等的。你有两种操作,把相邻的两块合并,或者把一块拆分成任意价值的两块,问最小操作数是多少。
直接构造即可。
代码如下:
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll sum, a[100005], ans;int main() {ll T, n, k, Case = 1;cin >> T;while(T--) {sum = 0;scanf("%I64d%I64d", &n, &k);for(int i = 0; i < n; i++) {scanf("%I64d", &a[i]);sum += a[i];}if(sum % k == 0) {ll ave = sum / k;ans = 0;for(int i = 0; i < n; i++) {if(a[i] < ave) {for(int j = i + 1; j < n; j++) {a[i] += a[j];ans += 1;if(a[i] == ave) {i = j;break;}else if(a[i] > ave) {ans += a[i] / ave;a[j] = a[i] - a[i] / ave * ave;if(a[j]) {i = j - 1;} else {i = j;ans--;}break;}}} else if(a[i] > ave) {ans += a[i] / ave;a[i] = a[i] - a[i] / ave * ave;if(a[i])i = i - 1;elseans--;}}printf("Case #%I64d: %I64d\n", Case++, ans);} else {printf("Case #%I64d: -1\n", Case++);}}return 0;}
阅读全文
0 0
- HDU 5933 ArcSoft's Office Rearrangement(构造题)
- hdu 5933 ArcSoft's Office Rearrangement【模拟】
- hdu 5933 ArcSoft's Office Rearrangement
- HDU-5933 ArcSoft's Office Rearrangement(思维)
- HDU 5933 ArcSoft's Office Rearrangement
- 【HDU 5933】 ArcSoft's Office Rearrangement 【贪心】
- HDU 5933 ArcSoft's Office Rearrangement
- HDU 5933 ArcSoft's Office Rearrangement (模拟)
- hdu 5933 ArcSoft's Office Rearrangement
- hdu 5933 ArcSoft's Office Rearrangement 思维
- hdu 5933 ArcSoft's Office Rearrangement
- HDU-5933-ArcSoft's Office Rearrangement
- hdu 5933 ArcSoft's Office Rearrangement
- HDU 5933 ArcSoft's Office Rearrangement 贪心
- hdu 5933 ArcSoft's Office Rearrangement
- HDU 5933 ArcSoft's Office Rearrangement(贪心)
- HDU 5933 ArcSoft's Office Rearrangement(模拟)
- HDU-5933-ArcSoft's Office Rearrangement-模拟(水)
- redis集群——增加节点
- 大数据分布式集群搭建(3)
- angular中controller、directive等为什么要用function包起来
- Leetcode刷题五遍还没offer
- 拓扑排序-LintCode
- HDU 5933 ArcSoft's Office Rearrangement(构造题)
- Java IO流_2
- 友盟埋点统计之点击事件
- 画出轮廓drawContours
- 控制MapReduce输出文件个数及格式
- redis集群——删除节点
- 【HDU1852】Beijing 2008
- leetcode[Find All Anagrams in a String]
- java笔记