浙大1411 大家来找茬

大家来找茬
Time Limit:1000MS  Memory Limit:32768K

 

Description:

小明很喜欢玩大家来找茬的游戏,在游戏中有两张长为L,高为H的长方形图片,图片被切割成L*H个1*1的小正方形,每个小正方形上都画有一个小写英文字母。两张图片相对应的小正方形的字母如果不相同,那么这个小正方形就是一个“茬点”。如果两个相邻小正方形都是“茬点”,那么他们属于同一个“茬区”,两个有共边的小正方形即为相邻。

 

Input:

输入数据将包含多组图片数据,每组图片数据的第一行有两个正整数H和L,H表示高,L表示长,表示该组图片为L*H个小正方形所组成,如果L和H都为0,表示所有输入到此结束。否则,后面H(1≤H≤100)行数据,每行有L(1≤L≤100)个小写英文字母,再接着H行数据,每行有L个小写英文字母。

Output:

每组图片输出“茬区”的个数,每个“茬区”数占独立的一行。

Sample Input:

1 1ab3 5bababbbabbbababbbbbbbbbbbbbbbb5 5aaaababaababaabbbbabbbaabaaaaaaaaaaaaaaaaaaaaaaaaa0 0

Sample Output:

152

 

解答:
#include <iostream>
#define N 102
using namespace std;
int a,b,tmp[N][N];
void f(int i,int j)
{
 if(tmp[i][j]==0)return;//跳到这个函数唯一的出口
 tmp[i][j]=0;
 if(i>0) f(i-1,j);
 if(j>0) f(i,j-1);
 if(i<a-1) f(i+1,j);
 if(j<b-1) f(i,j+1); 
}
int main()
{int c,i,j;
char m[N][N],n[N][N];
while(cin>>a>>b,a || b)
{ c=0;
 for(i=0;i<a;i++)
 for(j=0;j<b;j++)
 {
  cin>>m[i][j]; 
 }
 for(i=0;i<a;i++)
 for(j=0;j<b;j++)
 {
  cin>>n[i][j]; 
 }
 for(i=0;i<a;i++)
 for(j=0;j<b;j++)
 {
 if(m[i][j]!=n[i][j])
 tmp[i][j]=1;  //当对应位置不相同时,用1来表示这是一个茬点
  
 }
 for(i=0;i<a;i++)
 for(j=0;j<b;j++)
 {
  if(tmp[i][j]==1) c++;
  f(i,j); 
 }
cout<<c<<endl;   
}
  system("pause");
   return 0;
}
心得:void f(int i,int j)这个函数很重要,要加深理解,难点也就在这,它的作用是:当找到一个荐点,要把它周围(即上下左右)均置为0,因为只要与它相邻的位置有一个为1(茬点),则只算作一个荐区。
举个例子当输入为
3 5
babab
bbabb
babab
bbbbb
bbbbb
bbbbb
这一组数据时,tmp数组为
01010
00100
01010
是不是每一个1的上下左右均为0?就是通过这一点来找茬区个数的。于是就有了上面那个f()函数。要理解这个函数,最好的办法是仔细地拿几个数字走几遍,这样就会体会到它是怎么把它的上下左右置为0的(当然还包括这个位置本身)。

 

转载于:https://www.cnblogs.com/qnbs1/articles/1686122.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值