首页 > 其他分享 >cf1864D. Matrix Cascade(差分)

cf1864D. Matrix Cascade(差分)

时间:2023-11-18 19:11:18浏览次数:42  
标签:Matrix cf1864D puts 差分 Cascade include define

https://codeforces.com/contest/1864/problem/D

结论很好猜,直接从上到下做就行
我们可以维护差分数组,表示对下面的影响,逐行往下推就行,当然+和-要分开,因为一个是往前推,一个往后推。
时间复杂度\(O(n^2)\)

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<vector>
#include<set>
#include<queue>
#include<ctime>
#define A puts("YES")
#define B puts("NO")
//#define A puts("Yes")
//#define B puts("No")
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
#define lc (o<<1)
#define rc (o<<1|1)
using namespace std;
//typedef __int128 i128;
typedef double db;
typedef long long ll;
const ll mo=998244353;
const int inf=1<<30;
const int N=5005;
char s[N];
int a[N][N],ans,n;
int bp[N],bn[N],cp[N],cn[N],t;
int main()
{
//	freopen("data.in","r",stdin);
//	freopen("ans.out","w",stdout);
	
	int T;
	scanf("%d",&T);
	while (T--){
		scanf("%d",&n);
		fo(i,1,n+1) bn[i]=bp[i]=cp[i]=cn[i]=0;
		
		fo(i,1,n) {
			scanf("%s",s+1);
			fo(j,1,n) a[i][j]=s[j]-'0';
		}
		
		ans=0;
		fo(i,1,n) {
			fo(j,1,n) cn[j]=cp[j]=0;
			
			t=0;
			fo(j,1,n) {
				t+=bp[j]+bn[j];
				
				if ((t+a[i][j])&1) {
					ans++;
					cp[max(1,j-1)]++;
					cn[j+2]--;
				}
				
				cp[max(1,j-1)]+=bp[j];
				cn[j+1]+=bn[j];
			}
			
			fo(j,1,n) bp[j]=cp[j], bn[j]=cn[j];
		}
		
		printf("%d\n",ans);
	}

	return 0;
} 

  

标签:Matrix,cf1864D,puts,差分,Cascade,include,define
From: https://www.cnblogs.com/ganking/p/17840956.html

相关文章

  • Can Report (rdlc) Table or Matrix Column Width Be Set at Runtime?
     UsinganrdlcreportinReportViewer,Ineedtocreateatableormatrixwherethenumberofcolumnsandthekindsofdatadisplayedinthecolumnschangeswitheachreport. Forexample,inonereport,thesecondcolumnmayholdpriceinformation. Ina......
  • OpenCASCADE - 曲线自交
    OpenCASCADE-曲线自交1IntroductionOpenCASCADE为二维曲线提供了求交及自交的类Geom2dAPI_InterCurveCurve:当传入一个二维几何曲线时可以计算自交self-intersections。但是没有提供直接的三维几何曲线求交的类,也没有直接的计算自交的类。有人同学问OpenCASCADE有没有三维曲......
  • parser/../../include/contTimeMC.hh:18:10: fatal error: gsl/gsl_matrix.h: No such
     001、make编译遇到如下问题:parser/../../include/contTimeMC.hh:18:10:fatalerror:gsl/gsl_matrix.h:Nosuchfileordirectory 002、查找该文件(base)[[email protected]]#find/-name"gsl_matrix.h"##系统中确实不存在该文件(base)......
  • CF1316D Nash Matrix(构造/dfs)
    题目第一次做构造题,做了两节晚自习qwq一开始我完全是正着想,首先\(X\)是显然的,但其他的点就不好做了,然后我就想,可行的一般结论推不出,那就想反例,然后我想啊想......倒是想到了几个,比如说环与环之间不能有相交,环内外的点不能互相到达,跟本举不完,而且也不好实现,还是要想一般结论......
  • ElementUI的el-cascade希望限制显示的宽度?
    要限制el-cascade组件显示的宽度,你可以使用CSS来设置容器的宽度。以下是一种可能的解决方案:在包含el-cascade组件的父级容器中添加一个自定义的样式类,例如cascade-container。<divclass="cascade-container"><el-cascade...></el-cascade></div>在你的样式表(如CSS文件或内联......
  • Scipy中稀疏矩阵用法解析(sp.csr_matrix;sp.csc_matrix;sp.coo_matrix)用法
    参考:链接orig=np.array([[1,0,2],[0,0,3],[4,7,6]])aa=csr_matrix(orig)aa有如下属性:#2代表第第一行有2个不为零的元素,#3代表第第一和二行不为零的元素总共有3个#6代表第第一、二和三行不为零的元素总共有6个indptr:array([0,2,3......
  • 海森矩阵 Hessian matrix
    二阶偏导数矩阵也就所谓的赫氏矩阵(Hessianmatrix).一元函数就是二阶导,多元函数就是二阶偏导组成的矩阵.求向量函数最小值时用的,矩阵正定是最小值存在的充分条件。经济学中常常遇到求最优的问题,目标函数是多元非线性函数的极值问题尚无一般的求解方法,但判定局部极小值......
  • 支付宝小程序的级联选择器,对接简单操作,Cascader 级联选择器element_ui
    首先,对于element_ui的动接,由于需要数据格式是 但是支付宝提的接口返回的数据是另一种格式,并且支付宝的三级联动接口是先只有一个列表,点击列表项再发现请求,生成另外一个下拉选择,需要这个三级联动不能直接使用element-ui的三级联动。需要自己实现这个功能 并且支付宝的这个......
  • 获取 el-cascader 的输入值
    问题场景使用el-cascader级联选择器时,设置filterable可搜索选项。但怎样获取输入框的输入值呢?解决官方文档给出了如下事件:其中change事件获取到的是选中的选项的值,如果输入值不符合选项值(即没有选中),则无法获取输入值。那么为了获取到输入值,就只有用blur事件,即失去焦......
  • 关于elementui的cascader组件多个级联大量数据滚动定位样式导致卡顿问题
    如题,多个cascader级联组件,下拉选项含大量数据,滚动时会有实时样式重新渲染,导致CUP内存溢满而卡顿解决尝试:使用elementui中的内部源码方法处理<script>import{addResizeListener,removeResizeListener}from'element-ui/src/utils/resize-event';...setu......