LGP4577【JSOI2018】战争】的更多相关文章

题目描述 九条可怜是一个热爱读书的女孩子. 在她最近正在读的一本小说中,描述了两个敌对部落之间的故事.第一个部落有 nnn 个人,第二个部落有 mmm 个人,每一个人的位置可以抽象成二维平面上坐标为 (xi,yi)(x_i,y_i)(xi​,yi​) 的点. 在这本书中,人们有很强的领地意识,对于平面上的任何一个点,如果它被三个来自同一部落的人形成的三角形(可能退化成一条线段)包含(包括边界),那么这一个点就属于这一个部落的领地.如果存在一个点同时在两个阵营的领地中,那么这两个部落就会为了争夺这…
首先可以题目描述的两个点集是两个凸包,分别设为A和B. 考虑一个向量w不合法的条件. 即存在b+w=a,其中a属于A,b属于B. 也就是a-b=w. 即对b取反后和a的闵可夫斯基和. 求出闵可夫斯基和后check点是否在凸包内即可,在凸包内说明不合法. #include<iostream> #include<cctype> #include<cstdio> #include<cstring> #include<string> #include&l…
令 \(a\in A,b\in B\) 则移动向量 \(\omega\) 使得存在 \(b+\omega=a\) 那么 \(\omega\) 需要满足 \(\omega=a−b\) 黑科技:闵可夫斯基和 直接构造闵可夫斯基和 \(C={a+(−b)}\) 余下问题便是判断输入的移动向量是否在 \(C\) 内 可以强行使凸包的最下面为 \((0,0)\),这样只要找到与坐标轴夹角最接近的边就好了 # include <bits/stdc++.h> using namespace std; typ…
题面 传送门 题解 看出这是个闵可夫斯基和了然而我当初因为见到这词汇是在\(shadowice\)巨巨的\(Ynoi\)题解里所以压根没敢学-- 首先您需要知道这个 首先如果有一个向量\(w\)使得\(w+b=a\),也就是使\(A,B\)的凸包有交,有\(w=a-b\),那么我们把\(B\)的横坐标和纵坐标全部取反之后,\(w\)就必定在\(A\)和\(-B\)的闵可夫斯基和里 那么只要对\(A,-B\)求一个闵可夫斯基和的凸包就行了,然后判一下输入的向量是否在这个凸包里就行了 //minam…
害怕,可怜几何题 果然不会 题目就是说给你两个凸包,每次询问给你一个向量 \(c\) 问你能不能从两个凸包 \(A\) , \(B\) 里分别找到一个点 \(a\) , \(b\) 满足 \(a+c=b\) . 考虑怎样的向量可以满足. 发现只有让B中的每一个点-A中的每一个点的集合中的向量可以满足.因为把上面的式子化一下就是 \(c=b-a\) . 凸包B中的点集减去凸包A中的点集.这不是闵可夫斯基和吗? 所以我们把两个凸包的闵可夫斯基和求出,然后每一个询问查看给的向量在不在闵可夫斯基和中即可…
题目链接 题意 给你两个点集. q次询问 , 每次把其中一个点集往一个方向移动 , 问两个点集的凸包还有没有交. Sol 闵可夫斯基和板子题. 把问题做如下转换: 我们本来两个凸包相交是相当于是对于移动向量 \(c\) 来说 , 存在分别在两个点集中的向量 \(a,b\) 有 \(b+c=a\) 也就是 \(c=a-b, c=a+(-b)\) 我们先求出第一个点集的凸包和第二个点集的按原点对称后的凸包. 现在要做的就是求出一个凸多边形 \(C\) 满足两个点集中的任意一对向量的和在该凸多边形内部…
点击%XZY巨佬 向量的板子 #include<bits/stdc++.h> #define I inline using namespace std; typedef double DB; struct Vec{ DB x,y; I Vec(){x=y=0;} I Vec(DB a){x=a;y=0;} I Vec(DB a,DB b){x=a;y=b;} I friend istream&operator>>(istream&cin,Vec&a){ret…
计算几何板子题(我才没有拷板子的说--) 众所周知,三角形的重心坐标是\((\frac{x_1+x_2+x_3}{3},\frac{y_1+y_2+y_3}{3})\) 然后我们发现如果我们有一个点集\(P=\{\vec a+\vec b+\vec c|\vec a\in A,\vec b \in B,\vec c\in C\}\),那么就可以直接查询\((3\times x_,3\times y)\)在不在这个点集里得到答案 其实这样的点集在计算几何上是有名字的,就是传说中的闵可夫斯基和 通俗…
这还是个被我咕了N久的玩意 Minkowski和是一个奇怪的玩意 他长这样 $S={a+b \| a \in A , b \in B}$ AB可以是点集也可是向量集(显然) 他可以处理一些奇怪的东西 比如说我们来看这个题 JSOI2018 战争 你发现它要求的就是判断向量是否存在于A-B的Minkowski和里 那么你套上板子就做完了 好了你大概了解了Minkowski和是什么 我们现在来学怎么写 我们根据直观理解 Minkowski上的点一定是点集构成的凸包上的点 于是我们暴力求出所有点再进行…
JSOI部分题解 JSOI2018 战争 问题转化为给定你两个凸包\(\mathbb S,\mathbb T\),每次独立的询问将\(\mathbb T\)中的每个点移动一个向量,问\(\mathbb S,\mathbb T'\)是否有交. 我们知道对于两个凸包\(\mathbb {A,B}\)的闵科夫斯基和为\(\mathbb C=\{\vec a\in\mathbb A,\vec b\in \mathbb B\;|\;\vec a+\vec b\}\), 而两个凸包对于一次移动向量\(\ve…