首页 > 其他分享 >[ARC157C] YY Square

[ARC157C] YY Square

时间:2024-02-23 20:34:28浏览次数:27  
标签:Square int YY 加上 权值 ARC157C

首先考虑权值不算平方这么算,
这个很简单,直接 dp,设 \(f_{i,j}\) 是为到点 \((i,j)\) 结束的路径权值和,
那么转移就很简单了加上左边的上边的在加上两个 Y 所加上的新权。
那么平方怎么做,注意到 \((a+1)^2=a^2+2a+1\),直接类似的转移,在加上两倍一次权值即可。

const int N = 2e3 + 5;
int n, m;
string s[N];
mint C[N << 1][N << 1];
mint f[N][N][2];
void solve() {
	cin >> n >> m;
	FOR(i, 1, n) {
		cin >> s[i];
		s[i] = ' ' + s[i];
	}
	FOR(i, 0, max(n, m) << 1) {
		C[i][0] = 1;
		FOR(j, 1, i) {
			C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
		}
	}
	FOR(i, 1, n) {
		FOR(j, 1, m) {
			f[i][j][0] = f[i - 1][j][0] + f[i][j - 1][0];
			f[i][j][1] = f[i - 1][j][1] + f[i][j - 1][1];
			if(s[i][j] == 'Y' && s[i - 1][j] == 'Y') {
				f[i][j][0] += C[i + j - 3][j - 1];
				f[i][j][1] += f[i - 1][j][0] * 2 + C[i + j - 3][j - 1];
			}
			if(s[i][j] == 'Y' && s[i][j - 1] == 'Y') {
				f[i][j][0] += C[i + j - 3][i - 1];
				f[i][j][1] += f[i][j - 1][0] * 2 + C[i + j - 3][i - 1];
			}
		}
	}
	cout << f[n][m][1] << endl;
}

标签:Square,int,YY,加上,权值,ARC157C
From: https://www.cnblogs.com/kevinlikescoding/p/18030311

相关文章

  • 洛谷题单指南-贪心-P1803 凌乱的yyy / 线段覆盖
    原题链接:https://www.luogu.com.cn/problem/P1803题意解读:通过某种贪心策略,使得能参加的比赛数越多越好。解题思路:将比赛按照结束时间由小到大哦排序,贪心策略是优先选择结束时间早的比赛,因为这样能保证后面参加更多其他比赛100分代码:#include<bits/stdc++.h>usingnamespa......
  • 将SquareLine Studio导出的LVGL代码在windows上运行
    1.引入SDL驱动SquareLineStudio导出的LVGL代码后如果要在windows上运行需要引入SDL的驱动,官方导出的代码是没有的,这里提供一个自己在网上找到的SDL2-2.28.1包,解压后放在同一目录下即可2.编写CmakeLists.txt这里提供我这边自己修改的CmakeLists.txtcmake_minimum_required(......
  • # yyds干货盘点 # Pandas中想剔除字符串中的【第】和【批】这两个字如何做?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【东哥】问了一个Pandas数据处理的问题。问题如下所示:大佬们,有个奇怪的问题请教下,我想剔除字符串中的【第】和【批】这两个字,我写成df["合同名称"]=df["合同名称"].str.replace("第","").replace("批",""),结果只是替换了【第......
  • CF1401E Divide Square 题解
    解题思路其实多看几组也能发现块数等于交点的数量加上两个端点都在边上的线段数量再加一。证明如下(图见样例):对于两条只有一个端点位于边上的线段,因为保证有一个端点位于边上,那么这两条线段的交点一定会和已存在的点、边构成一个新的矩形;对于其中有一条为两个端点均位于边上的......
  • [ARC135D] Add to Square 题解
    题目链接点击打开链接题目解法很牛的题!!!先考虑一步很牛的转化:把矩阵黑白染色,且\(i+j\)为奇数的位置的值取反,每次操作变为左上右下\(+v\),左下右上\(-v\)这样有啥好处?操作不会使行和列的和改变考虑答案的下界显然是:\(\max\{\)行的绝对值之和,列的绝对值之和\(\}\)这里给出......
  • # yyds干货盘点 # 盘点一个txt文档合并的实战需求(方法三)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【FiNε_】问了一个Pandas数据合并的问题。问题如下图所示:上一篇文章中我们已经看到了3个方法,这一篇文章我们一起来看看另外一个方法。二、实现过程这里【吴超建】斗胆给了一个指导,如下所示,并给出了如下代码:frompathlibimpo......
  • # yyds干货盘点 # 盘点一个txt文档合并的实战需求(方法二)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【FiNε_】问了一个Pandas数据合并的问题。问题如下图所示:上一篇文章中我们已经看到了两个方法,这一篇文章我们一起来看看另外一个方法。二、实现过程这里【哎呦喂 是豆子~】给了一个指导,如下所示:并给出了如下代码:importpand......
  • # yyds干货盘点 # 盘点一个txt文档合并的实战需求(方法一)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【FiNε_】问了一个Pandas数据合并的问题。问题如下图所示:二、实现过程这里【隔壁......
  • # yyds干货盘点 # Pandas中如何删除空值所在的行
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas日期数据删除的问题,问题如下:大家晚上好,又有问题了,请问下表格中下面空值怎么删除?删不掉。比方说这里我想删HOBBY这一列下面的空值,我是这样子做的df_new.dropna(subset='HOBBY',inplace=True),但空值所......
  • # yyds干货盘点 # 为啥一样一样的正则表达式,去提取就提取不出来?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas数据提取的问题。问题如下图所示:大佬们  为啥一样一样的正则表达式 for循环就可以出结果用apply(lambdax:re.findall(pattern,x))去提取就提取不出来?图一:图二:二、实现过程这里【隔......