試題編號: 201809-2
試題名稱: 買菜
時間限制: 1.0s
記憶體限制: 256.0mb
問題描述:
問題描述
小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段[a1,b1],[a2,b2]…[an,bn]在裝車,對於小w來說有n個不相交的時間段[c1,d1],[c2,d2]…[cn,dn]在裝車。其中,乙個時間段[s, t]表示的是從時刻s到時刻t這段時間,時長為t-s。
由於他們是好朋友,他們都在廣場上裝車的時候會聊天,他們想知道他們可以聊多長時間。
輸入格式
輸入的第一行包含乙個正整數n,表示時間段的數量。
接下來n行每行兩個數ai,bi,描述小h的各個裝車的時間段。
接下來n行每行兩個數ci,di,描述小w的各個裝車的時間段。
輸出格式
輸出一行,乙個正整數,表示兩人可以聊多長時間。
樣例輸入
41 3
5 69 13
14 15
2 45 7
10 11
13 14
樣例輸出
3資料規模和約定
對於所有的評測用例,1 ≤ n ≤ 2000, ai < bi < ai+1,ci < di < ci+1,對於所有的i(1 ≤ i ≤ n)有,1 ≤ ai, bi, ci, di ≤ 1000000。
設定時間陣列t[n]
,遍歷兩邊,每個人所在的區間內t[i]++
,t[i]==2
時即為二人相遇的時間段,注意區間開閉問題,應為[ai,bi)(即左閉右開,由時間段的性質可得)
#include
using
namespace std;
typedef
long
long ll;
const
int mod =
1e9+7;
const
int inf =
0x3f3f3f3f
;const
int n =
1e6+5;
struct dir
d[4]=
,,,}
;int t[n]
;int n;
intmain()
for(
int i =
0; i < n; i++
) ans =
count
(t, t + maxn,2)
;//count函式求陣列中某個數的數目
cout << ans << endl;
return0;
}
CCF 201809 2 買菜(簡單)
小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段 a1,b1 a2,b2 an,bn 在裝車,對於小w來說有n個不相交的時間段 c1,d1 c2,d2 cn,...
CCF 201809 2 買菜 滿分
試題編號 201809 2 試題名稱 買菜時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段...
201809 2 買菜演算法
問題描述 小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段 a1,b1 a2,b2 an,bn 在裝車,對於小w來說有n個不相交的時間段 c1,d1 c2,d...