freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

openjudge算法設計與分析習題解答(編輯修改稿)

2025-04-20 05:01 本頁面
 

【文章內容簡介】 8 1 2 3 46 5 8 7 2 1 4 37 8 5 6 3 4 1 28 7 6 5 4 3 2 1提示M的大小不會超過8源代碼:includeincludevoid arrange(int k,int **a,int n){ int t=1,temp=1。 *((int*)a+k*0+0)=1。 //a[0][0]=1。 while(t=n){ for(int i=0。itemp。i++){ for(int j=0。jtemp。j++){ *((int*)a+k*i+j+temp)=*((int*)a+k*i+j)+temp。 //a[i][j+temp]=a[i][j]+temp。 } } for(int i=0。itemp。i++){ for(int j=0。jtemp。j++){ *((int*)a+k*(i+temp)+j)=*((int*)a+k*i+j+temp)。 //a[i+temp][j]=a[i][j+temp]。 *((int*)a+k*(i+temp)+j+temp)=*((int*)a+k*i+j)。 //a[i+temp][j+temp]=a[i][j]。 } } temp*=2。 t++。 }}int main(){ int n。 scanf(%d,amp。n)。 int k=1。 for(int i=0。in。++i){ k=2*k。 } int a[k][k]。 arrange(k,(int **)a,n)。 for(int i=0。ik。i++){ for(int j=0。jk。j++){ printf(%d,a[i][j])。 } printf(\n)。 } getchar()。 return 0。} 棋盤覆蓋問題描述在一個2k2k個方格組成的棋盤中,若恰有一個方格與其他方格不同,稱該方格為特殊方格,且稱該棋盤為特殊棋盤。顯然,特殊方格在棋盤中出現的位置有4k種情形,因而有4k種不同的棋盤,如圖1所示是k=2時16種棋盤中的一個。在棋盤覆蓋問題中,要求用圖2所示的4種不同形狀的L型骨牌覆蓋給定棋盤上除特殊方格以外的所有方格,且任何兩個L型骨牌不得重疊覆蓋。輸入對每一個測試例有2行,第一行是k(1=k=10),第二行是特殊方格所在的位置坐標x,y(0=x,y1024)。輸出邊長為2的k次方的方陣,特殊方格的編號為0,所有L型骨牌從1開始編號,數據之間的間隔是空格。樣例輸入20 1樣例輸出2 0 3 32 2 1 34 1 1 54 4 5 5提示按分治策略進行算法設計。includeincludeint t=0。int board[100][100]。void ChessBoard(int tr,int tc,int dr,int dc,int size){ int s,t1。 if(size==1) return 。 t1=++t。 s=size/2。 if(drtr+samp。amp。dctc+s){ ChessBoard(tr,tc,dr,dc,s)。 }else{ board[tr+s1][tc+s1]=t1。 ChessBoard(tr,tc,tr+s1,tc+s1,s)。 } if(drtr+samp。amp。dc=tc+s){ ChessBoard(tr,tc+s,dr,dc,s)。 }else{ board[tr+s1][tc+s]=t1。 ChessBoard(tr,tc+s,tr+s1,tc+s,s)。 } if(dr=tr+samp。amp。dctc+s){ ChessBoard(tr+s,tc,dr,dc,s)。 }else{ board[tr+s][tc+s1]=t1。 ChessBoard(tr+s,tc,tr+s,tc+s1,s)。 } if(dr=tr+samp。amp。dc=tc+s){ ChessBoard(tr+s,tc+s,dr,dc,s)。 }else{ board[tr+s][tc+s]=t1。 ChessBoard(tr+s,tc+s,tr+s,tc+s,s)。 }} int main(){ int n,size=1。 scanf(%d,amp。n)。 for(int i=0。in。i++){ size=size*2。 } int dr,dc。 scanf(%d%d,amp。dr,amp。dc)。 ChessBoard(0,0,dr,dc,size)。 for(int i=0。isize。i++){ for(int j=0。jsize。j++){ printf(%d ,board[i][j])。 } printf(\n)。 } getchar()。 return 0。} 1輸油管道問題描述某石油公司計劃建造一條由東向西的主輸油管道。該管道要穿過一個有n 口油井的油田。從每口油井都要有一條輸油管道沿最短路經(或南或北)與主管道相連。如果給定n口油井的位置,即它們的x 坐標(東西向)和y 坐標(南北向),應如何確定主管道的最優(yōu)位置,即使各油井到主管道之間的輸油管道長度總和最小的位置?證明可在線性時間內確定主管道的最優(yōu)位置。要求給定n口油井的位置,計算各油井到主管道之間的輸油管道最小長度總和。輸入由文件提供輸入數據,文件第一行是油井數n,1=n=10000。接下來n行是油井的位置,每行兩個整數x和y,10000=x,y=10000。輸出將結果輸出到文件中,文件第一行中的數是油井到主管道之間的輸油管道最小長度總和。樣例輸入51 22 21 33 23 3樣例輸出6提示按分治策略進行算法設計。源代碼:include include includealgorithm using namespace std。 struct node { int x,y。 } num[200000]。 bool cmp(node a,node b) { return 。 } int main() { int t。 scanf(%d,amp。t)。 int i,j。 for(i=0。it。i++) { scanf(%d%d,amp。num[i].x,amp。num[i].y)。 } int ans。 sort(num,num+t,cmp)。 if(t%2==1) { ans=0。 int zong=num[t/2].y。 for(i=0。it。i++) { ans+=abs(num[i].yzong)。 } } else { int zong=num[t/2].y+num[t/21].y。 zong/=2。 ans=0。 for(i=0。it。i++) { ans+=abs(num[i].yzong)。 } } printf(%d\n,ans)。 return 0。 }10/1背包問題描述給定n種物品和一個背包,物品i(1≤i≤n)的重量是wi,其價值為vi,背包的容量為C,對每種物品只有兩種選擇:裝入背包或者不裝入背包。如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大?輸入輸入包含一組或多組測試例。每組測試例的第一行是物品的數量n和背包的容量C,之后的n行是每個物品的重量及其價值。輸出輸出第一行是裝入背包中物品的總價值,后面n行是各個物品裝入背包的情況。樣例輸入5 102 62 36 55 4
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1