Codeforces Round #419 (Div. 2) C.Karen and Game 思维
来源:互联网 发布:javascript中PoSt 编辑:程序博客网 时间:2024/05/29 06:48
传送门
题意:
给你一个矩阵 问你是不是能化为0矩阵。 每次可以使列或者行减少1。 最后输出操作次数并输出过程。
做法:
取列行最小的一个数。 整个列行都减这个数就好啦。判断一下减了多少次((s != cc * n + rr * m))
具体看代码就知道啦。
#include <iostream>#include <stdio.h>#include <cstring>#include <string>#include <algorithm>#include <queue>#include <stack>#include <cmath>#include <map>#include <bitset>#include <set>#include <vector>#include <functional>using namespace std;const int N = 105;int n, m;int A[N][N];int r[N], c[N];int doRow() { int ans = 0; for (int i = 0; i < n; ++i) { int miv = 1000; for (int j = 0; j < m; ++j) miv = std::min(miv, A[i][j]); r[i]=miv; ans += r[i]; // cout<<ans<<endl; for (int j = 0; j < m; ++j) A[i][j] -= r[i]; } return ans;}int doCol() { int ans = 0; for (int j = 0; j < m; ++j) { int miv = 1000; for (int i = 0; i < n; ++i) miv = std::min(miv, A[i][j]); ans += (c[j] = miv); for (int i = 0; i < n; ++i) A[i][j] -= c[j]; } return ans;}int main() { scanf("%d%d", &n, &m); int s = 0; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) { scanf("%d", &A[i][j]); s += A[i][j]; } int cc, rr; if (n > m) { cc = doCol(); rr = doRow(); } else { rr = doRow(); cc = doCol(); } // cc=doCol(); // rr=doRow(); if (s != cc * n + rr * m) return puts("-1"), 0; printf("%d\n", cc + rr); for (int i = 0; i < n; ++i) while (r[i]--) printf("row %d\n", i + 1); for (int j = 0; j < m; ++j) while (c[j]--) printf("col %d\n", j + 1); return 0;}
阅读全文
0 0
- Codeforces Round #419 (Div. 2) C.Karen and Game 思维
- Codeforces Round #419 (Div. 2)-贪心&思维-C. Karen and Game
- Codeforces Round #419 (Div. 2) C. Karen and Game 题解
- Codeforces Round #419 (Div. 2) C. Karen and Game【贪心】
- Codeforces Round #419 (Div. 2)Karen and Game
- Codeforces 816C Karen and Game【思维】
- Codeforces Round #419 A. Karen and Game
- Codeforces Round #419 (Div. 2)Karen and Coffee
- Codeforces Round #419 (Div. 2) A. Karen and Morning
- Codeforces Round #419 (Div. 2) B. Karen and Coffee
- Codeforces Round #419 (Div. 2)Karen and Coffee
- Round#419 C Karen and Game
- 【Codeforces Round #419 (Div. 1)】Codeforces 815A Karen and Game
- 【Codeforces Round #419 (Div. 1)】Codeforces 815C Karen and Supermarket
- Codeforces Round #419 (Div. 1) C. Karen and Supermarket(树上背包)
- C. Karen and Game【模拟+思维】
- Codeforces Round #419 (Div. 2) (Codeforces 815B) D. Karen and Test 组合数学
- Karen and Game codeforces 816c
- 线程管理
- SDUT-1216 杨辉三角
- 【CodeM编程】锦标赛
- 常用API
- c++ builder 中的 XMLDocument 类详解(12) -关于 XML 属性
- Codeforces Round #419 (Div. 2) C.Karen and Game 思维
- JVM内存区域分区及OOM分析
- c++ builder 中的 XMLDocument 类详解(13)
- Hibernate中Session的几个方法
- 【CodeM编程】优惠券
- 前后缀和积
- 人生警醒
- 控制循环结构
- Dubbo源代码实现六:线程池模型与提供者