Jzoj4877 力場護盾 紅警系列

2021-08-10 02:32:10 字數 2097 閱讀 6519

zmig成功粉碎了707的基因突變計畫,為了人類的安全,他決定向707的科學實驗室發起進攻!707並沒有想到有人敢攻擊她的實驗室,一時間不知所措,決定犧牲電力來換取自己實驗室的平安。

在實驗室周圍瞬間產生了乙個無限大的力場護盾,它看上去無懈可擊!不過zmig擁有驚人的雙向觀察能力,經過他的反覆觀察,找到了這個護盾的n個弱點,他本想逐一擊破,卻發現一股神秘力量阻止了他的行為。原來他身處力場之中,受到了兩股神秘力量的影響,這兩股力量來自兩個不同的方向並形成了乙個小於180度的角,zmig每次可攻擊的範圍都受到這兩個力的影響,當他攻擊了點x之後,下一次可以攻擊的點必須在以x為座標原點的情況下,這兩個力方向的夾角之間(包含邊界)(具體意思可看樣例)

zmig當然想打出一串最長的combo,所以他想問問你最多可以攻擊707弱點多少次

這道題需要一點點向量的知識,讓後就可以實現座標系之間的轉換了

設兩個向量為 (x1,y1) (x2,y2)

那麼乙個點 (x,y) 在新的座標系的對映(x',y')裡就滿足以下方程

x'(x1,y1)+y'(x2,y2)=(x,y)

解方程即可得到x'和y'

但是坑點是精度問題,這道題要用資料結構來維護而且排序的時候也要考慮精度問題

比如,原本本地ac的code是這樣的:

#include

#include

#include

#define d double

#define mid (l+r>>1)

using

namespace

std;

struct dt s[200010];

int n,m,r[200010],w[800080],f[200010];

d x1,y1,x2,y2,c1,c2,v[200010];

inline

bool cmp(dt a,dt b)

if(p<=mid) update(l,mid,x<<1,p,k);

else update(mid+1,r,x<<1|1,p,k);

w[x]=max(w[x<<1],w[x<<1|1]);

}int query(int l,int r,int x,int l,int r)

int main();

} sort(s+1,s+1+n,cmp);

for(int i=1;i<=n;++i) v[i]=s[i].b;

sort(v+1,v+1+n);

for(int i=1;i<=n;++i) r[i]=lower_bound(v+1,v+1+n,s[i].b)-v;

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

printf("%d\n",w[1]);

}

但是被精度卡剩60pts

所以必須這樣寫:

#include

#include

#include

#include

#define d double

#define mid (l+r>>1)

using

namespace

std;

struct dt s[200010];

int n,m,w[800080],f[200010];

d x1,y1,x2,y2,c1,c2;

inline

bool cmp(dt a,dt b)

if(p<=mid) update(l,mid,x<<1,p,k);

else update(mid+1,r,x<<1|1,p,k);

w[x]=max(w[x<<1],w[x<<1|1]);

}int query(int l,int r,int x,int l,int r)

int main();

} sort(s+1,s+1+n,cmp2);

for(int i=1;i<=n;++i) s[i].r=s[i].b-s[i-1].b<10e-7?s[i-1].r:s[i-1].r+1;

sort(s+1,s+1+n,cmp);

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

printf("%d\n",w[1]);

}

487 姓名去重

原題 您在真實的面試中是否遇到過這個題?是 james james bill gates bill gates hello world hello world helloworld 返回 james bill gates hello world helloworld 返回名字必須都是小寫字母。標籤 ...

487day(include載入,表單)

2019年2月3日 連續487天 內容 這是主要的區域 php 中有三個超全域性變數專門用來獲取表單提交內容 get 用於獲取以 get 方式提交的內容 post 用於獲取以 post 方式提交的內容 request 用於獲取 get 或 post 方式提交的內容 var dump get get ...

Zend Optimizer錯誤487處理方法

只要這個錯誤一旦出現,dz的論壇就慢的要死,zned也安裝了無數遍就是沒有解決 我就把php.ini和原來的5.04一下的版本比較發現 extension php yaz.dll extension php zip.dll 把它加這兩個上去並把 extension php zip.dll 前面的 去...