中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

dfs算法java代碼 dfs代碼實(shí)現(xiàn)

分別用DFS和BFS算法給電腦設(shè)置AI(JAVA)

有必勝策略的吧。。狀態(tài)空間的上限是3^9也就是不到20000實(shí)際上沒有這么多。所以直接采用BFS標(biāo)記會比較好。算法的話就是填充表,把表(九個(gè)格子)填為必勝、必?cái)。簞?,開始的時(shí)候全部標(biāo)為必?cái)?,再從勝狀態(tài)開始向回BFS(或者DFS也可以),己勝狀態(tài)向回標(biāo)的一定是敗狀態(tài),必勝狀態(tài)的上一狀態(tài)為必?cái)B(tài),必?cái)B(tài)的上一狀態(tài)可能是必?cái)』蛘弑貏伲ㄟ@就是因?yàn)檫@家伙走錯(cuò)棋了所以要輸?。?/p>

創(chuàng)新互聯(lián)公司是一家專業(yè)提供虹口企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為虹口眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

我的習(xí)慣。不寫代碼。沒有意思。

判斷有向圖是否連通+dfs+java

方法1:

如果存在回路,則必存在一個(gè)子圖,是一個(gè)環(huán)路。環(huán)路中所有頂點(diǎn)的度=2。

n算法:

第一步:刪除所有度=1的頂點(diǎn)及相關(guān)的邊,并將另外與這些邊相關(guān)的其它頂點(diǎn)的度減一。

第二步:將度數(shù)變?yōu)?的頂點(diǎn)排入隊(duì)列,并從該隊(duì)列中取出一個(gè)頂點(diǎn)重復(fù)步驟一。

如果最后還有未刪除頂點(diǎn),則存在環(huán),否則沒有環(huán)。

n算法分析:

由于有m條邊,n個(gè)頂點(diǎn)。

i)如果m=n,則根據(jù)圖論知識可直接判斷存在環(huán)路。(證明:如果沒有環(huán)路,則該圖必然是k棵樹 k=1。根據(jù)樹的性質(zhì),邊的數(shù)目m = n-k。k=1,所以:mn)

ii)如果mn 則按照上面的算法每刪除一個(gè)度為0的頂點(diǎn)操作一次(最多n次),或每刪除一個(gè)度為1的頂點(diǎn)(同時(shí)刪一條邊)操作一次(最多m次)。這兩種操作的總數(shù)不會超過m+n。由于mn,所以算法復(fù)雜度為O(n)。

關(guān)于DFS的問題

java.lang.ArrayIndexOutOfBoundsException: -1

int[][]?next={{0,1},{1,0},{0,-1},{-1,0}};

int?tx?=?0,ty?=?0;

