題解 慈溪中學 8 13 T3

2021-09-26 04:03:42 字數 1300 閱讀 7214

傳送門

奇妙ac。。

發現答案最多是2

用相對運動,兩個矩形,乙個靜止,那麼另乙個就是沿著k=−

1k=-1

k=−1

的直線運動

然後想到乙個o(n

2)

o(n^2)

o(n2

)的,列舉任意兩個矩形間是否會有重疊部分的情況

然後這個che

ck

check

chec

k想了好一會

先是對於每個點,都會有乙個在k=−

1k=-1

k=−1

非常自然的想出o(n

logn

)o(nlogn)

o(nlog

n)正解對於每乙個矩形,會有乙個四個頂點中最大的截距和最小的截距形成的截距區間,兩個矩形有交的充要條件是兩個截距區間有交

如何求兩個區間有交?

把兩個方向的區間分別存下來,排個序,用兩個指標掃一掃就行了

code:

#include

#define maxn 100010

#define ll long long

using

namespace std;

int n, cnt1, cnt2;

struct nodea[maxn]

, b[maxn]

;inline ll read()

ll getb

(ll x, ll y)

bool

cmp(node x, node y)

bool

jiao

(int i,

int j)

intmain()

;else b[

++cnt2]

=(node);}

sort

(a +

1, a +

1+ cnt1, cmp)

;sort

(b +

1, b +

1+ cnt2, cmp)

;int i =

1, j =

1, ans =1;

while

(i <= cnt1 && j <= cnt2)

if(a[i]

.l <= b[j]

.l && i < cnt1)

++i;

else

++j;

}printf

("%d\n"

, ans);}

return0;

}

題解 慈溪中學 8 12 T3

傳送門 分層dp的思路 d pi j,s dp dp i,j,s 表示做到第i ii層,總共選了j jj個點,第i ii層選了s ss個點的方案數 是由上一層轉移過來的,所以列舉上一層選的點數w ww得到乙個比較複雜的轉移方程 意義是,從這一層開始,總共剩餘 n j s 1 n j s 1 n j ...

SRM605題解(T3除外)

t1 題目大意 給定n個物品,每個物品有兩個屬性a i 和b i 選擇一些物品使得c d最大化,其中c為所選物品中a i 的不同的數字個數,d為所選物品中b i 的總和。主要思路 由於a i 比較小,所以可以對不同的a i 進行一次dp,f i 代表從所有a i i的物品中選擇乙個子集使得權值和最大...

SRM606題解(除T3外)

t1 題目大意 兩個人玩遊戲,第乙個人猜數字,第二個人回答和正確數字相差多少。進行n次後,問正確數字是多少。主要思路 模擬!include include include include includeusing namespace std void swap int a,int b int abs...