摘要: 考虑每个数在最大值内的倍数都求出来大概只有max(ai)ln(max(ai))个。 先排个序,然后对于每个数ai,考虑哪些数字可以变成ai*k。 显然就是区间[ai*k,ai*(k+1))内的数,这个二分一下就好了。 阅读全文
posted @ 2016-10-18 23:30 iRedBean 阅读(223) 评论(0) 推荐(0) 编辑
摘要: dp[i][0]表示从i出发,轮到先手走的最优值。 dp[i][1]表示从i出发,轮到后手走的最优值。 dp[i][0]=max(dp[j][1]+sum[j]) dp[i][1]=min(dp[j][0]-sum[j]) 倒着推就好了。 阅读全文
posted @ 2016-10-18 23:26 iRedBean 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 考虑将两个单词变成有序,我们可以得到一个或者两个旋转次数的区间。 然后考虑将两组单词变成有序,比如[l,mid]和[mid+1,r],对于mid和mid+1这两个单词我们可以求出使他们有序的旋转次数的区间。 然后将这个区间与[l,mid]的区间以及[mid+1,r]的区间求交,就可以得到使[l,r] 阅读全文
posted @ 2016-10-18 23:22 iRedBean 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 求出无向图的所有边双联通分量,然后缩点就成了一颗树。 然后我们选取最大的那个边双联通分量作为根,这样我们就可以确定所有割边的方向了。 对于边双联通分量里面的边,我们随便dfs一下就可以把它变成强连通分量,方向也就确定了。 阅读全文
posted @ 2016-10-18 23:10 iRedBean 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 首先检测有木有和Computer匹配的Socket,如果有则将其匹配。 然后将所有没有匹配的Socket连上Adapter,再去检测有木有Computer与Socket匹配。 重复这个操作31次,所有Socket的power都变成1了,如果再不能匹配就结束程序。 阅读全文
posted @ 2016-10-18 23:05 iRedBean 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 显然要二分答案,然后对于一个天数,我们来判断是否可以通过所有考试,这里就贪心来安排就好了。 首先我们希望每门课的考试时间越晚越好,然后就是先复习最早开始的考试。 阅读全文
posted @ 2016-10-18 22:58 iRedBean 阅读(378) 评论(0) 推荐(0) 编辑