水果网站策划方案,建设沙滩车官方网站,句容网络公司,长春自助建站模板题意#xff1a;N个星星(x,y,z)#xff0c;星星的等级等于x#xff0c;y#xff0c;z都小于等于它的星星数量#xff0c;问每个等级有多少星星。 思路#xff1a;最暴力的方法是三维树状数组。但是会超内存。所以我们对其中一维先排好序#xff0c;然后用二维的做。 代码…题意N个星星(x,y,z)星星的等级等于xyz都小于等于它的星星数量问每个等级有多少星星。 思路最暴力的方法是三维树状数组。但是会超内存。所以我们对其中一维先排好序然后用二维的做。 代码 1 #includestdio.h2 #includestring.h3 #includealgorithm4 using namespace std;5 const int N15555,M1111;6 int c[M][M],ans[N];7 struct node8 {9 int x,y,z;
10 }a[N];
11 int cmp(node a,node b)
12 {
13 if(a.x!b.x)
14 return a.xb.x;
15 else if(a.y!b.y)
16 return a.yb.y;
17 return a.zb.z;
18 }
19 int lowbit(int x){
20 return x-x;
21 }
22 void add(int x,int y,int z)
23 {
24 for(int ix;iM;ilowbit(i))
25 for(int jy;jM;jlowbit(j))
26 c[i][j]z;
27 }
28 int q(int x,int y)
29 {
30 int sum0;
31 for(int ix;i;i-lowbit(i))
32 for(int jy;j;j-lowbit(j))
33 sumc[i][j];
34 return sum;
35 }
36 int main()
37 {
38 int n,i;
39 while(scanf(%d,n)!EOF)
40 {
41 for(i1;in;i)
42 scanf(%d%d%d,a[i].x,a[i].y,a[i].z);
43 memset(c,0,sizeof(c));
44 memset(ans,0,sizeof(ans));
45 sort(a1,an1,cmp);
46 for(i1;in;i)
47 {
48 ans[q(a[i].y1,a[i].z1)];
49 add(a[i].y1,a[i].z1,1);
50 }
51 for(i0;in;i)
52 printf(%d%c,ans[i],in-1?\n: );
53 }
54 return 0;
55 } 转载于:https://www.cnblogs.com/L-King/p/5448330.html