热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Codeforces611CNewYearandDominoDP+前缀和

点击打开链接题意:给你个矩阵,每个位置是空或者不空每两个相邻空的位置,可以放一个木条有q次询问,每次问你一个子矩阵中,放一根木条有多少种放法q

点击打开链接

题意:

  • 给你个矩阵,每个位置是空或者不空
  • 每两个相邻空的位置,可以放一个木条
  • 有q次询问,每次问你一个子矩阵中,放一根木条有多少种放法
//q<=1e5 1<=w,h<=500 3秒时限 
O(2wh+q(w+h)) 约为1e7


定义好状态即可:/f[i][j] 第i行横着放,前j列&&以第j列为终点(第2个'.'在第j列上)连续2个.的个数 

//cos A=(b2+c2-a2)/2bc
#include 
typedef long long ll;
using namespace std;
const int N=6e2+20;
char g[N][N];
int h,w;
int f[N][N],d[N][N];//f[i][j] 第i行横着放,前j列&&以第j列为终点(第2个'.'在第j列上)连续2个.的个数 

void init()
{
	memset(f,0,sizeof(f));
	memset(d,0,sizeof(d));
	for(int i=1;i<=h;i++)
	{
		f[i][0]=0;
		f[i][1]=0;
		for(int j=2;j<=w;j++)
		{
			if(g[i][j]=='.'&&g[i][j-1]=='.')
			f[i][j]=f[i][j-1]+1;
			else
			f[i][j]=f[i][j-1];
		
			//cout< 
 


推荐阅读
author-avatar
爱飞扬无限_316
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有