暴力剪枝——cf1181C
暴力求长度为len时,以i,j为左上角的旗子的数量
不剪枝的话复杂度是n*n*m*n,必定超时
两个可以剪枝的地方:如果格子[i,j]可以作为长度为len的旗子的左上角,那么其必定不可以作为长度>len的旗子的左上角
同理,如果格子[i,j]为左上角不可以组成长度为len的旗子,并且是因为len行内有不同色块导致的,那么显然这个格子作为左上角也不可以作为长度>len的旗子的左上角
用f[i][j]标记一下即可
#include<bits/stdc++.h>
using namespace std; const int maxn = ; int n,m,f[maxn][maxn];
char mp[maxn][maxn]; int main(){
cin>>n>>m;
for(int i=;i<=n;i++)
scanf("%s",mp[i]+);
int ans=;
for(int len=;len*<=n;len++){
for(int i=;i+len*-<=n;i++){
char la,lb,lc;
int sum=,cnt=;
for(int j=;j<=m;j++){
if(f[i][j]){cnt=;continue;} char a=mp[i][j],b=mp[i+len][j],c=mp[i+len*][j];
if(a==b || b==c){
la=a;lb=b;lc=c;
cnt=;continue;
}
int flag=;
for(int k=;k<len;k++)
if(mp[i+k][j]!=a || mp[i+len+k][j]!=b || mp[i+len*+k][j]!=c){
f[i][j]=;
la=a;lb=b;lc=c;
cnt=;flag=;break;
}
if(flag)continue;
if(j!= && (la!=a || lb!=b || lc!=c))cnt=;
else cnt++;
f[i][j]=;
sum+=cnt;
la=a;lb=b;lc=c;
}
ans+=sum;
}
}
cout<<ans<<'\n';
}
暴力剪枝——cf1181C的更多相关文章
- poj 3714 Raid【(暴力+剪枝) || (分治法+剪枝)】
题目: http://poj.org/problem?id=3714 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27048#prob ...
- HDU 5839 Special Tetrahedron (2016CCPC网络赛08) (暴力+剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5839 在一个三维坐标,给你n个点,问你有多少个四面体(4个点,6条边) 且满足至少四边相等 其余两边不 ...
- HDU 4876 ZCC loves cards(暴力剪枝)
HDU 4876 ZCC loves cards 题目链接 题意:给定一些卡片,每一个卡片上有数字,如今选k个卡片,绕成一个环,每次能够再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个 ...
- acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)
小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- HDU 6382 odds (暴力 + 剪枝优化)
odds Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Subm ...
- Codeforces A. Playlist(暴力剪枝)
题目描述: Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- [CSP-S模拟测试]:D(暴力+剪枝)
题目传送门(内部题47) 输入格式 第一行一个正整数$n$.第二行$n$个正整数,表示序列$A_i$. 输出格式 一行一个正整数,表示答案. 样例 样例输入: 530 60 20 20 20 样例输出 ...
- [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
目录 题意 输入格式 输出格式 样例 Input Output 数据范围 时间限制 思路 代码 题意 有\(N\)个人,现在你要从中选出\(K\)个人出来,然后让这\(K\)个人一起参加\(K\)场比 ...
- codeforces 303C. Minimum Modular(数论+暴力+剪枝+贪心)
You have been given n distinct integers a1, a2, ..., an. You can remove at most k of them. Find the ...
随机推荐
- spring Aop设计原理
转载至:https://blog.csdn.net/luanlouis/article/details/51095702 0.前言 Spring 提供了AOP(Aspect Oriented Prog ...
- C语言之文件包含
c = #include <stdio.h> #include "A.h" int main() { /******************************** ...
- 微信小程序picker下拉绑定数据
页面部分 <picker mode = "selector" bindchange="bindPickerChange" value="{{pr ...
- tf.matmul() 和tf.multiply() 的区别
1.tf.multiply()两个矩阵中对应元素各自相乘 格式: tf.multiply(x, y, name=None) 参数: x: 一个类型为:half, float32, float64, u ...
- 如何定义一个BUG
一.划分一个bug的等级 bug等级主要分为致命.严重.一般.轻微或者建议四个等级: 1.致命错误:系统无法执行.崩溃或严重资源不足.应用模块无法启动或异常退出.无法测试.造成系统不稳定.价值较高功能 ...
- Servlet中的Filter怎么使用?
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- MapReduce分区数据倾斜
什么是数据倾斜? 数据不可避免的出现离群值,并导致数据倾斜,数据倾斜会显著的拖慢MR的执行速度 常见数据倾斜有以下几类 1.数据频率倾斜 某一个区域的数据量要远远大于其他区域 2.数据大小倾斜 ...
- Delphi 字符串函数 StrUtils(大全)
引用单元: StrUtils; 首部 function AnsiResemblesText(const AText, AOther: string): Boolean; $[StrUtils.pas ...
- Ruby 环境变量
Ruby 环境变量 Ruby 解释器使用下列环境变量来控制它的行为.ENV 对象包含了所有当前设置的环境变量列表. 变量 描述 DLN_LIBRARY_PATH 动态加载模块搜索的路径. HOME 当 ...
- NX二次开发-UFUN设置除工作层之外的所有图层的状态UF_LAYER_set_all_but_work
NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_layer.h> UF_initialize ...