一、安排
搜尋題,有幾道題涉及了一點圖論。
二、題目
1、network saboteur
dfs,倒是不複雜,就是有一點點彆扭。
#include
#include
#include
using namespace std;
int n,cnt;
int a[31][31];
bool vis[31];
void dfs(int i,int sum)//sum表示兩組間的權值,在i未加入之前
if(cntsum)}}
int main()
}memset(vis,0,sizeof(vis));//都在第二組
dfs(1,0);
cout<}
}2、channel allocation
塗色問題,相鄰的不重色,最少需要多少種顏色
#include
#include
#include
#include
using namespace std;
bool map[31][31];
int colour[31];
bool vis[31];
int n,m;
int main()
;struct out
out[100][100];
void bfs()
}//drop(a)
if(now.y>0&&!vis[now.x][0])
}//drop(b)
if(now.x+now.y<=b&&!vis[0][now.x+now.y])
}else if(!vis[now.x+now.y-b][b])
}if(now.x+now.y<=a&&!vis[now.x+now.y][0])
}else if(!vis[a][now.x+now.y-a])}}
cout<<"impossible"這個**在處理輸出路徑問題遇到了問題,記憶體超了。查了一下題解,看了一下如何儲存路徑。
#include
#include
#include
#include
#include
using namespace std;
struct cup
;queueq;
stackr;
int a, b, e;
int vis[101][101]=;//標記當前狀態是否到達過
int ans;
void bfs(int x, int y)
else
c.flag = 5;
break;
case 6: //pour b to a
if(t[cnt].y > a-t[cnt].x)
else
c.flag = 6;
break;
}if(vis[c.x][c.y])
continue;
vis[c.x][c.y] = 1;
c.step = t[cnt].step+1;
c.pre = &t[cnt];
if(c.x == e || c.y == e)
return;
}q.push(c);}}
}void print()
{while(!r.empty())
{int i = r.top();
r.pop();
switch(i)
{case 1:cout<<"fill(1)"<>a>>b>>e;
bfs(0,0);
if(ans == 0)
cout<<"impossible"<
月初總結8 4
去年暑假,我沒記得天氣如此的炎熱。什麼事都不幹,汗水都順著臉頰流下來。宿舍唯一可以驅熱的工具,風扇壞了,宿舍就像個蒸爐一般,很多時候都是熱的醒來。幸運的是,老天真給力,這幾天難得的舒爽。早上起來涼涼的風吹著臉頰,頭髮隨著風的方向飄動著,整個人都感覺神清氣爽。天氣這麼照顧人,我哪有不好好學習的道理,不...
暑假訓練總結 SSL暑假訓練總結
第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...
拓展訓練總結
拓展訓練總結 2006年4月30日至5月1日,我參加人眾人公司的 團隊協作 拓展訓練,在拓展訓練結束之後,雖然是身心俱疲,但感想頗多,特總結如下 一 關於拓展訓練 拓展是近年頗流行的時尚休閒方式,在教練的介紹下,我才知道它的由來 拓展英文為 outward development 中文譯為 拓展 或...