Codeforces 549D Haar Features (模拟)
2015-09-30 19:16
591 查看
题目链接:http://codeforces.com/problemset/problem/549/D
题意:有一个n*m的矩阵,初始化为0,你可以将(1,1)到(x,y)的位置加上一个数(前缀矩阵),要求变成给出的矩阵(B表示-1,W表示1)
思路:由(n,m)到(1,1),发现不符合给出的矩阵就进行变换这样就是最优的了……
题意:有一个n*m的矩阵,初始化为0,你可以将(1,1)到(x,y)的位置加上一个数(前缀矩阵),要求变成给出的矩阵(B表示-1,W表示1)
思路:由(n,m)到(1,1),发现不符合给出的矩阵就进行变换这样就是最优的了……
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define maxn 130 using namespace std; int mp[130][130],mpc[130][130]; void change(int n,int m,int val) { for (int i=0;i<=n;i++) for (int j=0;j<=m;j++) { mpc[i][j]+=val; } } int main() { int n,m; while (scanf("%d%d",&n,&m)!=EOF) { memset(mpc,0,sizeof(mpc)); for (int i=0;i<n;i++) for (int j=0;j<m;j++) { char tem; cin>>tem; if (tem=='B') mp[i][j]=1; else mp[i][j]=-1; } int res=0; for (int i=n-1;i>=0;i--) { for (int j=m-1;j>=0;j--) { if (mp[i][j]!=mpc[i][j]) { int d=mp[i][j]-mpc[i][j]; change(i,j,d); res++; } } } printf("%d\n",res); } }
相关文章推荐
- 每天一个css border和inline
- jQuery源码学习 之 each迭代器
- 函数多层执行
- js学习注意知识
- W3school学习笔记之HTML5
- js函数对象的总结
- JS生成随机的由字母数字组合的字符串
- HTML调用CSS的四种方法
- Js自定义属性
- unittest测试驱动之HTMLTestRunner.py
- 简单实用的jquery分页插件
- 原型关系
- 读jQuery官方文档:数据方法与辅助方法
- fastjson中@JSONField注解的用法
- 记录前端学习(20150835--20150930)
- css3控制内容的可选择性
- jsp的<%%>
- angular实用手册
- Javascript 类/框架
- 【前端学习】javascript正则表达式和字符串RegExp and String(二)