為了節約當前社會巨大的能源消耗,a 城市發起了新能源改造計畫,也就是用太陽能代替舊能源。為了簡化題意,可以假設 a 城市在乙個二維平面上,平面上從11到nn每乙個地方都有一棟高樓,高樓的寬度忽略不計。每棟高樓高度為hihi。城市左右兩邊分別有一座高度為h0h0和hn+1hn+1的高山。每一天,太陽從右邊公升起,左邊落下。
城市改造總共用了tt時刻。每一時刻都發生一下三件事件中的乙個事件:
1. 在第ii棟高樓頂端安裝太陽能收集器。太陽能收集器只有在光線照射下才能工作。
2. 由於太陽能收集器有壽命,所以將第ii棟高樓上的太陽能收集器拆除。
3. 詢問在一天中某一時刻至某一時刻有多少太陽能收集器始終在工作。
你的任務就是對於每個第33種事件,輸出有多少太陽能收集器始終在工作。
注意:太陽能收集器在光線照射下,當且僅當在這一時刻它之前沒有遮擋物(包括高樓最高點)。如圖,若太陽在下午以45°角照射 a 城,此時圖中點2,32,3是不工作的,點1,41,4是工作的。
為了方便確定一天中的時刻,我們將以太陽高度角的形式給出。對於上午,我們給出太陽高度角,而下午,則給出太陽高度角的補角。
第一行,兩個數nn和tt。
第二行,輸入n+2n+2個整數,第ii個數表示hi−1hi−1。
接下來tt行,每行2∼32∼3個整數。如果第乙個數為11,則第二個數表示在第ii棟高樓頂端安裝太陽能收集器。如果第乙個數為22,則第二個數表示將第ii棟高樓上的太陽能收集器拆除。如果第乙個數為33,則輸入兩個數ta,tbta,tb,表示起始時刻與終止時刻的太陽高度角。
對於每個詢問,輸出有多少太陽能收集器始終在工作。
4 10
5 4 2 6 5 3
1 11 3
3 135 135
1 23 90 100
1 42 3
3 45 50
3 46 50
3 85 95
1
3 1
2 3
【樣例輸入輸出 2】
見下放檔案 city/city2.in 和 city/city2.ans。這部分樣例與第 4 個測試點範圍相同。
【樣例輸入輸出 3】
見下放檔案 city/city3.in 和 city/city3.ans。這部分樣例與第 7 個測試點範圍相同。
【樣例輸出輸出 4】
見下放檔案 city/city4.in 和 city/city4.ans。這部分樣例與第 14 個測試點範圍相同。
【樣例輸出輸出 5】
見下放檔案 city/city5.in 和 city/city5.ans。這部分樣例與第 17 個測試點範圍相同。
【子任務】
測試點編號 n
t特殊性質 1
≤105≤105
=1=1 無
2≤100≤100
≤100≤100 3
4≤1000≤1000
≤1000≤1000 5
6 7≤105≤105
≤10≤10 8
9 10
≤105≤105
除h0h0和hn+1hn+1,所有的hihi都相等 11
12滿足所有的$t_a=t_b$ 13
14特殊性質s 15
16 17
無 18
19≤3×105≤3×105 20
特殊性質s:保證nn為奇數,且對於所有i(0≤i≤n+1)i(0≤i≤n+1),假設hihi的最大值為mm。如果ii為偶數,保證hi=mhi=m。如果ii為奇數,保證hi
本題共有 20 個測試點,每個測試點 5 分。對於所有的測試點,滿足0
對於操作1與操作2,假設需要安裝或拆除的收集器為xx,滿足0
對於操作3,滿足0
【提示】
本題中需要涉及角度與斜率之間的轉化。請注意,在c++中可以呼叫三角函式為弧度制。
solution
啊啊啊調了一整天
atan2不會用,是(y,x)而不是(x,y)啊
cdq細節一直**啊
小於寫成小於等於啊
我fl=0就不操作,憑啥ans+=fl才能過啊
別人1.9k,我3k啊
最後真是乙個個對拍才過
哇被氣死
先用凸包求出太陽高度角範圍:上凸殼上的點才會擋住它
然後就是經典三維偏序
qli>=li qri<=ri qt>=t
啊為什麼這麼難調
對了 幾個技巧:
pi=acos(-1)或m_pi
精度較高
返回的是弧度,角度=t*108/pi;
可能是負數,要判掉
還有我又用sort,特慢哈哈哈
#include#include#include#include#include#include#define maxn 100005
#define pi acos(-1)
using namespace std;
int n,t,top,tree[maxn*4],tot,ans[maxn*4];
struct node
zh[1]=h[0];top=1;
for(int i=1;i<=n;i++)
zh[1]=h[n+1];top=1;
for(int i=n;i>=1;i--)
//for(int i=1;i<=n;i++)cout<
posted @
2018-08-20 20:42
liankewei 閱讀(
...)
編輯收藏
HNOI2010 CITY城市建設
動態改邊權ms t mst 考慮和線段樹分治 l ct lc t一樣的思想,對修改時間分治 考慮一段時間的修改的那些邊 暴力就是當l r l r 時直接讓修改生效 然後求一遍ms t role presentation style position relative mst mst 這樣是不行的因為...
2001 Hnoi2010 City 城市建設
time limit 20 sec memory limit 162 mb submit 1098 solved 539 submit status discuss ps國是乙個擁有諸多城市的大國,國王louis為城市的交通建設可謂絞盡腦汁。louis可以在某些城市之間修建道路,在不同的城市之間修建...
嵊州D6T2 城市 city
眾所周知,why 是czyz 王國的國王。czyz 王國一共有n 個城市,每個城市都有一條道路連向乙個城市 可能連向這個城市自己 同時,對於每乙個城市,也只有一條道路連向它。如果乙個人可以通過道路可以從城市x 走向城市y,那麼我們稱 x,y 這 個數對是滿足條件的。x 可以等於y 現在why 可以選...