摘要: 以前遇到dp,直接看题解然后再花一下午看懂(虽然还是似懂非懂)今天遇到dp,依旧是直接看状态转移方程..但好歹自己能写出来了... 1 /* 2 3 ID: hubiao cave 4 5 PROG: stamps 6 7 LANG: C++ 8 9 */10 11 12 13 14 #include15 16 #include17 18 #include19 #include20 21 using namespace std;22 23 24 25 int K,N;26 int mins[200*10000+1];27 int stamp[52];28 int main()29 30... 阅读全文
posted @ 2013-09-27 23:00 cavehubiao 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 看到的貌似是阿里的笔试题,题意是一组数,要找到min和max,同时要求时间复杂度(比较次数)小于2n(2n的办法都想得到)。别人的思路:n个数的数组里看作每两个一组,若n是奇数,最后个单独看。然后遍历一次,找出每组数里的tmax和tmin,tmax存到一个数组,tmin存到一个数组,此时比较次数为n/2;可知最大数在max数组里,最小数在min数组里,再用普通线性比较分别遍历两个数组 找到max数组里的最大,min数组里的最小即可比较次数为n/2,n/2总共为n/2+n/2+n/2=3n/2;再对max和min数组用同样办法和直接求无差别。ps:空间上还可以继续优化下,维护两个gmax,gmi 阅读全文
posted @ 2013-09-27 18:54 cavehubiao 阅读(283) 评论(0) 推荐(0) 编辑