摘要: 贪心,之前先bfs判断是否联通,然后,反向建图,找一个未选择的点,找与他距离最近的点连边,因为每个点都要被选择,所以一个点离他最近的另一个点肯定也被选择,可以贪心 阅读全文
posted @ 2016-11-13 09:02 19992147 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 抄了抄代码,看了看区间dp 把这个项链切开,复制一次,枚举右端点,枚举区间长度,确定左端点,区间中选中一个分割点 f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+a[i]*a[k+1]*a[j+1]) 阅读全文
posted @ 2016-11-11 22:51 19992147 阅读(177) 评论(0) 推荐(0) 编辑
摘要: A:hash一下,然后判断是否相等即可 F:二分答案,然后枚举每一秒,注意,贪心时应以结束时间作为标准,否则就会错掉,坑了很长时间 阅读全文
posted @ 2016-11-11 15:15 19992147 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 模拟 字符串必须先清零,要不会出现玄学的问题 阅读全文
posted @ 2016-11-11 15:10 19992147 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 原先t了很长时间,今天复习了下tarjan,打了一遍,自认为自己的tarjan模板简洁 这道题只有基环树,所以tarjan就可以了 阅读全文
posted @ 2016-11-09 22:33 19992147 阅读(182) 评论(0) 推荐(0) 编辑
摘要: lca裸题,画画图看看就可以了,找出那个一次公共祖先,求距离 阅读全文
posted @ 2016-11-06 00:13 19992147 阅读(109) 评论(0) 推荐(0) 编辑
摘要: bfs,折半搜索,因为直接搜大概有(12)^13?因为每个状态都会扩展出m种状态大概是(12)^13,然而可以折半搜索,只搜一半,状态数变成(12)^7可以接受,但是事实上极限数据要跑很长很长时间,据说正解是启发式搜索?没学过 阅读全文
posted @ 2016-11-06 00:12 19992147 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 画个图,很容易发现少兜圈子,就是说这些限制c[i],d[i]可以看做[c[i],d[i]],不让那些区间相交,然后就可以了 阅读全文
posted @ 2016-11-03 23:32 19992147 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 首先我们对两个数组排序,对齐每位,然后记录一个火柴对应的另一个火柴,这时我们得到了一个序列:第i根火柴需要被放到第j个位置,然后原来火柴是按升序排序的,这时需要计算逆序对,也就是交换的最少次数 树状数组 x[i],y[i]:编号,然后z[x[i]]=y[i]:第一列第x[i]根火柴应该对应第二列第y 阅读全文
posted @ 2016-11-03 23:30 19992147 阅读(203) 评论(0) 推荐(1) 编辑
摘要: 显而易见,我们要找子串,每次记录前缀和,算出余数,然后通过一个数组保存余数,答案就是加上之前余数的总和,要注意整除的情况 阅读全文
posted @ 2016-11-01 21:20 19992147 阅读(127) 评论(0) 推荐(0) 编辑