【题解】n个数最大公约数总和,m组人坐一排同一组的不能相邻,CF #300 F
摘要:1.n个小于等于10000的数,问两两之间的最大公约数的总和。难点在于两个数有多个公约数,不是最大的公约数会重复统计,这可以从大到小统计公约数为x的对数,对于公约数为x的,要减去公约数为x的倍数的对数,就是类似筛素数的方法枚举倍数。2.m组人,总共n个人,坐到n个位置中,同一组人不能相邻,问方案数。...
阅读全文
判断一个数列是不是搜索二叉树后续遍历输出的结果
摘要:剑平面阿里被问到这个,刚开始画了下看有什么性质,乱蒙了几个都被推翻了,初始感觉就是要O(n)的,因为印象中BST的构树都可以O(nlogn)搞定。然后剑平说最后一个数肯定是根节点,一下反应过来了,就是二分出间隔点然后两边递归判断,不过这好像还是构树的思路,可以把整棵树构造出来。然后剑平说不是二分,直...
阅读全文
hihocoder挑战赛10 幻想乡的日常 树
摘要:http://hihocoder.com/contest/challenge10/problem/2很不错的题,想挫了,用分块离线处理查询然后暴力搞了,复杂度不懂多少...肯定比n*sqrt(n)大就是了。还好没卡这种解法。正解是n*logn的。http://media.hihocoder.com/...
阅读全文
hihocoder里的代码模板
摘要:最近又一堆比赛,存下模板。以前题解都存在QQ空间, 现在QQ空间不支持搜日志了,转一些模板到这吧。在线LCA,树上距离 http://hihocoder.com/contest/msbop2014r3/solution/139993最优路径覆盖?忘了。费用流 http://hihocoder.com...
阅读全文
TC SRM 655 DIV1 250,500pt
摘要:250:给一个n*n的格子图,每个格子颜色为白色或者红色。假设刚开始都是白色,每次可以涂k*k的一块正方形格子区域,涂成红色或白色,后面涂的可以覆盖前面涂的。给你最终状态,问从初始状态涂任意次数,可不可以涂成最终状态。挺不错的题,感觉比500有意思。刚开始想简单了,就从前往后枚举,碰到跟最终状态不同...
阅读全文
【codeforces】ZeptoLab Code Rush 2015 E 跳跃表? D kmp还不错的题
摘要:http://codeforces.com/contest/526/problem/E题意就是给n个数,围成一圈,就是1和n是相邻的,然后给一个数b,总和不超过b的一段连续的数可以组成一组,问最少可以将n个数分成几组。可以将n个数后面再接n个数,就变成n+n个数,然后以每个数为开头的组最远能到哪也是...
阅读全文
各种语言版本的输出本身源代码的程序
摘要:https://github.com/MakeNowJust/quineC语言版:#includeint main(void){char*s="#include%cint main(void){char*s=%c%s%2$c;printf(s,10,34,s);return 0;}%1$c";pri...
阅读全文
原地归并排序
摘要:群里有人说面试碰到链表排序,说归并排序比较好。搜了下才知道,有这种不用额外空间的归并排序方法...实质就是用到O(1)空间将字符串后缀移到前面的方法,就是比如字符串由AB两个串连接,现在要变成BA,最直接的做法就是额外新建个字符串,然后一个个字符拷贝过来。其实这个很容易,把一个字符串倒置,O(1)做...
阅读全文