題目大意:給你很多線段的頭s和尾e,問每一條線段中包含了多少個線段,(s和e相同不計在內)
變成座標系上的點後求每個點左上角的點的個數
按y從大到小插入結點
31 2
0 33 4
01 0 0
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8using
namespace
std;
9#define mod 1000000007
10const
int inf=0x3f3f3f3f;11
const
double eps=1e-5;12
#define cl(a) memset(a,0,sizeof(a))
13#define ts printf("*****\n");
14int
n,m,tt;
15const
int maxn=100005;16
intc[maxn],val[maxn];
17int lowbit(int
x)18
21void add(int i,int
val)
2228}29
int sum(int
i)30
37return
s;38}39
struct
node
4048
}a[maxn];
49bool
cmp(node a,node b)
5054
intmain()
5569 sort(a,a+n,cmp);
70 val[a[0].id]=0
;71 add(a[0].x,1
);72
for(i=1;i)
7379 add(a[i].x,1
);80}81
int k=0;82
for(i=0;i)
8387 printf("\n"
);88}89
return0;
90 }
poj 2481(樹狀陣列)
這題樹狀陣列明顯可解,不解釋,但是注意有相同的奶牛的處理 include include include include define n 100005 using namespace std int c n tem struct dian d n int cmp dian a,dian b int...
poj 2481 樹狀陣列
解法2 按si值做降序排序後,相當於求每個位置i左邊大於等於e i 的個數 樹狀陣列更新節點的路徑和求和的路徑要改變,getsum i 相當於求i i 1 maxn include include using namespace std const int maxn 100010 int sum m...
POJ2481 樹狀陣列
題意 給n個節點的s和e,求對於每個節點,其他節點和它的關係滿足si sj and ej ei and ei si ej sj 的個數 題解 由於e的關係遞減,s的關係遞增,因此可以先對e排序,然後利用樹狀陣列更新並查詢每個sj在其之前的si的個數就是問題的解 include include inc...