已知问题
1.第一次看题的时候以为可以给任意一人送任意个礼物,且礼物可以重复送,想不出解法。
2.没有注意到N*A[i]=10^14,那么必须开long long才能统计下来。
题解
题目要求对于A的每一个喜欢的礼物,对于B来说都有一些比这些礼物更好的礼物,但是这些B喜欢的礼物里,只能给B送A没有那么喜欢的。
设礼物的两个维度分别为a[i]和b[i](对a[i]从小到大排序),那么对于每一个a[i],显然对小A来说,这个礼物之前的礼物都"没有那么喜欢"。
那么,对于小B呢?小B也有一样的要求,问题是候选的礼物里只有小A同意了才能送给小B。换句话讲,小B只能从"小A没那么喜欢"的礼物堆里挑礼物。
而在这个礼物堆中,只能送那些b[j]>=b[i]的给小B。换句话讲,就转化成了动态求逆序对问题。
就用树状数组统计就行。(首先要离散化)
#include
#include
#include
#include
TRANSLATE with
x
Bing Webmaster Portal
Back