csp s模擬測試90 光線追蹤,臨面合併

2022-04-14 02:11:26 字數 2276 閱讀 5158

光線追蹤

30分暴力就是看每個光線和每個矩形的下邊界和左邊界交點

發現詢問很難,

離線下來操作,

可以把角度離散化,轉化為區間賦值,單點查詢問題

每次就是給屬於下邊界角度內賦max,左邊界角度內賦max

我突然感覺沒什麼可寫的

#includeusing

namespace

std;

#define ll long long

#define a 5471745

struct

node

node(

const ll &a,const ll &b)

};

node min(node a,node b)

ll pan(ll x)

struct

tree

ll mid=(l+r)>>1

; built(x

<<1

,l,mid);

built(x

<<1|1,mid+1

,r);

}void

change(ll x,ll l,ll r,ll ord,ll val)

ll mid=(cl[x]+cr[x])>>1

;

if(mid>=l) change(x<<1

,l,r,ord,val);

if(mid1|1

,l,r,ord,val);

}node ask(ll x,ll pla)

}x,y;

ll x[a],xx[a],y[a],yy[a],opt[a];

ll mnx0=1e9+7,mnxid,mny0=1e9+7

,mnyid,cnt,q;

long

double

lsh[a];

long

double

cl(ll x)

intmain()

else

}sort(lsh+1,lsh+cnt+1

); ll len=unique(lsh+1,lsh+cnt+1)-lsh-1

; x.built(

1,1,len),y.built(1,1

,len);

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

else

if(!y[i])

//printf("i=%lld lower_bound(lsh+1,lsh+1+len,1.0l*y[i]/x[i])-lsh=%lld\n",i,1ll*(lower_bound(lsh+1,lsh+1+len,1.0l*y[i]/x[i])-lsh));

node a1=x.ask(1,lower_bound(lsh+1,lsh+1+len,1.0l*y[i]/x[i])-lsh),

a2=y.ask(1,lower_bound(lsh+1,lsh+1+len,1.0l*y[i]/x[i])-lsh);

ll fx=a1.x,fy=a2.x;

//printf("fx=%lld fy=%lld\n",fx,fy);

if(fx*y[i]==fy*x[i])printf("

%lld\n

",pan(max(a1.ord,a2.ord)));

else

if(fx*y[i]"

%lld\n

",pan(a1.ord));

else printf("

%lld\n

",pan(a2.ord));}}

}

view code

臨面合併

奇怪的資料範圍應該給了一定的提示,8以內就基本是明示狀壓了

狀態定義挺神的二進位制下有乙個1代表以當前點為右端點向左延伸出乙個矩形

例如(假設原圖是1 1 1 1)那麼當前是0 1 0 1 表示兩個矩形

判斷一下是否可以與上面合併,減去相同貢獻

過程可以預處理

不要用單調指標處理,單調指標細節特別多,

預處理

void

fg(ll x)

for(ll j=1;j<=cnt;j++)}}

減去相同貢獻

ll cnt=v[i][now].size();

for(ll j1=0;j1)

for(ll j2=0;j21][last].size();j2++)

}

出題人題解

csp s模擬測試90

考場發明 spfa 祭。t1 按照題意模擬,然後我就發現我死了。一氣之下刪掉了 priority 拍了幾下發現賊jb快而且還是對的就開心地交了。t2 的差分狀態定義很棒然後就調了一場考試,t3 死亡暴力沒拿到分。100 00 38 16 100 03 11 10 0 03 15 44 20003 1...

csp s模擬測試94

一場簡單題,打爆了。t1 腦抽分解質因數準備分子分母消,想了半天發現 jb 互質直接上天,果斷碼了高精滾蛋。t2 無腦手玩大樣例,突然靈光一閃想到對映到前 k 大小的區間,t3 寫完暴力準備划水,突然發現特殊性質可寫,10 分鐘拯救了 25 分。8003 24 46 7003 24 58 6503 ...

csp s模擬測試93

自閉場。t1 想到 cdq 因為複雜度少看見乙個 0 打了半年還用了 sort 直接廢掉,t2 t3 直接自閉暴力分都沒有。考場太慌了,心態不好。8002 07 34 003 12 11 0 03 11 53 8003 12 11 沒有前途就是垃圾趁早滾回實驗二安度晚年吧。cdq 不接受反駁。最簡單...