Re: [问题] 可停留的路线安排程式

楼主: outofyou   2016-12-16 12:32:48
: 6. 这一题的特色是:
: (1) 分阶段:分成一天一天,每天做一件事。
: (2) 有因果:今天的位置,决定了明天的位置(在九宫格内)。
: (3) 可累积:今天的收益,以后列入总收益。
我做过一些题目之后,也归纳了出了跟DJWS同样的特色,真是感动。
我继续思考之后发现,其实这些问题都是最佳化问题,而看题目的时候,
其实要先抓出来题目中的变量有哪些。
例如这一题的变量就是天数、位置(1维或2维或更多维度),
另外要的最佳化结果是可累积的商人收益。
而我用这样的想法来想的时候,发现背包问题对我来说很特别。
因为我通常都会想用时间(天数)、空间(位置、长度、距离...)当变量,
却忽略了背包问题还可以用的变量是
物品的种类数、已累积的重量,而要的最佳化结果是可累积的价值总和。
^^^^^^^^^^^^ ^^^^^^^^^^^^
^^^^^^^^
总结:看问题的时候可以观察题目中有哪些变量、维度,
再按照这些变量、内存容量限制、1组解或多组解来设计适合的资料结构储存资讯。
以上是我的经验分享,谢谢。
※ 引述《DJWS (...)》之铭言:
: ※ 引述《jakeasa123 (啊斑斑)》之铭言:
: :   先前在Python板发了篇文,也获得了一些提示,但看了好几天也试做了几个版本,还是没能达到目标,于是来此询问。
: :   Python板原文:https://www.ptt.cc/bbs/Python/M.1480482142.A.713.html
: 1. 养不教,父之过。教不严,师之惰。
: 不必同情老师和同学。他们都有问题。
: 2. 原文的推文都在状况外。
: 3. 你的问题可以粗略分成程式问题、算法问题。
: 4. 程式问题就是语文问题,另含一点点数学问题。
:   程式语言变化少,只有for if array recursion,通常都有前例可循,其实不难。
:   由于你没有提供程式码,这里假设你没有程式方面的问题。
: 5. 算法问题就是数学问题。
: 数学问题最困难的地方,就是变化太多、往往没有前例可循。
: 比方说,在几何图形上画一条补助线,问题豁然开朗,根本莫名其妙。
:   即便背熟算法课本,遇到新的算法问题,通常还是解不开,不必自责。
:  
: 6. 这一题的特色是:
: (1) 分阶段:分成一天一天,每天做一件事。
: (2) 有因果:今天的位置,决定了明天的位置(在九宫格内)。
: (3) 可累积:今天的收益,以后列入总收益。
:   通常这种题型,可以用dynamic programming解决。
:   盘面拷贝数份,叠起来,变成三维。
:   一天换一个盘面,往上方走去。
:   程式码有:一个二维阵列(盘面),两个二维阵列(dp表格),四层循环(填表格)
: 7. 为什么我会知道那些特色呢?
:   书读多了、问题看多了,依照经验归纳出来的。
: 这些特色在不同地方有不同称呼:
:   例如算法课本里面的词汇是“optimal substructure”
:  例如竞赛选手所用的词汇是“无后效性”“状态转移”
:   那些特色已经形成了SOP了吗?
:   就我所知没有。只能自己看着办。
: . 为什么我能联想到dp呢?
:   因为我曾经遇过类似题目,运气好。
: 8. 数学问题不只一种解法,这个问题也不只一种解法。
:   如果你想掌握各种解法:
: (1) 靠别人:找一个懂的人,跟他交朋友。往后若有需要,靠交情、花钱请他帮忙。
: (2) 靠自己:读懂各类算法课程、书籍、论文,情况许可就再念个phd。
: 9. 获得了“掌握各种解法”的实力之后,有什么用呢?
:  我看过的有:为兴趣、为面试、为逞英雄、为练脑力、为消遣。
:   每个人状况不一样,我没有办法评论。
: 10. 你们老师同学,也许都想到了这个份上。
: 可能他们已经获得了“掌握各种解法”的实力。
:   可能他们不想获得这种实力,因为没用处、因为关注其他实力、因为太弱、...。
:   因此他们各方评估后,决定简单教、随便学就好。
:   与其说他们都有问题,不如说他们都有心思。
楼主: outofyou   2016-12-18 22:35:00
修正,而且背包问题用的重量是,"已累积的重量"。

Links booklink

Contact Us: admin [ a t ] ucptt.com