for(int?i=0;i4;i++){

tx=x+next[i][0];

ty=y+next[i][1];

if(tx1||txm||ty1||tyn){

continue;

}

}if(a[tx][ty]==0book[tx][ty]==0){?//可能會出現(xiàn)數(shù)組越界

java實(shí)現(xiàn)二進(jìn)制窮舉

閑著沒事,給你寫了一個(gè)一個(gè)DFS算法,可以枚舉(a1, a2… ak),剩下的太簡單,你自己寫著玩吧。。。

import?java.util.ArrayList;

public?class?DFS?{

public?static?void?main(String[]?args)?{

DFS?dfs=new?DFS();

dfs.dfs(1);

}

int?sum=0;?

int?index=5;

ArrayListIntegerlist=new?ArrayListInteger();

public?void?dfs(int?i)

{

if(iindex)

{

sum++;

System.out.println("this?is?the?"+sum);

for(Integer?integer:this.list)

{

System.out.print(integer+"?");

}

System.out.println();

return;

}

for(int?j=0;j=1;j++)

{

list.add(j);

this.dfs(i+1);

list.remove(list.size()-1);

}

}

}

求一個(gè)java的隨機(jī)算法,高手來

好好的看一下就知道為什么list的長度與count 相同時(shí),總是出現(xiàn)死循環(huán) 。

你在int[] a=new int[count]; 這一步操作時(shí),數(shù)組a中的數(shù)據(jù)全部默認(rèn)為0,而int rs=ran.nextInt(list.size()); 返回的值是0到list.size()-1的數(shù)。當(dāng)list的長度與count 相同時(shí),在產(chǎn)生最后一個(gè)隨機(jī)數(shù)時(shí),只能產(chǎn)生0,可是0在數(shù)組a中又存在了,所以就死循環(huán)了。

編程時(shí),多注意邊界問題。

匈牙利算法 java

#includestdio.h

#includestring.h

bool g[201][201];

int n,m,ans;

bool b[201];

int link[201];

bool init()

{

int _x,_y;

memset(g,0,sizeof(g));

memset(link,0,sizeof(link));

ans=0;

if(scanf("%d%d",n,m)==EOF)return false;

for(int i=1;i=n;i++)

{

scanf("%d",_x);

for(int j=0;j_x;j++)

{

scanf("%d",_y);

g[ i ][_y]=true;

}

}

return true;

}

bool find(int a)

{

for(int i=1;i=m;i++)

{

if(g[a][ i ]==1!b[ i ])

{

b[ i ]=true;

if(link[ i ]==0||find(link[ i ]))

{

link[ i ]=a;

return true;

}

}

}

return false;

}

int main()

{

while(init())

{

for(int i=1;i=n;i++)

{

memset(b,0,sizeof(b));

if(find(i))ans++;

}

printf("%d\n",ans);

}

}

Pascal:

Program matching;

Const

max = 1000;

Var

map : array [1..max, 1..max] of boolean; {鄰接矩陣}

match: array [1..max] of integer; {記錄當(dāng)前連接方式}

chk : array [1..max] of boolean; {記錄是否遍歷過,防止死循環(huán)}

m, n, i, t1, t2, ans,k: integer;

Function dfs(p: integer): boolean;

var

i, t: integer;

begin

for i:=1 to k do

if map[p, i] and not chk[ i ] then

begin

chk[ i ] := true;

if (match[ i ] = 0) or dfs(match[ i ]) then {沒有被連過 或 尋找到增廣路}

begin

match[ i ] := p;

exit(true);

end;{if}

end;{for}

exit(false);

end;{function}

begin{main}

readln(n, m); {N 為二分圖左側(cè)點(diǎn)數(shù) M為可連接的邊總數(shù)}

fillchar(map, sizeof(map), 0);

k:=0;

for i:=1 to m do{initalize}

begin

readln(t1, t2);

map[t1, t2] := true;

if kt2 then k:=t2;

end;{for}

fillchar(match, sizeof(match), 0);

ans := 0;

for i:=1 to n do

begin

fillchar(chk, sizeof(chk), 0);

if dfs(i) then inc(ans);

end;

writeln(ans);

for i:=1 to 1000 do

if match[ i ] 0 then

writeln(match[ i ], '--', i);

end.

網(wǎng)頁標(biāo)題:dfs算法java代碼 dfs代碼實(shí)現(xiàn)
URL網(wǎng)址:http://m.rwnh.cn/article8/doohiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、建站公司、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
文昌市| 云浮市| 铜陵市| 桂东县| 阜平县| 合水县| 五河县| 兰坪| 于都县| 玛多县| 庆元县| 秦皇岛市| 汝阳县| 长治市| 库尔勒市| 类乌齐县| 任丘市| 新昌县| 青河县| 平舆县| 崇左市| 罗甸县| 新民市| 互助| 澄城县| 玉林市| 桓台县| 章丘市| 绵阳市| 伊宁市| 陆丰市| 合江县| 惠安县| 黄平县| 资中县| 桃园市| 德保县| 迁安市| 禹州市| 团风县| 渑池县|