BZOJ 5317 Jsoi2018 部落戰爭

2022-05-19 08:22:35 字數 1246 閱讀 2625

傳送門

寫出式子,若存在 $a \in a$,$b \in b$,使得 $b+v=a$,那麼此方案會產生衝突

即存在 $a \in a$,$b \in b$,使得 $v=a+(-b)$,設 $c=a+(-b)$ 那麼有 $v \in c$,$+$ 表示閔可夫斯基和,$-$ 表示座標符號取反

所有直接求出 $a$ 和 $-b$ 的閔可夫斯基和的凸包,然後查詢 $v$ 是否在凸包內即可

注意直接求閔可夫斯基和的凸包可能會有一些平行的向量,為了方便查詢,重新做一遍凸包即可

我的做法會把凸包座標變化,所以查詢的向量也要跟著變化

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;typedef

double

db;inline

intread()

while(ch>='

0'&&ch<='

9')

return x*f;

}const

int n=2e5+7

;struct

poi

inline poi

operator + (const poi &tmp) const

inline poi

operator - (const poi &tmp) const

inline

bool

operator

< (const poi &tmp) const

}a[n],b[n],c[n],st[n],sum;

inline ll cross(poi a,poi b)

inline db dot(poi a,poi b)

inline db len(poi a)

inline

bool cmp(const poi &a,const poi &b)

void tubao(poi *p,int &tot)

int check(poi *p,int

tot,poi a)

intn,m,t,q;

intmain()

tubao(c,t);

for(int i=1;i<=q;i++)

return0;

}

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...

JSOI2009 bzoj1449 球隊收益

description input output 乙個整數表示聯盟裡所有球隊收益之和的最小值。首先假設全輸,然後給每場比賽分配乙個贏家,每個隊伍每多贏一場多獲得的收益作為費用。但是有乙個問題,如何保證每次走的是對應的邊?也就是,如何保證贏第一場的時候增加的收益是贏一場減贏零場,而不是贏兩場減贏一場?...