摘要: T1: 约瑟夫问题。 经证(da)明(biao)可知,最终答案计算方法是: 答案由$1$开始,每次加$m$,若大于次数加一,就对次数加一取模。 可以$O(1)$计算每次取模的位置,取模不超过$mlogn$次,于是时间复杂度为$O(mlogn)$。 T2: 普及:向量叉积:$v_1=(x_1,y_1) 阅读全文
posted @ 2019-10-05 16:44 hz_Rockstar 阅读(152) 评论(0) 推荐(0) 编辑
摘要: T1: 翻转区间相当于位移,但是边界附近的点要特判。 可以处理出最左侧和最右侧的对称轴,然后分类讨论每个数的位置,即可知道他能移动到的区间。 用set进行bfs即可,相同的点不会被遍历两次。 也可以线段树优化建边,注意优化建边跑双端队列bfs一定要把出边的权值设为1。 时间复杂度$O(nlogn)$ 阅读全文
posted @ 2019-10-05 15:45 hz_Rockstar 阅读(138) 评论(0) 推荐(0) 编辑
摘要: T1: 每个数至多有$2 \sqrt{m}$个约数,也就是说即使$n$很大,在数集中有倍数的数在$m \sqrt{a}$级别。 可以暴力筛出数集中每个数得约数,用hash表维护一下,可实现$O(1)$查询。 用$n$减去筛出的数个数即为答案中0的个数,但是注意超过$n$的数要删掉。 时间复杂度$O( 阅读全文
posted @ 2019-10-05 15:23 hz_Rockstar 阅读(146) 评论(0) 推荐(1) 编辑