[转]ACM人生
与ACM接触这么长时间了...有点感悟.....
-------------------------------------------------我割-------------------------------------------------------------------------------
首先呢,为了简化文章,请允许我
#define 它 ACM
其实能,它对人生的指引很大......客官,请听我细细道来~
它的比赛主要是思考,留给拍代码的时间很少,为什么呢?---答曰:三思而后行~
它拍出地代码,可能会Wrong anwser,怎么办呢?---答曰:不断完善自我~
它思考的方法没错,可能会TLE,MLE,怎么办?---答曰:不满足现状,寻找最优解~
好了,这些都太空洞了~说点实际的~
话说有一天你去姑姑家吃东西,晚上必须回来~如何能在这么点时间吃到价值最大的东西呢?
---贪心,每次都先吃最贵的东西
然后又一天,你要去一个地方,可是你补知道怎么走,怎么办?
--搜索(不要告诉我你只会bfs,dfs),一般人都用的是A*..........
接着呢,问题又来了,不同的路由不同的路境~有的要耗费的气力多写,怎么办?
----跑一次Dijsktra或者Spfa~
如果你想到达每个景点,却又想走最少的路长,怎么办?
----最小生成树呀~Kruskal,Prim任您享用~
不过呢,就是因为旅游局长看你每次都能走最短的路,把你提升为了officer,这下你要知道所有点之间最短路,怎么办?
----跑一次Floyd就可以了....
好吧,走来走去的也够无聊了....换个情景~
一堆单身男女,他们要结婚,但是不同的人只喜欢异性中的一部分(可以理解嘛~都是单身的,但是不同人的口味也不同嘛),怎样才能让更多的情侣终成眷属?
------左边=男,右边=女,二分图匹配~典型的匈牙利算法~
问题又来了,不同的人之间结婚了,会有一个幸福值,要使得这个幸福最大,怎么做?
------还是二分图匹配,只不过这次是带权值的了,跑一个KM算法就可以了~
然后呢..问题又来了(你是问题儿童么?),不同的人,对不同类型的异性都有一个厌恶值,厌恶值太高了他们结婚是不会幸福的,但是又想让所有的人都结婚,能不能?
-----把每个人拆点,一个是总的值,一个是厌恶值,总值往厌恶值连一条边,然后再在男女之间连边,男->女,女->男均可...看个人喜好,跑一次SAP就可以确定能否每个人都能幸福了....
这些太玄了...来个简单又好理解的,每个人每天都要有个规划嘛~一定天数之后如何规划使得自己实力尽可能的提升,怎么办?
---贪心么?每天都选择最优的规划,如果这样想...那肯定是WA~~~每天都选择的最优规划不一定是全局最优的最优规划,所以呢?你就要DP...因为今天的状态只跟昨天的有关,满足无后效性~而且,如果到达了昨天不是最优的,那么完全可以有个更优的方案来取代昨天的方案~因此,这样就转化为了一个简单的DP....如果考虑了其他杂七杂八的话,那么就复杂了...不过归根结底它还是个DP....只不过多了优化,什么四边形呀,斜率呀,单调队列呀,线段树呀~你能想到的,你想不到的,这儿都有概率用上......
当然,还有太多太多的东西了....在此不一一枚举,最神的就是一个数论了,一个数的方呀,模上一个数呀..然后又乘啊除啊什么的,一会就可以搞出一个貌似和这些根本没有关系的题目...当然..主要是我数学太弱了....遇到什么组合数,就一种一种的数,然后数出得结果总结成公式..再次吐槽数论的....
当然....有些事还远远没有这么简单...比如说,你追一个女孩,久久不能追到,怎么办?及时break;有时候,一件事很麻烦,但也毕竟只要循环有限的次数~当然,这个和上面的追女孩是矛盾的,不过怎么样实验,最终还是看你的代码能力~如果实力够强,TLE的都可以神姿势卡过...
-------------------------------------------------我割-------------------------------------------------------------------------------
首先呢,为了简化文章,请允许我
#define 它 ACM
其实能,它对人生的指引很大......客官,请听我细细道来~
它的比赛主要是思考,留给拍代码的时间很少,为什么呢?---答曰:三思而后行~
它拍出地代码,可能会Wrong anwser,怎么办呢?---答曰:不断完善自我~
它思考的方法没错,可能会TLE,MLE,怎么办?---答曰:不满足现状,寻找最优解~
好了,这些都太空洞了~说点实际的~
话说有一天你去姑姑家吃东西,晚上必须回来~如何能在这么点时间吃到价值最大的东西呢?
---贪心,每次都先吃最贵的东西
然后又一天,你要去一个地方,可是你补知道怎么走,怎么办?
--搜索(不要告诉我你只会bfs,dfs),一般人都用的是A*..........
接着呢,问题又来了,不同的路由不同的路境~有的要耗费的气力多写,怎么办?
----跑一次Dijsktra或者Spfa~
如果你想到达每个景点,却又想走最少的路长,怎么办?
----最小生成树呀~Kruskal,Prim任您享用~
不过呢,就是因为旅游局长看你每次都能走最短的路,把你提升为了officer,这下你要知道所有点之间最短路,怎么办?
----跑一次Floyd就可以了....
好吧,走来走去的也够无聊了....换个情景~
一堆单身男女,他们要结婚,但是不同的人只喜欢异性中的一部分(可以理解嘛~都是单身的,但是不同人的口味也不同嘛),怎样才能让更多的情侣终成眷属?
------左边=男,右边=女,二分图匹配~典型的匈牙利算法~
问题又来了,不同的人之间结婚了,会有一个幸福值,要使得这个幸福最大,怎么做?
------还是二分图匹配,只不过这次是带权值的了,跑一个KM算法就可以了~
然后呢..问题又来了(你是问题儿童么?),不同的人,对不同类型的异性都有一个厌恶值,厌恶值太高了他们结婚是不会幸福的
-----把每个人拆点,一个是总的值,一个是厌恶值,总值往厌恶值连一条边,然后再在男女之间连边,男->女,女->男均可...看个人喜好,跑一次SAP就可以确定能否每个人都能幸福了....
这些太玄了...来个简单又好理解的,每个人每天都要有个规划嘛~一定天数之后如何规划使得自己实力尽可能的提升,怎么办?
---贪心么?每天都选择最优的规划,如果这样想...那肯定是WA~~~
当然,还有太多太多的东西了....在此不一一枚举,最神的就是一个数论了,一个数的方呀,模上一个数呀..然后又乘啊除啊什么的,一会就可以搞出一个貌似和这些根本没有关系的题目...当然..主要是我数学太弱了....遇到什么组合数,就一种一种的数,然后数出得结果总结成公式..再次吐槽数论的....
当然....有些事还远远没有这么简单...比如说,你追一个女孩,久久不能追到,怎么办?及时break;有时候,一件事很麻烦,但也毕竟只要循环有限的次数~当然,这个和上面的追女孩是矛盾的,不过怎么样实验,最终还是看你的代码能力~如果实力够强,TLE的都可以神姿势卡过...
作者:ACShiryu
出处:http://www.cnblogs.com/ACShiryu/
若非注明,本博客文章均为原创,版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
该文章也同步发布在我的新浪微博中-ACShiryu's weibo,欢迎收听。