AtCoder Grand Contest 043(坑)
Posted cjjsb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtCoder Grand Contest 043(坑)相关的知识,希望对你有一定的参考价值。
Preface
很毒的一场,AB自己想的(ORZ陈指导),C完全不会感叹题解的神仙做法,D本来已经做出来了然后想复杂了(或者说是习惯使然?)
E我看了半天题目都看不懂而且这个移动曲线的定义好仙,F神仙题不可做,都弃了得了
A
垃圾hl666日常看错题目,题目中的翻转矩形看成了翻转正方形
实际上如果没看错就很简单了,因为只能向两个方向走,因此所有连着的黑色格子都可以一次翻转完,搞一个DP记录一下到每个点是否翻转的答案即可
#include<cstdio>
#include<iostream>
#include<cstring>
#define RI register int
#define CI const int&
using namespace std;
const int N=105;
int n,m,f[N][N][2]; char a[N][N];
int main()
{
RI i,j; for (scanf("%d%d",&n,&m),i=1;i<=n;++i) scanf("%s",a[i]+1);
memset(f,127,sizeof(f)); if (a[1][1]==‘.‘) f[1][1][0]=0; else f[1][1][1]=1;
for (i=1;i<=n;++i) for (j=1;j<=m;++j) if (i!=1||j!=1)
if (a[i][j]==‘.‘) f[i][j][0]=min(min(f[i-1][j][0],f[i-1][j][1]),min(f[i][j-1][0],f[i][j-1][1]));
else f[i][j][1]=min(min(f[i-1][j][0]+1,f[i-1][j][1]),min(f[i][j-1][0]+1,f[i][j-1][1]));
return printf("%d",a[n][m]==‘.‘?f[n][m][0]:f[n][m][1]),0;
}
以上是关于AtCoder Grand Contest 043(坑)的主要内容,如果未能解决你的问题,请参考以下文章
[AtCoder Grand Contest 043-B] 123 Triangle
AtCoder Grand Contest 043--A - Range Flip Find Route