程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 216 - Getting in Line

216 - Getting in Line

編輯:C++入門知識

[cpp] 
描述:水題,就不解釋了…… 
 
#include <iostream> 
#include <cstdio> 
#include <cmath> 
#include <cstring> 
using namespace std; 
double count; 
int n,step[10]; 
void dfs(int cur,double sum,int *flag,int (*p)[10]) 

    if(cur>n) 
    { 
        if(sum<count) 
        { 
            count=sum; www.2cto.com
            for(int i=1; i<=n; i++) step[i]=flag[i]; 
        } 
        return; 
    } 
    else for(int i=1; i<=n; i++) 
        { 
            int j; 
            for( j=1; j<=n; j++) 
                if(flag[j]==i) break; 
            if(flag[j]==i) continue; 
            flag[cur]=i; 
            if(cur>=2) 
            { 
                int x=p[0][flag[cur-1]],y=p[1][flag[cur-1]]; 
                double c=sqrt((p[0][i]-x)*(p[0][i]-x)+(p[1][i]-y)*(p[1][i]-y)); 
                dfs(cur+1,sum+c,flag,p); 
            } 
            else dfs(cur+1,sum,flag,p); 
            flag[cur]=0; 
        } 

int main() 

#ifndef ONLINE_JUDGE 
    freopen("a.txt","r",stdin); 
#endif 
    int j(0),num[2][10],flag[10]; 
    while(scanf("%d",&n)!=EOF) 
    { 
        if(!n) break; 
        memset(num,0,sizeof(num)); 
        memset(flag,0,sizeof(flag)); 
        printf("**********************************************************\n"); 
        printf("Network #%d\n",++j); 
        count=100000; 
        for(int i=1; i<=n; i++) 
            scanf("%d%d",&num[0][i],&num[1][i]); 
        dfs(1,0,flag,num); 
        for(int i=1; i<n; i++) 
        { 
            int x1=num[0][step[i]],y1=num[1][step[i]],x2=num[0][step[i+1]],y2=num[1][step[i+1]]; 
            printf("Cable requirement to connect (%d,%d) to (%d,%d) is %.2lf feet.\n",x1,y1,x2,y2,sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))+16); 
        } 
        printf("Number of feet of cable required is %.2lf.\n",count+(n-1)*16); 
    } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved