HDOJ 계산 직선의 교점 수 1466
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8389 Accepted Submission(s): 3772
Problem Description
평면 에 n 개의 직선 이 있 고 3 선의 공통점 이 없 으 며 이 직선 들 이 몇 가지 서로 다른 교점 이 있 는 지 물 어보 세 요.
예 를 들 어 n = 2 이면 가능 한 교점 수량 은 0 (평행) 또는 1 (평행 하지 않 음) 이다.
Input
입력 데 이 터 는 여러 개의 테스트 인 스 턴 스 를 포함 하고 모든 테스트 인 스 턴 스 는 한 줄 을 차지 하 며 각 줄 은 하나의 정수 n (n < 20) 을 포함 하고 n 은 직선 수량 을 표시 합 니 다.
Output
모든 테스트 인 스 턴 스 는 한 줄 의 출력 에 대응 하고 작은 것 부터 큰 것 까지 모든 교차 방안 을 보 여 줍 니 다. 그 중에서 모든 수 는 가능 한 교차 포인트 이 고 모든 줄 의 정수 사 이 를 빈 칸 으로 구분 합 니 다.
Sample Input
2
3
Sample Output
0 1
0 2 3
Author
lcy
Source
ACM 여름 캠프 연습 경기 (9)
Recommend
lcy | We have carefully selected several similar problems for you: 1176 1087 1003 1159 1058
직선
n = 1 시 교점 n = 2 시 교점 n = 3 시 교점 n = 4 시 1. 제4 조 와 나머지 직선 은 모두 평행 = > 교점 이 없다.2. 제4 조 는 그 중의 두 개 와 평행 하고 교점 수 는 (n - 1) * 1 + 0 = 3 이다.3. 네 번 째 줄 은 그 중의 한 줄 과 평행 이다. 이 두 평행 직선 과 다른 두 점 의 교점 수 는 (n - 2) * 2 = 4 이 고 다른 두 직선 은 평행 일 수도 있 고 교차 할 수도 있 기 때문에 교점 수 는 (n - 2) * 2 + 0 = 4 또는 (n - 2) * 2 + 1 = 5 4, 네 번 째 직선 은 그 어떠한 직선 과 평행 하지 않 고 교점 수 는 (n - 3) * 3 + 0 = 3 또는 (n - 3) * 3 + 2 = 5 또는 (n - 3) * 3 + 3 = 6 즉 n = 4 일 때 이다.0 개, 3 개, 4 개, 5 개, 6 개의 서로 다른 교점 이 있다.
n = 4 의 경우 평행선 의 수 를 차례로 줄인다.n 개의 직선 이 있다 고 가정 하면 이 n 개의 직선 의 교점 수 는 (n - i) * i 와 j 의 합 으로 볼 수 있다. 여기 (n - i) 는 평행선 의 줄 수 를 나타 내 고 i 는 자유 선의 줄 수 를 나타 내 며 j 는 i 개의 자유 선의 교점 수 를 나타 낸다.1 개의 자유 선과 (n - i) 의 평행선 은 반드시 (n - i) * 1 개의 교점 이 있 기 때문에 여기 서 자유 선과 평행선 이 평행 하지 않 는 다 고 밝 혔 다. 그렇지 않 으 면 자유 선과 평행선 은 구분 할 필요 가 없다.그러면 i 개의 자유 선과 평행선 의 교점 총 수 는 (n - i) * i 이다. i 개의 자유 선 은 서로 평행 할 수도 있 고 교차 할 수도 있 기 때문에 i 개의 자유 선 자체 의 교점 수 j 를 더 해 야 한다.
#include<stdio.h>
int p[21][200];
int main()
{
int i,j,k;
for(i=1;i<21;i++)
p[i][0]=1;
for(k=2;k<21;k++)
for(i=1;i<k;i++)
for(j=0;j<200;j++)
if(p[i][j])// i j 。
p[k][j+(k-i)*i]=1;//k-i ,i 。
int n;
while(scanf("%d",&n)!=EOF)
{
int x=(n-1)*n/2;
printf("0");
for(i=1;i<=x;i++)
if(p[n][i])
printf(" %d",i);
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.