poj上1A, HDU上6A,我晕啊!注意几点:

1、多组数据;

2、memset(c, 0, siezeof(c));

3、memset(ans, 0, sizeof(ans));

my code:

View Code
#include <stdio.h>
#include
<string.h>
#define N 32010
int c[N], n, ans[N];
int lowbit(int i)
{
return i&(-i);
}
void add(int i, int val)
{
while(i <= N)
{
c[i]
+= val;
i
+= lowbit(i);
}
}
int sum(int i)
{
int s = 0;
while(i > 0)
{
s
+= c[i];
i
-= lowbit(i);
}
return s;
}
int main()
{
int i, x, y;
//freopen("data.in", "r", stdin);
while(~scanf("%d", &n))
{
memset(ans,
0, sizeof(ans));
memset(c,
0, sizeof(c));
for(i = 0; i < n; i++)
{
scanf(
"%d%d", &x, &y);
ans[sum(x
+1)]++;
add(x
+1, 1);
}
for(i = 0; i < n; i++)
printf(
"%d\n", ans[i]);
}
return 0;
}

相关文章:

  • 2021-06-23
  • 2021-06-16
  • 2021-10-03
  • 2021-09-28
  • 2022-03-05
  • 2021-12-17
  • 2022-01-16
  • 2022-12-23
猜你喜欢
  • 2021-09-14
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
相关资源
相似解决方案