poj 3126 寫的有點亂,簡單的多入口bfs

2021-08-20 08:34:00 字數 1431 閱讀 6159

poj 3126鏈結

題目的大意就是,給出兩個四位素數n,m,每次只改變n乙個數字上面的數字使他成為另外乙個素數,要求從n變到m的最短路徑。

由於是最短路徑問題,所以很明顯採取的做法是通過bfs。

//#include// poj的日常不能用的標頭檔案

#include#include#include#includeusing namespace std;

const int n=1e5+7;

typedef long long ll;

bool isprime[n],que[n]; //que陣列用來儲存已搜尋的數字

int prime[n],sum[4]; //prime陣列來儲存素數,而sum陣列用來儲存數字

int cnt=0,n,m; //cnt用來儲存素數個數方便後面的二分查詢(很顯然這個完全沒有必要)

struct node; //這個結構體num是為了儲存該次變化,而step是用來儲存以變化次數

/*void fast_find_prime() //寫low了的快篩

}*/void find_prime() //篩選素數

}if(flag) prime[++cnt] = i;

}}bool judge_fast_find(int p) //通過二分查詢來判斷該種變化是否為素數

if(p == prime[l] || p == prime[r]) return true;

return false;

}bool judge(int i,int j,node &res,int v) //判斷該次變化是否符合題意

return false;

}int bfs()}}

q.pop();

}return -1;

}int main()

;void fast_find_prime()

}bool judge_fast_find(int p)

if(p == prime[l] || p == prime[r]) return true;

return false;

}bool judge(int i,int j,node &res,int v)

return false;

}int bfs()}}

q.pop();

}return -1;

}int main()

return 0;

}

因為其他的都差不多,就不一一注釋了。。。很迷,居然就快了1ms,沒意思

記事 「我記的東西好像有點亂」

記錄一下今天的事 1昨天晚上2點半睡的,今天8點半起來的。上午看了半天書,中午在網上逛了2個小時。下午3點到5點半參加scda協會組織的 寶潔公司經理人的茶話會,然後從六點到10點半一直在教室裡看書。第三章基本上快看完了,明天爭取至少看掉4,5,6章。2 看完書,寫完東西沒去跑步,乙個人走在寒秋的夜...

記事 「我記的東西好像有點亂」

記錄一下今天的事 1昨天晚上2點半睡的,今天8點半起來的。上午看了半天書,中午在網上逛了2個小時。下午3點到5點半參加scda協會組織的 寶潔公司經理人的茶話會,然後從六點到10點半一直在教室裡看書。第三章基本上快看完了,明天爭取至少看掉4,5,6章。2 看完書,寫完東西沒去跑步,乙個人走在寒秋的夜...

自己寫的約瑟夫環的方法,感覺有點笨

package test 有編號從1到n的n個人坐成一圈報數,報到m的人出局,下一位再 從1開始,如此持續,直止剩下一位為止,報告此人的編號x。輸入n,m,求出x。public class test if judge store,flag i 0 for int k 0 k store.length...