QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 2048 MB Total points: 100

#8663. 蔥

Statistics

小葱和小绪是一對好朋友,自從小葱 11 連出了 1UR2SR 之後,小绪就覺得小葱的人品特別好,於是小绪給小葱出了一道題來測試小葱的人品。

小绪首先在平面上畫了 $N$ 個點,分別是 $P_1,P_2,\ldots,P_N$。小绪把這 $N$ 個點依序相連,即連接 $(P_1,P_2),(P_2,P_3),\ldots,(P_{N-1},P_N)$,得到 $N-1$ 條線段。

之後小绪每次在平面上畫出一條直線,然後問小葱這條直線與多少條線段相交。特別地,在線段端點處相交算作相交,直線完全覆蓋線段時也算作相交。

這樣的問題自然難不倒小葱,小葱只需要憑自己的人品用直覺便能給出正確的答案。

小绪想測試小葱的人品究竟有多好,於是他加大了問題的難度:

除了每次詢問以外,小绪會不時地將一個新的點 $P$ 插入到 $P_i$ 和 $P_{i+1}$ 之間,然後按照順序對所有的點重新標記下標。即在 $P_i$ 之後的點的下標會依次增加,而點 $P$ 會變成新的點 $P_{i+1}$。特別地,點 $P$ 也可以插入到第一個點之前或最後一個點之後。

人品超級好的小葱依舊能夠輕鬆地給出答案,於是小绪又進一步提高了難度:

每次插入或提問之後,小绪都將操作後的所有線段記錄了下來,稱作一個歷史版本。歷史版本 $T$ 表示在第 $T$ 次操作後得到的歷史版本。

插入新點的操作改為了在某一個歷史版本 $T$ 的基礎上,插入一個點 $P$,並得到一個新的歷史版本。提問操作後新的歷史版本為所提問的歷史版本 $T$。

小绪對小葱的提問改為了對於一個歷史版本 $T$,給出一條直線,詢問這條直線會與多少條線段相交。

小葱雖然人品很好,但面對這樣的問題卻也束手無策了,他只好找到來參加 CTSC 的你,請你來幫他解決這個問題。

輸入格式

輸入檔案 shallot.in。

第一行兩個整數 $N,M,C$,表示一開始的點數和總共的操作數,以及資料是否加密。如果 $C=1$,那麼代表資料被加密過,每次詢問操作中的 $X_0,Y_0,X,Y$ 以及插入操作中的 $X,Y$ 都是被加密過的資料,你需要將它們異或 $last\_ans$ 從而得到正確的資料,其中 $last\_ans$ 是上一次詢問的答案,剛開始時 $last\_ans=0$。

接下來 $N$ 行每行兩個整數,其中第 $i$ 行的兩個數表示 $P_i$ 的橫座標和縱座標。

接下來 $M$ 行,表示小绪的 $M$ 次操作,其中第 $i$ 行(從 $1$ 開始標號)操作後得到的結果為歷史版本 $i$。

對於每次操作,首先會有一個字母代表小绪的這次操作的操作類型。

如果這個字母為 H,代表本次操作為一次詢問操作:接下來會有五個整數 $T,X_0,Y_0,X,Y$,代表在歷史版本 $T$ 的情況下,小绪給出一條經過 $(X_0,Y_0)$、方向為 $(X,Y)$ 的直線,小葱要回答出它會和多少條線段相交。

如果這個字母為 Z,代表本次操作為一次插入操作。接下來會有四個數 $T,i,X,Y$,代表小绪在歷史版本 $T$ 的基礎上,在 $P_i$ 後面插入了一個座標為 $(X,Y)$ 的點。特別地,如果 $i=0$,表示該點插入在 $P_1$ 之前。

輸出格式

輸出檔案 shallot.out 要求對於每一次詢問操作,輸出一行一個整數代表小葱應該回答的正確答案。

範例

輸入格式 1

2 3 0
0 0
1 1
H 0 1 0 -1 1
H 1 0 1 1 1
H 2 -1 -1 1 1

輸出格式 1

1
0
1

說明

對於第三次詢問,直線完全覆蓋了線段,小绪會認為這也算相交。

輸入格式 2

2 3 0
0 0
2 2
Z 0 2 0 2
H 0 0 1 1 1
H 1 0 1 1 1

輸出格式 2

0
2

範例 3

見選手目錄下的 shallot/shallot.in 與 shallot/shallot.ans。

資料範圍

保證每次詢問操作的 $T$ 一定小於等於目前操作的數量,所有輸入資料均為整數。

有以下 4 類特殊資料,它們兩兩沒有交集:

  1. 對於 $15\%$ 的資料,保證 $1\le N,M\le 1000$;
  2. 對於 $15\%$ 的資料,保證對於第 $i$ 次操作,$T=i-1$;
  3. 對於 $15\%$ 的資料,保證 $C=0$ 且不存在修改操作;
  4. 對於 $15\%$ 的資料,對於插入操作,保證 $Y=0$(加密過的資料指解密後的 $Y$),即給出的直線平行於 $x$ 軸。

以上資料還保證 $1\le N,M\le 5\times 10^4$。

對於 $100\%$ 的資料,保證 $1\le N,M\le 10^5$,所有的座標範圍在 $[-10^8,10^8]$ 內,且每組資料中所有詢問的答案總和不超過 $10^6$,插入操作的次數不會超過 $5\times 10^4$。注意這些線段可能會互相相交。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.