hdu1016-Prime Ring Problem(素数环,优化版本)

该博客介绍了如何优化解决杭电在线判题系统中的1016题——Prime Ring Problem。通过全排列并实时检查、预处理素数、利用奇偶性优化,以及针对奇数N的特殊处理,来提高算法效率,减少不必要的搜索。
摘要由CSDN通过智能技术生成

整理参考自:杭电OJ——1016 Prime Ring Problem

题意:

给出一个N(0<N<20),在1~N的所有排列中,满足相邻两个数之和是素数(头尾相邻)的排列输出 

常规思路:

全排列出所有可能,从中找符合条件的

优化①:

更高效的方法是,一边排列一边检查,这样可以提早发现不满足条件的候选解,提早剪枝,避免不必要的搜索,

1 void PrimeCircle(int a[], int n, int t)
 2 {
 3     if(t == n)
 4     {
 5         Output(a, n) ; // 找到一个解
 6     }
 7     else
 8     {
 9         for(int i = 1; i <= n; i++)
10         {
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值