当前位置: 首页 > news >正文

合肥网页设计兼职绍兴seo排名外包

合肥网页设计兼职,绍兴seo排名外包,国外网站配色,群晖搭建的wordpress外网访问https://vjudge.net/contest/591700#problem/H 考虑轮廓线dp,当我们枚举到蓝色格子的时候,我们记录红色格子的状态 每个格子有4种状态 0有向下1需要向上2不用管3需向右 每次枚举的时候,我们需要考虑这个格子的三种状态: 10不放…

https://vjudge.net/contest/591700#problem/H

考虑轮廓线dp,当我们枚举到蓝色格子的时候,我们记录红色格子的状态

在这里插入图片描述

每个格子有4种状态

  1. 0有向下
  2. 1需要向上
  3. 2不用管
  4. 3需向右

每次枚举的时候,我们需要考虑这个格子的三种状态:

  1. 1
  2. 0+不放
  3. 0+放

他们会对所有3和同列的值造成影响

当枚举到行末时,我们需要“换行”,把所有3变成1

发现枚举过程中还有再维护一个0/1状态d,表示此行有没有向左

分类讨论即可

O ( 2 n m 4 m ) O(2nm4^m) O(2nm4m)

#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL#define debug(...) fprintf(stdout, ##__VA_ARGS__)
#else#define debug(...) void(0)
#endif
//#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
#define fi first
#define se second
//srand(time(0));
#define N 11
#define M 100000
//#define mo
void Min(int &a, int b) {a=min(a, b); 
}
int n, m, i, j, k, T;
int f[N][N][M][2], s, t, d, ans, c, a[N][N]; 
char str[N]; namespace Num {int omg, pw[N], b[N]; int Chan1[M], Chan2[M], Find1[M], Get[M][N], becom[M][N][4]; int zh(int *a) {int ans=0, i; for(i=1; i<=m; ++i) ans=ans*4+a[i]; return ans; }void chai(int s, int *a) {int i; for(i=m; i>=1; --i) a[i]=s%4, s/=4; }void Pre_num() {for(i=1, omg=1, pw[0]=1; i<=m; ++i) omg*=4, pw[i]=pw[i-1]*4; for(i=1; i<=m; ++i) b[i]=2; f[1][0][zh(b)][0]=0; for(s=0; s<omg; ++s) {chai(s, b); //all 3 -> 1for(i=1; i<=m; ++i) if(b[i]==3) b[i]=1; Chan1[s]=zh(b); chai(s, b); //all 3 -> 3for(i=1; i<=m; ++i) if(b[i]==3) b[i]=2; Chan2[s]=zh(b); chai(s, b); //find s[i]for(i=1; i<=m; ++i) Get[s][i]=b[i]; for(i=1; i<=m; ++i) if(b[i]==1) break; if(i<=m) Find1[s]=1; //if s has 1for(i=1; i<=m; ++i) {chai(s, b); for(k=0; k<4; ++k) {b[i]=k; becom[s][i][k]=zh(b); //make s[i] to k}}}}int Change(int s, int i, int x) {return becom[s][i][x]; }
};signed main()
{#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endif
//	T=read();
//	while(T--) {
//
//	}memset(f, 0x3f, sizeof(f)); n=read(); m=read(); for(i=1; i<=n; ++i) {scanf("%s", str+1); for(j=1; j<=m; ++j) a[i][j]=str[j]-'0'; }Num::Pre_num(); for(i=1; i<=n; ++i) {for(j=1; j<=m; ++j) {for(s=0; s<Num::omg; ++s) for(d=0; d<=1; ++d) {if(f[i][j-1][s][d]>=100) continue; debug("[%d %d] %d %d\n", i, j-1, s, d); c=Num::Get[s][j]; if(a[i][j]==0 || a[i][j]==2) {t=s; if(c==2 && d==0) t=Num::Change(t, j, 3); Min(f[i][j][t][d], f[i][j-1][s][d]); /********************************/t=Num::Chan2[s]; t=Num::Change(t, j, 0); Min(f[i][j][t][1], f[i][j-1][s][d]+1); }if(a[i][j]==1 || a[i][j]==2) {if(c==1) continue; t=Num::Chan1[s]; 					if(c==0 || c==2) t=Num::Change(t, j, 2); Min(f[i][j][t][0], f[i][j-1][s][d]);}}}for(s=0; s<Num::omg; ++s) for(d=0; d<=1; ++d) {if(f[i][m][s][d]>=100) continue; t=Num::Chan1[s]; Min(f[i+1][0][t][0], f[i][m][s][d]); }}ans=1e9; for(s=0; s<Num::omg; ++s) if(Num::Find1[s]==0) Min(ans, f[n+1][0][s][0]); printf("%d", ans); return 0;
}
http://www.hengruixuexiao.com/news/47206.html

相关文章:

  • dw做网站有雪花效果百度权重是什么
  • A级网站建设服务百度推广怎么看关键词排名
  • 如何上传视频到公司网站推广页面制作
  • 黑龙江做网站的公司广告投放方案
  • 网站做成app需要多少钱网易疫情实时最新数据
  • 沂水做网站教育培训机构招生方案
  • 德国 网站后缀制作网站的软件有哪些
  • 济宁专业网站建设网站优化seo方案
  • 汽车网站代码广告设计公司
  • 做网站是否过时了网络营销理论包括哪些
  • 大连网站推广价格三只松鼠口碑营销案例
  • 单一产品做网站排名优化公司哪家好
  • 怎么做展示网站app营销策略有哪些
  • 做网站的无锡seo关键词排名技术
  • 杭州哪里找网站建设的兼职建网站的步骤
  • 网页设计师个人网站永久8x的最新域名
  • 外贸网站建设公司流程重庆高端seo
  • 网站正在备案中鸡西seo
  • 德化住房和城乡建设网站长沙正规seo优化价格
  • 男女激烈做羞羞事网站福州网站关键词推广
  • 网络工程师 网站建设推广网站多少钱
  • 手机公众平台网站开发网络营销推广策略有哪些
  • 北龙中网 可信网站验证 费用网络营销的培训课程
  • 做旅游网站图片哪里找seo3的空间构型
  • 新网站如何做推广软文在线代理浏览国外网站
  • 做h5最好的网站营销网站建设流程
  • 网站开发系统搭建推广方式有哪些?
  • 自己网站建设要维护优秀网站seo报价
  • 男女之间做那些事情视频网站百度推广图片
  • 晋中推广型网站建设如何在百度上发布自己的广告