[HDU-1016] 链表优化的DFS

Logstash安装部署 1. 部署及安装所用的用户不能是root。 阅读详情

不过结果很令人遗憾,没有快多少。

/*
 * HDU-1016
 * mike-w
 * 2012-9-25
 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXN 25
#define PRIME_SIZE 64

int prime[PRIME_SIZE];
int f[MAXN];
int prv[MAXN], nxt[MAXN];
int n;

int gen_prime(void)
{
	int i, j;
	prime[1]=prime[0]=1;
	for(i=2; i<PRIME_SIZE; i++)
		if(!prime[i])
			for(j=i+i; j<PRIME_SIZE; j+=i)
				prime[j]=1;
	for(i=0; i<PRIME_SIZE; i++)
		prime[i]=1-prime[i]; /* if i is prime then prime[i] == 1 */
	return 0;
}

int disp(void)
{
	int i;
	for(i=1; i<=n; i++)
		printf("%d%c", f[i], i==n?'\n':' ');
	return 0;
}

int search(int id)
{
	int i;
	for(i=nxt[0]; i!=n+1; i=nxt[i])
		if(prime[i+f[id-1]])
		{
			if(nxt[nxt[0]]==n+1 && prime[i+1]) /* final position */
				f[id]=i, disp();
			else
			{
				nxt[prv[i]]=nxt[i];
				prv[nxt[i]]=prv[i];
				f[id]=i;
				search(id+1);
				nxt[prv[i]]=i;
				prv[nxt[i]]=i;
			}
		}
	return 0;
}

int llist_init(void)
{
	int i;
	for(i=0; i<=n; i++)
		nxt[i]=i+1;
	for(i=1; i<=n+1; i++)
		prv[i]=i-1;
	/* remove 1 */
	nxt[0]=2;
	prv[2]=0;
	return 0;
}

int main(void)
{
	int ccase=0;
	gen_prime();
	while(scanf("%d", &n)!=EOF)
	{
		memset(f, 0, sizeof(f));
		f[1]=1;
		llist_init();
		printf("Case %d:\n", ++ccase);
		search(2);
		putchar('\n');
	}
	return 0;
}



【25届数字IC秋招总结】面试经验13——豪威科技面试 25届数字ic面试记录———豪威科技 阅读详情

相关推荐

Linear超高PSRR线性稳压器-典型应用电路解析

本文整理完了LT3045数据手册内所有的典型应用电路,试图让沉默的电路开口,简单介绍了他们这样做的目的和原理,从中我们可以更加熟悉这颗经典芯片的应用。但也有一些电路并没有搞懂,遗留下了不少问题。

硬件工程师笔记 2939

DFS之剪枝与优化

文章目录前言一、剪枝二、例题,模板AcWing 165. 小猫爬山本题解析AC代码AcWing 166. 数独本题解析AC代码AcWing 167. 木棒本题解析AC代码AcWing 168. 生日蛋糕本题解析AC代码三、时间复杂度 前言 复习acwing算法提高课的内容,本篇为讲解算法:DFS之剪枝与优化。 一、剪枝 剪枝是dfs中的一个操作,我们知道不论是dfs还是bfs,都是十分暴力的搜索方式,都是按照一个固定的搜索方式对所有的情况暴力的枚举,并从中找到我们所求的解,对于dfs而言,我们有一个优.

佛系更新 5507

跟着Synopsys报告,一步步拆解车规芯片FMEDA计算(含公式与避坑点)

本文详细解析了车规芯片FMEDA计算的全流程,基于Synopsys报告拆解实战指南,涵盖基础失效率建模、安全机制效能评估及安全指标合成等关键步骤。通过公式解析、数据准备清单和避坑点分享,帮助工程师掌握ISO26262标准下的硬件量化分析技术,提升车载系统设计可靠性。

weixin_30460489的博客 194

深度优先搜索(DFS)优化手册

在通过搜索解决实际问题的过程中,我们是通过穷举每种情况来寻找合法解,然而在一些情况比较复杂的题目、数据量较强的题目中,由于算法的时间复杂度较高、数据规模过大,从而会导致运行超时甚至程序卡死,因此在对复杂问题的答案进行搜索时,我们应该灵活的针对每种题型设计对应的搜索规则并进行优化,通常通过设置剪枝、排除无效情况、对问题进行适当的转化等手法对搜索算法进行优化,使算法高效的执行并得出我们想要的结果。

m0_69596371的博客 1370

4万字一文带你看懂车载摄像头技术、市场、发展前景

1、小孔成像 在战国初期,我国学者墨子(公元前468年-公元前376年)和弟子们完成了世界上第一个小孔成像的实验,并记录在《墨经》中:“景到,在午有端,与景长。说在端。”“景。光之人,煦若射,下者之人也高;高者之人也下。足蔽下光,故成景于上;首蔽上光,故成景于下。在远近有端,与于光,故景库内也。” 此文解释了小孔成倒像的原因,指出了光沿直线传播的性质。这是对光直线传播的第一次科学解释。 而西方世界直到公元前350年,古希腊学者亚里士多德提出光学法则,西方人从此了解小孔成像的光学原理。

m0_58838529的博客 1493

无刷电机控制基础(2)——有感和无感驱动、调速

