總之就是很離譜。
\(1\le n\le 10^5;1\le k\le 2;\) 座標範圍在 \([0,10^4)\) 之間。
題目中的式子長得就很像距離,維護 \(dp_i\) 表示前 \(i\) 個的總傷害,把根號內看成單次傷害,發現轉移的時候能把後面的 \(-a\) 抵消掉。
又有 \(k\) 維,所以我們直接上k-d樹,將 \(k\) 維座標轉換為 \(k+1\) 維,前面一維加乙個dp值來方便,為了避免過多開方而導致常數過大,所以我第乙個值用的曼哈頓距離,不用平方。
//12252024832524
#include #define tt templateusing namespace std;
typedef long long ll;
const int maxn = 100005;
const double alpha = 0.65;
const ll inf = 1ll << 60;
int n,k,rb[maxn];
int nxt[3] = ;
ll read()
while(c >= '0' && c <= '9')
return x * f;
}tt void put1(t x)
tt void put(t x,char c = -1)
tt t max(t x,t y)
tt t min(t x,t y)
tt t abs(t x)
int tot,rt,mode;
struct pointtmp[maxn];
bool operator < (point a,point b)
#define lc t[x].ch[0]
#define rc t[x].ch[1]
struct nodet[maxn];
ll sq(ll x)
ll dis(point a,point b)
int newnode()
void up1(int x,int son)
void up(int x)
bool wc(int x)//which child :)
void build(int &x,int l,int r,int now)
int nd,cur;
void dfs(int x)
void pia(int x)
point pp;
void ins(int &x,int now)
mode = now;
if(pp < t[x].p) ins(lc,nxt[now]),t[lc].fa = x;
else ins(rc,nxt[now]),t[rc].fa = x;
up(x);
if(max(t[lc].siz,t[rc].siz) > t[x].siz * alpha) nd = x;
if(x == rt && nd) pia(nd);
}ll ans;
ll closest(int x,point p)
return ret;
}void query(int x)
else }
int main()
; ins(rt,0);
for(int i = 1;i <= n;++ i)
; ans = inf;
for(int j = 1;j < k;++ j) pp.x[j] = read();
query(rt);
pp.x[0] = ans; ins(rt,0);
printf("%.4f\n",sqrt(ans));
} return 0;
}
有趣的是因為這道題沒有**,是我們內部造的資料,所以我先寫了一發暴力(無替罪羊式重構),最大跑了1.9s。此時的時限是1s。
後來改成有重構版本,竟然要跑16s+,我直接震撼,後來把平衡因子從0.69改成了0.99才跑過。(???)
當然最後發現是寫錯了,大概就是如果發現有某個點不平衡,重構整棵樹。改了就過了。
於是我加了兩組卡0.99那個版本的資料,然後我的正解竟然也過不了,被迫把時限開成2s。
然後網上的標程t了,我的0.99錯誤版本偶爾還能過。
2015 6 24 XJOI T1 不可視境界線
4 1 02 0 3 04 0 2.00001s512mb 考試的時候只想到了cdq分治.沒想到b的處理方法所以寫了40分的結果拼上去的暴力掛了只剩下3 4的20分了 其實這題cdq分治的確可做 首先題目那個 a是忽悠你的。可以直接去掉 那麼轉移方程就是f i min f i sqrt f j f ...
分界線 安裝打包到三維視覺化
很久沒有來這裡寫點什麼了,不是沒來過,主要是自己現在的工作重心發生變化,由原來的安裝打包變換到了乙個新的領域 三維視覺化。安裝打包我依然會關注,但作為乙個存在20年的軟體產品,能到現在已經是奇蹟了,而我的重心卻不得不轉移,這件事情其實在兩年之前就在進行中,我進入了乙個全新的世界,並且樂此不疲,所以我...
學習的三重境界(想成功的人都不可錯過)
據說人生有幾重境界,一開始時 看山是山,看水是水 然後再高一層境界時就會 看山不是山,看水不是水 再到後來層次更深時的 看山還是山,看水還是水 以前我也只是略微的了解,並沒有把他放在心上,因為我覺得那個離我很 遠 我不修道,而且人生還年輕,應該更積極的進取。但昨天我似乎對這句話的理解更深入了乙個層次...