대회는 지방 노트를 준비하기 위해 블루 브릿지 컵 - (F) + 열거 열거 운동

열거가 - 문제에 대한 목록 모든 가능한 솔루션, 하나 하나 - -, a는 제기 된 문제를 기반으로 나열된 프로세스를 모든 가능한 솔루션을 테스트 할 경우 문제에 대한 진정한 해결책
은이 솔루션을 채택하는 경우, 그렇지 않은 경우, 다음의 경우에 계속.
열거의 방법은 - - - 직관적처럼 이해하기 쉽게,하지만 모든 가능한 솔루션을 조사하기 때문에 운영 효율성을 낮출 .

 

 

예 : 겨울 작업

이 블로그에 해결, 두 가지 방법이 있습니다 :

https://www.cnblogs.com/expedition/p/12243498.html

 

예 : 방정식의 해법

 

샘플 입력

1,000

샘플 출력

 6 8 30

10 18 24

#INCLUDE <STDIO.H>
 INT ) (주 {
     INT N; 
    scanf와 ( " %의 D ' , N);
    위한 ( int로   A = 1 ; A *은 <= n은 ++ ) {
          ( INT B = A + 1 , A * A + B * B <= N, B ++ ) {
              ( INT C = B + 1 ]을 * A + B * B + C * C <= N, C ++ ) {
                 경우 (A * A + B * B + C * C == N) { 
                    의 printf ( " % D % D % D \ n " , A, B, 씨); 
                }
            } 
        } 
    }     
    
    반환  0 ; 
}

 

예 : 대부분의 하위 배열을 할 수

이전 블로그는 해결

https://www.cnblogs.com/expedition/p/12330848.html

 

예 : 네 개의 광장과 

 

 

 

#include<stdio.h>
#include<math.h>
int get(int n){
    for(int a= 0; a*a <= n;a++){
        for(int b = a; a*a + b*b <= n;b++){
            for(int c = b; a*a + b*b + c*c <= n;c++){
                int d = sqrt(  n - a*a - b*b - c*c);
                if(a*a + b*b + c*c +d*d == n){
                    printf("%d %d %d %d",a,b,c,d);
                    return 0;
                }
            }
        }
    }
}
int main(){
    int n;
    scanf("%d",&n);
    get(n);    
    return 0;
}

 

 例题:装饰效果

 

 

 

#include<stdio.h>
int a[105];
int main(){
    int n;
    scanf("%d",&n);
    for(int i = 0; i< n;i++){
        scanf("%d",&a[i]);
    }
    
    int ans = 0;
    int sum;
    for(int i = 0;i < n;i++){
        sum = 0;
        for(int j = i; j< n;j++){
            sum += a[j];
            if(sum > ans)
                ans = sum;
        }
    }
    printf("%d",ans);
    return 0;
}

 

 例题:双截棍

 

 

#include<stdio.h>
int a[105];
int main(){
    int n;
    scanf("%d",&n);
    for(int i = 0; i< n;i++){
        scanf("%d",&a[i]);
    }
    int ans = 10000;
    for(int i = 0; i < n;i++){
        for(int j = i+ 1;j < n;j++){
            if(a[j] >= a[i]){
                if(a[j] - a[i] < ans){
                    ans = a[j] - a[i];    
                }
            }else{
                if(a[i] - a[j] < ans){
                    ans = a[i] - a[j];
                }
            }
        }
    }
    printf("%d",ans);
    return 0;
}

추천

출처www.cnblogs.com/expedition/p/12333042.html