2021年上半年軟件設(shè)計(jì)師下午真題及答案解析(試題四)

軟件設(shè)計(jì)師 責(zé)任編輯:胡媛 2021-05-29

添加老師微信

備考咨詢

加我微信

摘要:2021年上半年軟件設(shè)計(jì)師下午考試已結(jié)束,希賽小編為大家整理了2021年上半年軟件設(shè)計(jì)師下午真題及答案解析(試題四)。

為方便廣大考生考后估分對答案,希賽網(wǎng)特向廣大學(xué)員和網(wǎng)友搜集整理了相關(guān)真題信息,供大家參考。收集完整2021年上半年軟考軟件設(shè)計(jì)師真題答案后,希賽網(wǎng)的老師也將在考后第一時(shí)間進(jìn)行真題答案解析,敬請廣大考友考后積極關(guān)注。

現(xiàn)在要推薦給大家的是文字版2021年上半年軟考軟件設(shè)計(jì)師考試下午真題及答案解析試題四。

試題四(共15分)

閱讀下列說明和C代碼,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)。

[說明]

凸多邊形是指多邊形的任意兩點(diǎn)的連線均落在多邊形的邊界或者內(nèi)部。相鄰的點(diǎn)連線落在多邊形邊上,稱為邊,不相鄰的點(diǎn)連線落在多邊形內(nèi)部。稱為弦。假設(shè)任意兩點(diǎn)連線上均有權(quán)重,凸多邊形最優(yōu)三幫劑分問題定義為:求將凸多邊形劃分為不相交的三角形集合,且各三角形權(quán)重之和最小的剖分方案。每個(gè)三角形的權(quán)重為三條邊權(quán)重之和。

假設(shè)N個(gè)點(diǎn)的凸多邊形點(diǎn)編號為V1,V2,……,VN,若在VK處將原凸多邊形劃分為一個(gè)三角形V1VkVN,兩個(gè)子多邊形V1,V2,…,Vk和Vk,Vk+1,…VN,得到一個(gè)最優(yōu)的剖分方案,則該最優(yōu)剖分方案應(yīng)該包含這兩個(gè)子凸邊形的最優(yōu)剖分方案。用m[i][j]表示帶你Vi-1,Vi,…Vj構(gòu)成的凸多邊形的最優(yōu)剖分方案的權(quán)重,S[i][j]記錄剖分該凸多邊形的k值。

1.png

其中:

Wj,i-1分別為該三角形三條邊的權(quán)重。求解凸多邊形的最優(yōu)剖分方案,即求解最小剖分的權(quán)重及對應(yīng)的三角形集。

[C代碼]

#include<stdio.h>

#define N 6                       

//凸多邊形規(guī)模

int m[N+1] [N+1];         //m[i][j]表示多邊形Vi-1到Vj最優(yōu)三角剖分的權(quán)值

int S[N+1] [N+1];        //S[i][j]記錄多邊形Vi-1 到Vj最優(yōu)三角剖分的k值

int W[N+1] [N+1];      //凸多邊形的權(quán)重矩陣,在main函數(shù)中輸入

/*三角形的權(quán)重a,b,c,三角形的頂點(diǎn)下標(biāo)*/

int get_ triangle_weight(int a,int b,int c){

return W[a][b]+W[b][c]+W[c][a];

}

/*求解最優(yōu)值*/

void triangle_partition(){

int i,r,k,j;

int temp;

/*初始化*/

for(i=1;i<=N;i++){

m[i][i]=0;

}

/*自底向上計(jì)算m,S*/

for(r=2;(1);r++){/*r為子問題規(guī)模*/                  //r<=N

for(i=1;k<=N-r+1;i++){

(2);               //int j=i+r-1

m[i][j]= m[i][j]+m[i+1][j]+get_triangle_weight(i-1,i,j);     /*k=j*/

S[i][j]=i;

for(k=j+1;k<j;k++){/*計(jì)算 [i][j]的最小代價(jià)*/

temp=m[i][k]+m[k+1][j]+ge_triangle_ weight(i-1,k,j);

if((3)){/*判斷是否最小值*/    //temp<m[i][j]

m[i][j]=temp;

S[i][j]=k;

}

}

}

}

}

/*輸出剖分的三角形i,j:凸多邊形的起始點(diǎn)下標(biāo)*/

void print_triangle(int i,int j){

if(i==j)       return;

print_triangle(i,S[i][j]);

print_

triangle((4));           //s[i][j]+1,j

print(“V%d- -V%d-

-V%d\n“,i-1,S[i][j],j);

}


[問題1] (8分)

根據(jù)說明和C代碼,填充C代碼中的空(1) ~ (4)。

[問題2] (7分)

根據(jù)說明和C代碼,該算法采用的設(shè)計(jì)策略為(5),算法的時(shí)間復(fù)雜度為(6),空間復(fù)雜度為(7) (用0表示)。

2021上半年軟件設(shè)計(jì)師下午真題及答案解析【完整版】請大家點(diǎn)擊下載附件查看,或-掃碼-看答案,提前估分!

相關(guān)推薦:2021上半年軟件設(shè)計(jì)師真題及答案解析

熱點(diǎn)推薦:2021年上半年軟考真題及答案解析(匯總)

微信掃碼看答案,提前估分

1.png

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢在線老師!