題意:中文題誒~
思路:通過題意可以發現對於兩點p1(x1, y1),p2(x2, y2), 若x1y2則線段p1p2滿足要求,那麼顯然可以先按x值排下序,對應y序列的逆序對數目即為答案;
注意:對於x1==x2&&y1>y2的情況是不滿足題意的,可以通過過載排序去除x值相等的情況下的y逆序對;
**:
1 #include 2 #include 3 #include 4view code#define ll long long
5using
namespace
std;67
const
int maxn=5e4+10;8
struct
nodep[maxn];
12 ll ans=0;13
14bool
cmp(node a, node b)
1819
void teger_sort(int* a, int* t, int x, int
y)else32}
33for(int i=x; i//
**將臨時陣列裡已排序的元素還原到原陣列
34 a[i]=t[i];35}
36}37}
3839
int main(void
)45 sort(p, p+n, cmp);
46for(int i=0; i)
49 teger_sort(a, t, 0
, n);
50 printf("
%lld\n
", ans);
51return0;
52 }
51Nod 1107 斜率小於0的連線數量
二維平面上n個點之間共有c n,2 條連線。求這c n,2 條線中斜率小於0的線的數量。二維平面上的乙個點,根據對應的x y座標可以表示為 x,y 例如 2,3 3,4 1,5 4,6 其中 1,5 同 2,3 3,4 的連線斜率 0,因此斜率小於0的連線數量為2。input第1行 1個數n,n為點...
逆序數 51nod 1019 歸併 分治
在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。input 第1行 n,n為序列的長度 n 5000...
51Nod 1019 逆序數 逆序偶 歸併排序
1019 逆序數 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序數是4。給出乙個整數序列,求該序列的逆序數。input 第1行 n,n為序列的...