上一篇文章我们讲了一些无刷电机的基础知识,包括无刷电机的内部结构,驱动原理等,我们知道了只需要按照转子的当前位置,来按顺序给定子线圈通电,就能让电机转动起来。但是,上一篇中我们跳过了一个关键步骤,就是如何检测转子的位置。本篇我们就讲讲常用的位置检测方法,以及引出的一些相关问题。我们知道,获取磁铁的位置可以用霍尔传感器,无刷电机的转子就是永磁体,因此只要在合适的位置安装霍尔传感器,就能知道转子的旋转位置。在无刷电机中,一般用3个开关型霍尔器件就能检测转子的位置。

小白白学电子 2万+

DFS剪枝与优化

DFS剪枝和优化顺序以及例题。

qq_69908563的博客 548

MATLAB算法实战应用案例精讲-【数模应用】校准曲线(附MATLAB、python和R语言代码实现)

模型校准曲线(Calibration Curve),也称为可靠性曲线(Reliability Curve)或概率校准曲线(Probability Calibration Curve),是一种评估分类模型输出概率准确性的图形工具。它可以帮助我们理解模型的预测概率是否与实际标签的分布一致。校准曲线通常包括以下步骤:计算模型预测概率:对于测试集中的每个样本,模型会输出一个概率值,表示样本属于正类的概率。将数据分桶:将这些概率值分成若干个等宽的桶(例如10个桶),每个桶中的样本具有相似的预测概率。

qq_36130719的博客 557

DFS优化

DFS是常用的暴力方法,但由于其O(n!)的效率,有时难以通过较多数据点,所以需对其进行剪枝。范围剪枝:(一种可行性剪枝,拉出来单独讲) 有时DFS的范围较大会导致TLE,这时需根据题意缩小搜索的范围。例如:需要搜索一个n位数,但需要其低位数字保证比高位数字大。例如12345是合法的,但12354是不合法的。 比较差的思想是先做一遍全排列,如果已经做完一遍,再判断这个排列是否满足条件。 优

fsl123fsl的博客 2154

SAP PI 系统复制,不只是把数据库拷过去,而是一次集成拓扑的重新落位

文章摘要:SAP PI/PO系统刷新生产数据到测试环境时,标准系统复制无法自动处理集成中枢特有的环境绑定问题。系统复制后,PI仍保留生产环境的连接配置,可能导致测试系统向生产环境发送消息。SAP提供的CTC模板可自动化部分后续配置,但无法替代人工对接口风险的全面评估。关键在于系统复制前绘制接口风险地图,复制后进行分层次验证:禁用生产连接、重定向测试接口、复核安全配置,并通过代表性链路测试确保系统行为符合预期。这需要结合SAP标准流程与业务语义判断,形成完整的治理闭环。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 82

FPGA和USB3.0通信-USB3.0 PHY介绍

可以和FPGA搭配使用的USB3.0 PHY芯片通过之前的介绍<FPGA和USB3.0通信-USB3.0协议介绍USB3.0 PHY简介首先我们需要了解PHY具体完成哪些工作以及我利...

OpenFPGA的博客 4940

算法学习系列(四十五):DFS之剪枝与优化

关于这个 $DFS$ 的剪枝和优化确实难度是非常的大,从我这篇文章的思路和代码量上就能看出来不是一般的难度,而且难度不亚于 $DP$ ,而且这个 $DFS$ 也是花费了我三天的时间才基本把这几道例题给搞懂了,并且这种题就是没有固定的模型和套路,每个题都不一样,只有你多做题,这样在考场上才能想到这道题好像跟之前做过的题有点相似,然后再去套用模型。不可能短时间去创造一种算法,所以还是继续刷题吧,加油!

weixin_60033897的博客 2058

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【HDU1016】素数环(dfs)

HDU1016 prime ring problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.

这太Imba了 342

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

hdu 1016 Prime Ring Problem(深度优先搜索)

Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14715    Accepted Submission(s): 6720 Problem Description A ring is comp...

weixin_33859665的博客 103

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU分类

第一篇    1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题 1013 简单题(有个小陷阱) 1014

DB_water的博客 651

HDU题目分类

注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 ...

weixin_30912051的博客 90

hdu 题目分类

注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题 1013 简单题(有个小陷阱) 1014 简单题 10

chinnmt的专栏 665

hdu分类

【转】杭电题目分类 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011  1012 简单题 1013 简单题(有个小陷

861

hdu 杭电题目分类

View Code 1 1001 这个就不用说了吧 2 1002 简单的大数 3 1003 DP经典问题,最大连续子段和 4 1004 简单题 5 1005 找规律(循环点) 6 1006 感觉有点BT的题,我到现在还没过 7 1007 经典问题,最近点对问题,用分治 8 1008 简单题 9 1009 贪心 10 1010 搜索题,剪枝很关键 11 1011 12 ...

weixin_30809173的博客 195

hdu题目分类

基础题: 1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、1170、1194、1196、1197、1201、1202、1205、1219、1234、1235、1236、1248、1266、1

狗蛋的博客 315

杭电ACM题目分类

http://acm.hdu.edu.cn/listproblem.php?vol=1 http://acm.hdu.edu.cn/forum/ 按此做成就大神之路:   1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,

Kaido0的博客 765

HDU 题型分类

详细分类: 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 树形DP 1012 简单题 1013 简单题(有...

HuiSeKongHuan的博客 545
上一篇: [HDU-1016] 无优化DFS
下一篇: [HDU-1240] 三维的FLOODFILL
creativewang
博客等级 码龄17年 20粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值