深度搜索

本文介绍了使用C语言解决数论问题的方法,包括素数环与选数算法的实现。重点讲解了如何通过奇数成环特性减少分支判断,并在代码中避免不必要的输入输出操作以优化性能。此外,还讨论了C语言与C++在特定场景下的差异及优化策略。

hdu  1016

w  1031

素数环

时间比较的短,要注意奇偶剪枝,

只有 奇数可以成环,可以直接输一遍看一下,然后就是 奇数+奇数=偶数+偶数=偶数!=质数;

从这里有可以继续减少分支。

要特别的注意:用c语言的输入输出,不要用c++的,c++的endl,用了没有修改结果 还是时间超时,另外代码里面不 要有注释,注释最好都去掉,也有可能会影响运行时间。


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int sprim[]={2,3,5,7,11,13,17,19,23,29,31};
int s[20],n;
bool vis[20];

bool isture(int x,int y)
{
	int se(x+y);
	for (int i=0;i<13;i++)
	  if (se==sprim[i])
		 return true;
	return false;
}

void tofind(int x)
{
	if (x>n)
	{
		if (!isture(s[1],s[x-1]))
		return;
		printf("%d",s[1]);
		for (int i=2;i<=n;i++)
		printf(" %d",s[i]); 
		printf("\n");
        return;
	}

	for (int i=2;i<=n;i++)
	{
		if ((i+s[x-1])%2==0)
		 continue;

		if(!vis[i]&&isture(s[x-1],i))
		{
			s[x]=i;
			vis[i]=1;
			tofind(x+1);
			vis[i]=0;  
		}
	}
	  
}

int main()
{
  int i(1);
  while (cin>>n)
  {
	 if(n&1)
	   continue;
     memset(vis,0,sizeof(vis));
	 vis[1]=1;
	 s[1]=1;
	 tofind(2);
  }
	return 0;
}


w1008 选数

这道题更加的坑爹,一个等于号搞了我还去下输入数据。

没有什么好讲的,就是每次的选的数的序号必须比前面的大。

不然的话,代码就是 全排序了。



#include <iostream>
#include <cstring>
using namespace std;
int n,k;
int sev[25];
int s,t;   //  控制序数
long long sum;
bool vis[25];


bool isprim(long long x)
{
	if(x==1||x==0)
		return false;
	for (int i=2;i*i<=x;i++)  // 要注意这里“=” 写成 x+1也可以
		if (x%i==0)
		return false;
	return true;
}

void tofind(int x)
{
	int tt; //  辅助控制前面的序数要比后面的大
	tt=t;
	if(x>k)
	{
      if (isprim(sum))
		  s++;
      return;
	}
	for(int i=1;i<=n;i++)
	{
		if (!vis[i]&&t<i)
		{
			vis[i]=1;
			t=i;
			sum+=sev[i];
			tofind(x+1);
			t=tt;
			sum-=sev[i];
			vis[i]=0;
		}
	}

}

int main()
{

	while (cin>>n>>k)
	{
		memset(vis,0,sizeof(vis));
		s=t=0;
		sum=0;

		for (int i=1;i<=n;i++)
		   cin>>sev[i];
		
		tofind(1);
		cout<<s<<endl;

	}

	return 0;
}





内容概要:本文系统介绍了算术优化算法(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、付费专栏及课程。

余额充值