码迷,mamicode.com
首页 > 其他好文 > 详细

AtCoder Grand Contest 043 部分题解

时间:2020-03-22 11:03:45      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:char s   else   ==   double   scanf   https   space   class   false   

这场打的好爽,rank \(299\),涨了 \(141\)

AGC043A

乍一看有点不知所措。BFS?暴力?

让我们冷静分析一下。要达成目标,必须有至少一条从左上到右下的路径。

感受一下:

xxx..
..x..
..xx.
...x.
...xx

注意到操作是同时对一个矩形区域操作。不难发现:这样可以对路径上任意一段连续序列取反。

怎样操作最优呢?

根据首尾,可以分为四种情况:

#.#.# (答案:3)
.#.#. (答案:2)
#.#. (答案:2)
.#.# (答案:2)

综上,答案就是路径中连续的"#"的数量。

\(dp\) 就可以了。

我自己测的时候把“#”打成"X",懵逼了两分钟

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mit map<int,int>::iterator
#define sit set<int>::iterator
#define itrm(g,x) for(mit g=x.begin();g!=x.end();g++)
#define itrs(g,x) for(sit g=x.begin();g!=x.end();g++)
#define ltype int
#define rep(i,j,k) for(ltype(i)=(j);(i)<=(k);(i)++)
#define rap(i,j,k) for(ltype(i)=(j);(i)<(k);(i)++)
#define per(i,j,k) for(ltype(i)=(j);(i)>=(k);(i)--)
#define pii pair<int,int>
#define fi first
#define se second
#define mpr make_pair
#define pb push_back
#define fastio ios::sync_with_stdio(false)
const int inf=0x3f3f3f3f,mod=1000000007;
const double pi=3.1415926535897932,eps=1e-6;
void chmax(int &x,int y){if(x < y) x = y;}
void chmin(int &x,int y){if(x > y) x = y;}
int n,m,dp[105][105];char s[105][105];
int main()
{
    scanf("%d%d",&n,&m);
    rep(i,1,n) scanf("%s",s[i]+1);
    dp[1][1] = (s[1][1] == '#');
    rep(i,1,n) rep(j,1,m)
    if(i != 1 || j != 1){
        dp[i][j] = inf;
        char cur = s[i][j];
        if(i > 1) {
            char prev = s[i-1][j];
            if(prev == cur) chmin(dp[i][j], dp[i-1][j]);
            else chmin(dp[i][j], dp[i-1][j] + (cur == '#'));
        }
        if(j > 1) {
            char prev = s[i][j-1];
            if(prev == cur) chmin(dp[i][j], dp[i][j-1]);
            else chmin(dp[i][j], dp[i][j-1] + (cur == '#'));
        }
    }
    printf("%d\n",dp[n][m]);
    return 0;
}

AGC043B

等会再写。

AtCoder Grand Contest 043 部分题解

标签:char s   else   ==   double   scanf   https   space   class   false   

原文地址:https://www.cnblogs.com/yz-beacon-cwk/p/12544128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!