首先拓扑,每次取出度数为$2$的点,这样可以把所有三角形都找到. 那么建出对偶图,会发现是一棵树. 对这棵树进行点分治,每次取出重心,DFS求出所有在里面的点,然后从重心$3$个点分别做一次BFS. 对于每个询问,如果不经过重心这个区域,那么递归求解,否则用BFS的结果回答即可. 时间复杂度$O(n\log n)$. #include<cstdio> #include<algorithm> using namespace std; const int N=50010,M=10001…
Description 给定一个凸n边形,以及它的三角剖分.再给定q个询问,每个询问是一对凸多边行上的顶点(a,b),问点a最少经过多少条边(可以是多边形上的边,也可以是剖分上的边)可以到达点b. Input 第一行一个整数n(n <= 50000),代表有n个点.点1,2,3,…,n是凸多边形上是顺时针排布的. 接下来n-3行,每行两个整数(x,y),代表(x,y)之间有一条剖分边. 接下来是一个整数q(q <= 100000),代表有q组询问. 接下来q行是两个整数(a,b). Outpu…
Description 给定一个凸n边形,以及它的三角剖分.再给定q个询问,每个询问是一对凸多边行上的顶点(a,b),问点a最少经过多少条边(可以是多边形上的边,也可以是剖分上的边)可以到达点b. Input 第一行一个整数n(n <= 50000),代表有n个点.点1,2,3,…,n是凸多边形上是顺时针排布的. 接下来n-3行,每行两个整数(x,y),代表(x,y)之间有一条剖分边. 接下来是一个整数q(q <= 100000),代表有q组询问. 接下来q行是两个整数(a,b). Outpu…
这题好神啊……正解方向是分治,据我所知的分治方法有:I.离线后直接对多边形以及所有的询问进行分治 II.建立多边形的分治结构(对于三角形来说类似线段树,对于对角线来说类似平衡树),然后每次在这个分治结构上进行查询 III.将原图转为其对偶图(利用拓扑),发现是一棵树,然后在这棵树上进行分治(似乎也有离线分治和在线建立分治结构两种方法)我用的是第二种方法,感觉写起来不是很容易,但是也并不恶心,具体实现以及具体问题的处理方法见代码.感觉这样分治的复杂度是log的,实际证明最坏情况下存在使得任意一侧的…
题意:给你一个N边形, 然后这个n边形有n-3条边,然后询问2点之间的最短路. 题解:分治. 我们可以找到一条边,使得这幅图能分成大小相同的2幅图,那么我们就可以确定那些被分割开的询问的答案是多少了. 我们假定u v是分开的, 然后我们从u点bfs一遍现在的图,v点bfs一遍现在的图,确定所有点离这2个点的位置,对于切断的询问更新答案. 需要注意的就是,每次都一定要重新建图,免得遍历太多的没有用的边. 递归结束的时候是这幅图只有3个点了,如果在3个点中的最短路,那么一定是1,假定2点不重合. 代…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
2015-2016 ACM-ICPC Northeastern European Regional Contest 再开一个新坑吧 目前姿势有限,C.H.I仍然处于弃坑状态 代码戳这里 Problem A. Adjustment Office 显然假设每一行都没有进行过删除的话,那么答案就-nx的和+nx(\(x\)为行号或者列号) 考虑进行过清零以后的问题,由于是整行整列的删除的 那么我们只需要分别记录删除的行号和列号的总和,以及删掉的数量,然后就可以\(O(1)\)得到了结果了 当然,别忘了…
0x00 前言 最近读到了一个今年GDC上很棒的分享,是Sebastian Aaltonen带来的利用Ray-tracing实现一些有趣的效果的分享. 其中有一段他介绍到了对Signed Distance Field Shadow的改进,主要体现在消除SDF阴影的一些artifact上. 第一次看到Signed Distance Field Shadow是在大神Inigo Quilez的博客上,较传统的阴影实现方式,例如shadow map,视觉效果要好很多.可以看到下图中物体的阴影随着距离由近…
The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Now your job is to find the total Hamming distance between all pairs of the given numbers. Example: Input: 4, 14, 2 Output: 6 Explanat…
The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note:0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1…