首页 > 其他分享 >D. Bishwock_线性dp

D. Bishwock_线性dp

时间:2022-11-04 16:34:05浏览次数:57  
标签:Bishwock max ll && 线性 dp

D. Bishwock

一万年没写题解了,俺又回来了

题目大意

给2*n的地图,有若干个格子不能放东西,问最多可以放入几个“L”形的棋子。

思路

基础线性dp,设dpi为前i个的最多情况。然后想这一次最多放几个,要注意有连着六格空的时候可以放两个棋子。

void solve(){
	vct<string> a(2) ;
	cin >> a[0] >> a[1] ;
	ll n = a[0].size() ;
	a[0] = " " + a[0] ; 
	a[1] = " " + a[1] ; 
	vct<ll> dp(n + 1 , 0) ;
	ll ans = 0 ;
	rep(i , 2 , n){
		dp[i] = max(dp[i] , dp[i - 1]) ;
		if(a[0][i - 1] == 'X' && a[0][i] == '0'
		&& a[1][i - 1] == '0' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 2] + 1) ;
		if(a[0][i - 1] == '0' && a[0][i] == 'X'
		&& a[1][i - 1] == '0' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 2] + 1) ;
		if(a[0][i - 1] == '0' && a[0][i] == '0'
		&& a[1][i - 1] == 'X' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 2] + 1) ;
		if(a[0][i - 1] == '0' && a[0][i] == '0'
		&& a[1][i - 1] == '0' && a[1][i] == 'X')dp[i] = max(dp[i] , dp[i - 2] + 1) ;
		if(a[0][i - 1] == 'X' && a[0][i] == 'X'
		&& a[1][i - 1] == '0' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 1]) ;
		if(a[0][i - 1] == '0' && a[0][i] == 'X'
		&& a[1][i - 1] == '0' && a[1][i] == 'X')dp[i] = max(dp[i] , dp[i - 1]) ;
		if(a[0][i - 1] == '0' && a[0][i] == '0'
		&& a[1][i - 1] == 'X' && a[1][i] == 'X')dp[i] = max(dp[i] , dp[i - 1]) ;
		if(a[0][i - 1] == 'X' && a[0][i] == '0'
		&& a[1][i - 1] == 'X' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 1]) ;
		if(a[0][i - 1] == '0' && a[0][i] == '0'
		&& a[1][i - 1] == '0' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 2] + 1) ;
		if(i >= 3
		&& a[0][i - 2] == '0' && a[0][i - 1] == '0' && a[0][i] == '0'
		&& a[1][i - 2] == '0' && a[1][i - 1] == '0' && a[1][i] == '0')dp[i] = max(dp[i] , dp[i - 3] + 2) ;
	
	}
	cout << dp[n] << "\n" ;
}//code_by_tyrii 

标签:Bishwock,max,ll,&&,线性,dp
From: https://www.cnblogs.com/tyriis/p/16858271.html

相关文章

  • P1103 书本整理 (DP)
    书本整理题目描述Frank是一个非常喜爱整洁的人。他有一大堆书和一个书架,想要把书放在书架上。书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上。但是Frank......
  • ThreadPoolExecutor 源码解析
    Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。合理地使用线程池能够带来3个好处:降低资源消耗。通过重复利用已创建的线......
  • Sugoroku 4 (Atcoder abc275 T5) DP
    题目描述题目链接https://atcoder.jp/contests/abc275/tasks/abc275_e题意从\(0\)到\(n\)有\(n+1\)个方格,你现在在第\(0\)个格子。每次移动可以随机走\(1\)......
  • 【DP】动态 DP
    准备退役whk了,最后学点东西。不得不承认,CSPS2022T4对动态DP起到了良好的普及效果。P4719【模板】"动态DP"&动态树分治设\(f_{u,0/1}\)表示不选/选\(u\),\(u\)......
  • gridpanel header click
    varmyGrid=Ext.Create('Ext.grid.Panel',{renderTo:'shrGrid',renderTo:myGrid,store:myStore,//JSONobjectcolumns:myGrid.columns,//JS......
  • DPM(Deformable Part Model)的PCA+Starcasscade(Windows)代码整理
    大家好,我是你们的老朋友——泽哥!最近一直没有写博客是因为泽哥最近在忙本科毕业设计。泽哥的本科毕业设计是研究DPM模型的,相信大家也略微了解,DPM模型即DeformablePartMode......
  • 数据结构之线性表的顺序表示和实现1
    #defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefcharElemType;//一些数据......
  • 区间DP
    区间dp\(Part\)\(1\):区间dp?利用一个常见的区间dp问题来寻找其与其他dp的区别。石子合并:先不考虑环上,就只看一条链的情况,要求将\(1\)~\(n\)的石子合并成一颗,每......
  • 使用docker搭建一个WordPress网站
     【整体说明】网站需要三个容器:WordPress、MariaDB、Nginx,他们的关系如下图。这是一个典型的网站,mariadb作为后方的关系型数据库,端口号是3306;wordpress是中间的应用服务......
  • 【线性代数】抽丝剥茧系列之马尔科夫矩阵
    1.矩阵幂的稳态对于矩阵幂乘以向量$A^ku_0$可以拆解为特征值和特征向量乘积和的表示:$$u_k=A^ku_0=Q\Lambda^kQ^T=c_1\lambda_1^kx_1+c_2\lambda_2^kx_2+...$$引出......