1.題目編號
1010
2.簡單題意
乙個人的辦公室用1表示,家用2 表示,從1到2,中間可能會經過其它節點,而該節點可走的原則是:假設他此時在a處,b與其相鄰,只有當b到2 路線中存在一條比a到2 的任意一條路徑都短的路徑,才能走b。問這樣的路線有多少種?
3.解題思路
求出各點到2-1的最短距離 同時存貯其它點到2的最短距離,然後
記憶化搜尋 從1開始 找到符合條件的路徑數
4.感想
題目很難理解,畢竟是英文啊,而且這道題做起來太難了,考慮的情況有點多
5.**
#include
#include
using namespace std;
typedef struct n1
node;
node n[1005];
int map[1005][1005],k;
int direct[1005];
void set(int n)
n[i].distens=10000000;n[i].flog=0;direct[i]=0;
}scanf("%d",&m);
while(m--)
}void spfa(int n)}}
}}int dfs(int now,int n)
for(i=1;i<=n;i++)
if(map[now][i]!=-1&&n[now].distens>n[i].distens)
return direct[now];
}int main()
}void init( int n )
int main(){
int n,m;
while( scanf("%d%d",&n,&m)==2,n||m ){
//if( n==0&&m==0 ) break;
for( int i=0;i
2016sdau課程練習專題三 1001
1.題目編號 2.簡單題意 給你一組數,求出最大的子串行的和,並說出起始位置 3.解題思路 該題目要求求出最大的子串行的和,因此要找出此組數中最大的連續子串行,前i項中只要大於0就可以加入子串行,若後續數字的和也大於0則繼續相加,直到求出最大值,同時在相加過程中,記錄數字位置 4.感想 上課老師講的...
2016sdau課程練習專題三 1012
1.題目編號 1012 2.簡單題意 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 3.解題思路 題目又沒有原圖,設f 1 1 f 2 2 從圖中也可以觀察出來,第n張牌的排列可以又n 1張牌的排列再在末...
2016sdau課程練習專題三 1014
1.題目編號 1014 2.簡單題意 直線分割平面的題目,要求是求n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示 3.解題思路 遞推類的題目,和前面幾個乙個型別,找規律,當只畫一條線的時候,之前有多少根直線就最多再多出之前直線數量的加1...