摘要:
罗德里格旋转公式:三维空间中向量$v$绕单位向量$u$旋转$\theta$角度之后得到的$\boldsymbol{v^{'}}$ \(\bm{v^{'}}=\bm{v}cos\theta+(\bm{u}\cdot\bm{v})\bm{u}(1-cos\theta)+(\bm{u}\times\bm{ 阅读全文
摘要:
题面 给你一个只有垂直和平行边的n个点的多边形,给定m次询问,查询以这个点为正方形左下角点且该正方形能满足一直在多边形内部的最大正方形的边长是多少。 Solution 这里我给出一种和题解不一样的偏向几何的做法。 首先我们可以观察出只有这两种情况会卡住这个正方形,由于有$x$和$y$的限制,并不能很 阅读全文
摘要:
题面 \(使用两条相交直线平分n个点,使得每块区域都包含\frac{n}{4}个点,保证n\%4\equiv0\) Solution 首先我们可以明确此题一定是有解的,所以我们可以首先固定一条平分线再去寻找第二条平分线,那么第一条平分线我们可以通过将所有点按照$x,y$排序,选取中间$[\frac{ 阅读全文
摘要:
E1:设dp[i][j],表示在第i个位置的当前新状态超过原状态j分的方案数是dp[i][j],那么对于这种情况直接进行转移即可,如果a[i]==b[i]显然k种选择都可以,不影响j,如果不一样,这个位置填了a[i]那么状态从dp[i-1][j+1]转移过来,如果填了b[i]就是dp[i-1][j- 阅读全文
摘要:
题意是需要求最大的扩散时间,最后输出的是一开始的火源点,那么我们比较容易想到的是二分找最大值,但是我们在这满足这样的点的时候可以发现,在当前扩散时间k下,以这个点为中心的(2k+1)2的正方形块内必须全部都是'X'才行,那么要访问这样的块内的'X'个数显然需要使用二维前缀和维护一下就可以O(1)求 阅读全文
摘要:
首先比较容易想到肯定是前k大的元素,那么我们可以先对其进行sort,如果数值一样返回下标小的(见题意),接下里处理的时候我们发现需要将一个元素下标插入到有序序列并且需要访问第几个元素是什么,那么我们可以离线处理,将所有询问存起来,每次插入一个元素的时候在对其进行查询,那么现在就变成了离线求第k大,那 阅读全文
摘要:
我们随机选取点1,2作为凸包的一个分割线,那么我们可以直接枚举剩下n-2个点找到他们和向量1-2的叉积大小与正负,然后我们可以根据叉积的正负,先将他们分割出两个区域,在向量1-2的下方还是上方,接下来找到距离向量1-2最高的点id1和最低点id2,接下来在通过向量id1-1再次分割再上方的点,同样最 阅读全文
摘要:
我们考虑前缀和sum[i],如果将a[i+1]中的一个塞入a[i]中,则不影响sum[i+1],但是sum[i]++,如果将a[i]中的一个塞入a[i+1],则不影响sum[i+1],但是sum[i]--,我们可以发现操作一次相当于将一个sum[i]+1或者到sum[i]-1,那么题意就变成了操作多 阅读全文
摘要:
题目大意是让你用这n条边放在网格上构成凸包,并且边的两端点必须在网格上。 那么比较容易想到的就是枚举可能情况,因为这样的勾股数组成情况不多,因此可以直接枚举所有连出去的边反映在坐标轴上的所有情况,最后判断是否回到起点并且绕城一个凸包。 但是样例三每条边有最多36个方向,那么366*6!显然会超时,我 阅读全文
摘要:
题意是逆时针方向给你两个多边形,问你这两个多边形通过旋转和平移能否拼成一个凸包。 首先可以想到的便是枚举边,肯定是有一对长度相同的边贴合,那么我们就可以n2枚举所有边对,接下来就是旋转点对,那么假设多边型在这条向量的左侧,那么我们可以根据叉积正负判断旋转的方向。 然后就是如何判断了,显然有一种情况是 阅读全文