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...