CF567(Div2)Flag-飞外
1、题目链接:https://www.luogu.org/problem/CF1181C
2、题意:有个人想要卖国旗。
3、一面国旗可以抽象为一个n×m的矩形,每一个位置有一个颜色。这个矩形由自上而下三条横向的颜色带组成,每一条颜色带宽度相等,而且相邻两个颜色带颜色不能相同。
4、现在你有一个n×m的矩形,你需要计算其中能够称为国旗的子矩形数量。
5、题意:我们可以先用一个pre数组预处理,存储的是以点(i,j)之后又多少行和它颜色是相同的(包括自身)
6、我们便可以一列一列的开始找矩形。
7、具体看代码
8、#include bits/stdc++.h using namespace std;typedef long long ll;const int maxn=1007;const int inf=0x3f3f3f3f;const int N=1e7;const ll mod=1e9+7;#define meminf(a) memset(a,0x3f,sizeof(a))#define mem0(a) memset(a,0,sizeof(a));char g[1007][1007];int pre[1007][1007];int main(){ int n,m;scanf("%d%d", n, m); for(int i=1;i i++)scanf("%s",g[i]+1); for(int i=n;i 0;i--){ for(int j=m;j 0;j--) pre[i][j]=g[i+1][j]==g[i][j]?pre[i+1][j]+1:1; //预处理,pre数组代表点(i,j)下面的点和它相同的长度(包括它自身) ll ans=0; for(int i=1;i i++){ ll cnt=0; int pa=-1,pb=-1,pc=-1,pd=-1;//pa,pb,pc,pd代表上一个以四条分界线坐标 for(int j=1;j j++){ //a,b,c,d是一个国旗(如果能构成的话)的三个颜色带的分界线 int a=i,b=a+pre[a][j],c=b+pre[b][j],d=c+pre[c][j]; if(c =n b-a==c-b b-a =d-c){ //当前这一列满足能构成一个国旗 if(pc =n pa==a pb==b pc==c pd-pc =pb-pa g[a][j]==g[a][j-1] g[b][j]==g[b][j-1] g[c][j]==g[c][j-1]){ //如果新成的一列的能够和前一列合并的话,就将宽度加一 cnt++; else{ //否则就加上前面那个矩形能够构成的国旗的个数,并且将cnt重新赋为1, ans+=(cnt*(cnt+1)) 1; cnt=1; pa=a,pb=b,pc=c,pd=d;//更新 ans+=(cnt*(cnt+1)) 1; //每一列遍历完后记得还要再加一遍 printf("%lld",ans); return 0;}
【#CF567(Div2)Flag-飞外#】到此分享完毕,希望对大家有所帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
试驾奔驰A级,一键启动,开启豪华驾驶之旅。外观时尚动感,内饰精致豪华,科技配置丰富,带来非凡体验。动力充...浏览全文>>
-
试驾零跑C01,感受豪华与性能的完美融合。车身线条流畅,内饰精致,科技感十足,座椅舒适,带来极佳的乘坐体验...浏览全文>>
-
试驾哈弗H6操作指南:1 预约试驾:通过官网或4S店预约试驾时间,提前了解车型配置。2 签到登记:到达后...浏览全文>>
-
预约试驾吉利熊猫,可通过以下步骤进行:1 访问官网或APP:进入吉利汽车官网或“吉利汽车”官方APP,找到“...浏览全文>>
-
试驾比亚迪唐新能源,新手必看的详细流程如下:1 预约试驾:通过官网或4S店预约,选择合适时间与地点。2 ...浏览全文>>
-
试驾雷克萨斯LX,感受豪华与科技的完美融合。进入车内,真皮座椅带来极致舒适体验,全景天窗让空间更显开阔。...浏览全文>>
-
预约试驾问界M9前,新手需注意以下事项:首先,提前了解车辆基本功能,如智能驾驶辅助、语音控制等,有助于快...浏览全文>>
-
预约试驾吉利银河E5的流程如下:首先,访问吉利汽车官网或“吉利银河”官方App,进入“试驾预约”页面。填写个...浏览全文>>
-
万象汽车试驾,轻松开启试驾之旅。本次试驾体验,不仅展现了车辆的卓越性能,更让人感受到品牌对驾驶乐趣的深...浏览全文>>
-
试驾极狐阿尔法S,从咨询到体验全过程令人印象深刻。前期通过线上平台了解车型信息后,客服响应迅速,详细解答...浏览全文>>
- 试驾雷克萨斯LX,感受豪华与科技的完美融合
- 宝马X1试驾,快速操作,轻松体验驾驶乐趣
- 昌河北斗星X5试驾,简单几步,开启完美试驾之旅
- 北汽制造勇士试驾预约,4S店的贴心服务与流程
- 试驾海豚,轻松几步,畅享豪华驾乘
- 试驾奔驰V级,新手必知的详细步骤
- 比亚迪海豹05DM-i试驾预约流程
- 奇骏试驾需要注意什么
- 极氪7X试驾,如何在4S店快速预约?
- 保时捷Cayenne预约试驾需要注意什么
- 试驾沃尔沃XC60,从预约到试驾的完美旅程
- 比亚迪海豹06GT试驾,如何享受4S店的专业服务?
- 明锐试驾,4S店体验全攻略
- 理想汽车理想L8预约试驾怎么预约
- 试驾海豚,轻松几步,畅享豪华驾乘
- 理想汽车预约试驾,如何在4S店快速预约?
- 魏牌预约试驾全攻略
- 保时捷Cayenne预约试驾需要注意什么
- 试驾海豚预约流程
- 哈弗预约试驾,开启完美驾驭之旅