ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

acm第三周学习总结

2021-03-20 09:05:42  阅读:140  来源: 互联网

标签:总结 可以 第三周 acm 问题 区间 应该 我们 贪心


本周学习了贪心算法的较难类型题目,通过讲解多种题型,便于使我们了解贪心算法求最优解的合适方法。在贪心算法中,由于数据太多,我们通常首先要做的就是排序,因此我们对于需要两组数据排序的题可以建立倒序数组,这样便于使数组首尾元素对应,也可以使用双指针对首位元素进行标记,以达到相同目的。我们开始学习了背包问题,这个问题关键在于要同时兼顾重量和价值,对于这种兼顾两点的问题,我们可以选择计算其性价比,然后对性价比排序,进而使用贪心算法,求出最优解。在贪心算法过程中,我们还应该多多使用STL函数库,这样可以加快我们写程序的时间,也使用方便。对于分发饼干问题,我们考虑的是是最多的孩子得到满足,所以我们应该对饼干大小进行倒序排列,以此来和孩子胃口实现一一对应,但应该要注意的是,在改程序中,该孩子不管是不是得到满足,每次执行完之后都应该使孩子数移动到下一个孩子。对于整数区间问题,该题学到的思路是首先对于这种问题,应该先对区间排序,将该区间的上限与下个区间的下限作比较,如果该区间的上限大于下个区间的下限,则说明了该区间的范围可以包括到下个区间,如果该区间的上限小于下个区间的下限,这时我们应该切换到下个区间继续做类似的比较以达到最优解问题。而有些问题则告诉我们输入若干组数据时,我们可以用while(cin>>N)或者while(scanf("%d",&N!=NOF)),这样可以达到一直输入的效果。对于做作业问题,我们学到该类型题应该优先考虑时间,同时注意到扣分状况,如果要扣的分数高的话,可以适当替换前面扣分少的。对于选课问题,我们学到应该针对这类型题中所提及的选课时间间隔进行排序,然后将其分为多组数据,例如选课间隔为五分钟,就可以分为五组数据,选课间隔有十分钟,就可以分为十组数据,但应该注意,每组数据执行完后都应该进行初始化设置。最后学习了物理碰撞合成一个物体的问题,对于这类两组数据合成一组数据且该数据减小的问题,我们可以使质量大的问题碰撞,进而使其丢失的质量变大,但应注意该两个物体合成一个物体后,质量不一定还是最大的,因此,这是一道动态排序问题,我们应该使用优先队列来解决,使其每次碰撞后都应该重新排列。通过本周的学习,我学到了,对于贪心算法问题,我们如果一时间看不出最优解,我们可以按普通解法来解,然后在写普通解法的时候可以看看哪个步骤可以简化,哪个步骤可以省略,以此最快找出贪心策略,如果有出现除法运算,我们应该将其转化为乘法运算,当需要输入若干组数据,可以用while。

标签:总结,可以,第三周,acm,问题,区间,应该,我们,贪心
来源: https://blog.csdn.net/m0_56005883/article/details/115020522

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有