傳送門
奇妙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...