Japan POJ 3067 樹狀陣列

2021-09-10 10:12:12 字數 794 閱讀 8689

題意:在日本的東西兩側,分別有n,m座城市,這些兩個城市之間由一條公路連線。兩邊的城市都由北向南從1開始編號。

題目將會給出k天路,問這k條路一共有多少個交點。

思路:這題非常靈活,先將這些路按x公升序排列,排好以後從最小的x開始遍歷,因為x是按序排列,所以能不能有交點,只需要看y的大小即可。按x排序結束以後,就變成了對y陣列進行求逆序對了。

**:

#include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const int maxn=1e6+9;

struct bit

void init(int n)

void update(int x,int v)

}ll query(int x)

return ans;

}}bit;

struct point

p[maxn];

bool cmp(point a,point b)

return ans;

}int main()

sort(p,p+k,cmp);

memset(c,0,sizeof(c));

ll ans=0;

for(int i=0;iprintf("test case %d: %lld\n",++case,ans);

}return 0;

}

poj 3067 樹狀陣列

poj 3067樹狀陣列.cpp 定義控制台應用程式的入口點。include stdafx.h include include using namespace std const int maxn 1010 int sum maxn struct line return b a.b 按第2個座標降序...

POJ 3067 樹狀陣列

題意 日本的東西海岸分別有 m,n 座城市,從北至南依次編號,現在東西海岸的某些城市之間修建公路,求所有交點的數量。題解 若 a,b 兩公路存在交點的話,必有 a.east b.east,a.west b.west 或者 a.east b.east,a.west b.west。對每一條公路的 eas...

POJ 3067 樹狀陣列

題意 給你兩行數字,n個m個,然後給你k條線直接把兩個數連起來,問有多少個交叉的 思路 假定上一行是起點,下一行是終點。把路按照起點從大到下排序,然後可以直接對每條路查詢,這條路目前的交叉數,等於sum 終點 1 條路相連,因為是起點是從大到小,終點是取乙個前面點的路,所以肯定相交 具體處理就是利用...