我正学c语言算法 但是动态规划就是 学不懂 各位高手给支个招

自己也学了好几道例题 但是就是做不了题
2025-02-23 14:45:03
推荐回答(3个)
回答1:

石子合并,背包问题(几种背包问题),最长上升序列...动态规划的题很死的啊,但是开始是很不容易理解的,我是信息学保送的,我不聪明,也用了很久才理解到的,大概1周多的时间,然后你就会发现DP不过如此,你甚至会想当初为什么会不懂!我给你说下我的经历,实用于理解力较为一般的人:我就当初一直想一个问题,第一次可能感觉懂了,但是并不清晰,然后休息,过段时间再想,不停地思考动规方程,我的意思是先把几类例题吃透;然后你会感觉突然悟道了,真是那么回事,突然一天你就理解动规了,就可以做题了~具体你可以发题上来,我给你讲解,其实也可以自己百度,我无非也只能给你说说动规方程,但是理解始终得靠自己。

回答2:

要学好编程语言,说白了就是把时间花在理解+编写代码上面,先看懂理论在看程序,脑子里面有详细的构架,这样就一通百通了,stdlib.h库里面的malloc()就是用来动态分配内存的一个函数,比如
int *p;
p=malloc(10*sizeof(int));
这两条语句,定义了一个P指针,它指向10x(int)字节数的内存空间,可以用printf(“p指向的地址是:”,*p);来显式所分配内存的起始地址。特别要注意的是,这个分配的内存的有效期为从分配这个内存到整个程序结束为止,所以malloc和delete配对使用,以防止内存泄露,造成电脑死机或者运行缓慢。比如上面的内存可以使用delete *p 来释放该内存空间。

回答3:

学算法的思想呃。。动态规划有一个最优子结构,你深刻理解一下这个东西。