HDU 1556 - Color the ball (트 리 배열 - 구간 수정 단점 조회)
Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15491 Accepted Submission(s): 7731
Problem Description
N 개의 풍선 이 한 줄 로 늘 어서 있 습 니 다. 왼쪽 에서 오른쪽으로 번호 가 1, 2, 3 입 니 다.
Input
각 테스트 실례 의 첫 번 째 행 위 는 정수 N, (N < = 100000) 입 니 다. 다음 N 줄 은 정수 a b (1 < = a < = b < = n) 2 개 를 포함 합 니 다.
N = 0 이면 입력 이 끝 납 니 다.
Output
모든 테스트 인 스 턴 스 는 N 개의 정 수 를 포함 하여 한 줄 을 출력 합 니 다. I 번 째 수 는 I 번 째 풍선 이 모두 색칠 되 는 횟수 를 대표 합 니 다.
Sample Input
3
1 1
2 2
3 3
3
1 1
1 2
1 3
0
Sample Output
1 1 1
3 2 1
Author
8600
Source
HDU 2006-12 Programming Contest
Recommend
LL | We have carefully selected several similar problems for you: 1542 1394 1698 1255 2795
제목 은 간단 하지만 데이터 양 이 적은 편 이 아니 라 직접 폭력 은 시간 을 초과 하기 때문에 트 리 배열 을 고려 하고 있다.
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int MAXN=100005;
int n;
int c[MAXN];
int lowbit(int x)
{
return x&(-x);
}
void update(int i,int x)
{
while(i)
{
c[i]+=x;
i-=lowbit(i);
}
}
int sum(int i)
{
int res=0;
while(i<=n)
{
res+=c[i];
i+=lowbit(i);
}
return res;
}
int main()
{
int a,b;
while(scanf("%d",&n),n)
{
memset(c,0,sizeof(c));
for(int i=1; i<=n; i++)
{
scanf("%d%d",&a,&b);//c[a]~c[b] 1
update(a-1,-1);//c[a] 1
update(b,1);//c[b] 1
}
for(int i=1; i<n; i++)// 1-N
printf("%d ",sum(i));
printf("%d",sum(n));
printf("
");
}
return 0;
}
폭력 시간 초과 코드 도 첨부:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int maxn=100005;
int s[maxn];
int main()
{
int a,b,n;
while(scanf("%d",&n),n)
{
memset(s,0,sizeof(s));
for(int i=1; i<=n; i++)
{
scanf("%d%d",&a,&b);
for(int j=a; j<=b; ++j)
++s[j];
}
for(int i=1; i<n; i++)
printf("%d ",s[i]);
printf("%d",s[n]);
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C++ Builder XE4 > TStringGrid 및 TCalendar > TStringGrid에 TCalendar 문자열을 복사하여 배경색을 변경하는 구현운영 환경 처리 개요 TCalendar와 TStringGrid가 있습니다 TStringGrid에 TCalendar 문자열을 복사합니다. TStringGrid의 일부 셀의 배경색 변경 구현 Unit1.h Unit1.c...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.