思路:参考了题解。对询问进行极角排序,然后用树状数组维护一下前缀和即可。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
/*ID: onlyazh1LANG: C++TASK: test*/#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1typedef long long ll;const int maxn=1010;const int maxm=100050;ll sum[maxn];struct Node{ int x,y; int loc,id; bool operator< (const Node &A)const{ return y*1.0/x 0){ ret+=sum[x]; x-=lowbit(x); } return ret;}int hi[maxn];ll ans[maxm];int main(){ //ifstream cin("in.txt"); int T,icase=0;scanf("%d",&T); while(T--){ for(int i=0;i >q; for(int i=0;i