概述
小dp
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=20;
const int M=100+10;
char g[N][M];
int l[N],r[N];
int d[N][2];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=n-1;i>=0;i--)
scanf("%s",g[i]);
int top=0;
for(int i=0;i<n;i++)
r[i]=0,l[i]=m+1;
for(int i=0;i<n;i++)
{
bool flag=false;
for(int j=0;j<=m+1;j++)
if(g[i][j]=='1')
{
flag=true;
l[i]=min(l[i],j);
r[i]=max(r[i],j);
}
if(flag) top=i;
}
d[0][0]=2*r[0];
d[0][1]=m+1;
for(int i=1;i<top;i++)
{
d[i][0]=min(d[i-1][0]+2*r[i],d[i-1][1]+m+1);
d[i][1]=min(d[i-1][1]+2*(m-l[i]+1),d[i-1][0]+m+1);
}
int ans=0;
if(top>0)
ans=min(d[top-1][0]+r[top],d[top-1][1]+(m-l[top]+1));
else
ans=r[top];
ans+=top;
printf("%dn",ans);
return 0;
}
最后
以上就是机灵歌曲为你收集整理的CodeForces-812B Sagheer, the Hausmeister的全部内容,希望文章能够帮你解决CodeForces-812B Sagheer, the Hausmeister所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复