CF815A:Karen and Game(思维)
来源:互联网 发布:学汉语翻译软件 编辑:程序博客网 时间:2024/05/14 20:52
题意:一个全为0的二位数组,每次操作可以选择将一行或一列加上1,问最小操作几次达到给定的二位数组。
思路:即求给定的数组删除几次变成0,那么从min(n,m)方向开始删除即有最优解,两个方向都跑一遍就行。
# include <bits/stdc++.h>using namespace std;int a[103][103], l[103], b[103][103], r[103];int main(){ int n, m, sum = 0, ans = 0, ans2 = 0; scanf("%d%d",&n,&m); memset(l, 0x3f, sizeof(l)); memset(r, 0x3f, sizeof(r)); for(int i=1; i<=n; ++i) { for(int j=1; j<=m; ++j) { scanf("%d",&a[i][j]); b[j][i] = a[i][j]; sum += a[i][j]; r[j] = min(r[j], b[j][i]); l[i] = min(l[i], a[i][j]); } } for(int i=1; i<=n; ++i) { sum -= l[i]*m; ans += l[i]; for(int j=1; j<=m; ++j) { a[i][j] -= l[i]; } } for(int i=1; i<=m; ++i) { ans2 += r[i]; for(int j=1; j<=n; ++j) { b[i][j] -= r[i]; } } for(int i=1; i<=m; ++i) { if(a[1][i] != 0) { for(int j=2; j<=n; ++j) if(a[j][i] != a[j-1][i]) return 0*puts("-1"); ans += a[1][i]; sum -= a[1][i]*n; } } for(int i=1; i<=n; ++i) if(b[1][i] != 0) ans2 += b[1][i]; if(sum) return 0*puts("-1"); if(ans <= ans2) { printf("%d\n",ans); for(int i=1; i<=n; ++i) for(int j=1; j<=l[i]; ++j) printf("row %d\n",i); for(int i=1; i<=m; ++i) for(int j=1; j<=a[1][i]; ++j) printf("col %d\n",i); } else { printf("%d\n",ans2); for(int i=1; i<=m; ++i) for(int j=1; j<=r[i]; ++j) printf("col %d\n",i); for(int i=1; i<=n; ++i) for(int j=1; j<=b[1][i]; ++j) printf("row %d\n",i); } return 0;}
阅读全文
0 0
- CF815A:Karen and Game(思维)
- codeforcces Karen and Game 思维
- C. Karen and Game【模拟+思维】
- Codeforces 816C Karen and Game【思维】
- Codeforces Round #419 (Div. 2) C.Karen and Game 思维
- C. Karen and Game
- Karen and Game Codeforces
- codeforces815A Karen and Game
- Karen and Game
- codeforces Karen and Coffee (区间贡献 思维)
- codeforces Karen and Coffee (区间贡献 思维)
- codeforces 816-B. Karen and Coffee(前缀和+思维)
- Codeforces Round #419 (Div. 2)-贪心&思维-C. Karen and Game
- Karen and Game codeforces 816c
- Codeforces Round #419 A. Karen and Game
- Round#419 C Karen and Game
- Codeforces 815A-Karen and Game
- codeforces 816C Karen and Game
- 使用CKeditor的图片上传功能
- jQuery小技巧
- ios学习小记<01>
- 腾讯2017秋招笔试编程题
- C语言用fstat函数获取文件的大小
- CF815A:Karen and Game(思维)
- 建议2,3,4,5
- leetcode 451. Sort Characters By Frequency
- Node.js TCP服务端
- 一个程序员的自叙
- 链表面试题(三):链表相交,链表带环,链表带环相交
- 程序员应该了解的查找(java实现)
- atom常用插件推荐
- java学习(6) java反射以及应用