poj 3067 樹狀陣列 Japan

2021-06-08 20:14:03 字數 727 閱讀 7982

題意:

兩排點,問有多少個焦點。

做題過程:

乍看以為是圖論呢,韋廣說是樹狀陣列。於是我就開始自己想,自己寫。左邊那一列點從下往上插(線統計與之相連的那個點之前有的和,再插),與同一點相連的先插下面大的那一點(這樣才不會被另外乙個點統計)。

哎,剛開始以為在乙個位置插了就不能再插了呢,還開了乙個vis陣列。後來畫了個圖知道不用了。但還是wa,結果是,又是一道我覺得不會超int的超了int。

/*

pro: 0

sol:

date:

*/#include #include #include #include #include #include #include #include using namespace std;

#define maxn 1010

int t,n,m,k;

long long c[maxn],ans;

struct edgeedge[maxn * maxn];//邊可能有很多條!

bool cmp(edge a, edge b)

void modify(int pos)

}long long getsum(int pos)return sum;

}int main()

printf("test case %d: %i64d\n",ca,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 條路相連,因為是起點是從大到小,終點是取乙個前面點的路,所以肯定相交 具體處理就是利用...