|
You scored as Mathematics. You should be a Math major! Like Pythagoras, you are analytical, rational, and when are always ready to tackle the problem head-on!
Mathematics | | 83% | Theater | | 50% | Philosophy | | 50% | Engineering | | 50% | Anthropology | | 33% | Chemistry | | 25% | English | | 17% | Linguistics | | 17% | Sociology | | 17% | Dance | | 17% | Psychology | | 8% | Art | | 8% | Journalism | | 0% | Biology | | 0% |
|
What is your Perfect Major? (PLEASE RATE ME!!<3)
created with QuizFarm.com
posted @
2006-04-26 00:15 豪 閱讀(319) |
評論 (0) |
編輯 收藏
9點45 進場。來到64號機前,放好3本牛津高階,一片緊張,電腦桌面上就只有pc^2的登陸界面。
10點 比賽開始, 看了一下題, 看到在北大的上面做過的"TO THE MAX" , 萬分驚喜, 快速找出 《算法設計與分析》, 同時分配任務給我的隊友, chgsh看A題, xp 看B題。心情很緊張,快速的敲這最大子矩陣和的函數, 當時想,這次第一次做出題目的肯定是我們了。。。敲好,提交, NO-wrong answer。心一下子塌下來, 這時候別對隊很多都做出的A題(深紅色氣球),和G題(粉紅色氣球), 這時, chgsh的A題手寫出來的, 我就過一旁看C題, 因為我覺得TO THE MAX應該是敲函數的時候出現了一點差錯, 要找比較難, 還是先把簡單題快點做出來, TO THE MAX晚點再改也行,反正我知道那題不會有太多人能做出來的。。
10點30 chgsh的代碼敲完, 調試沒問題, 交, NO-wrong answer, 暈, 再改程序, 再交, NO-wrong answer!那時候我們的心情都凝結了, 沒想到第一題都做不出, 看到很多紅色氣球都升起來的, 而我們隊還一個氣球都沒有, 再檢查代碼, 原來漏掉了結束的標志, 改好, 交! "YES!", 我們不禁叫了出來, 我們互相握手,以示鼓勵,畢竟這是0的突破, 意義很大啊!
10點50 xp把寫好的B題敲到電腦里面, 交, NO-wrong answer, xp檢查代碼, 這時我們心情也鎮定了, 沒有被這NO影響, 我續看C題, 想出來了, xp還在改, 我就繼續看G題(這題當時已經有很多人做出來了,所以我想也不難), 想不到就是漢諾塔, 頓時信心十足。這時,曉萍再交程序 NO, 暈死。這時xp叫我一起檢查程序,同時把算法告訴我, 我看了程序, 感覺程序一點都沒錯, 郁悶死。隨手把pc^2點出來, 最郁悶的事情發生了, xp交題的時候選錯題, 再交, YES! 第二道搞定!
11點20 我決定先把E題(TO THE MAX)檢查一遍, 果然, 變量n敲成k了, 改好提交, YES! 我差點跳了起來, 我自己終于做出一題了, 而且那題那個時候還沒幾個隊做出來。chgsh和xp都很高興, 我們再次握手以示鼓勵!
11點50 我繼續敲G題(漢諾塔), 抄了書上的遞歸程序, 測試, 超時, chgsh說把答案打表吧, 當時我靈機一動, 答案會不會有規律的呢, 決定做個循環把答案打印出來, Bingo, 果然, a[i+1] = 2*a[i] + 1。迅速把程序敲上,提交, YES!
12點 我繼續敲C題, 感覺這題比較簡單,這時chgsh已經把D題(兩頁紙的E文)看懂了, 他就和xp商量D題, 而我就繼續敲, 當時氣氛又緊張了起來,? 我想, 如果我把這題拿下了, 那我們對就完成了5題, 拿個小獎應該沒問題了。 可能就是這樣過于心急, 第一次提交沒過, 檢查時漏掉了一種情況, 改好交, YES! 看著我們面前那五個顏色的氣球。這時已經是12點15分了, 看著面前的面包, 雖然肚子餓, 但是在這種氣氛下, 怎么吃得下啊?
12點20分? 結合chgsh和我對F題的理解, 覺得F題也不難, 不過F題要考慮的情況很多, 當時頭腦發暈, 心情也急, 老是想快點把第6題也做出來(因為這時旁邊的隊也做了5題), 于是沒有對情況仔細分析, 就去敲代碼。。。
13點? 代碼敲好了, SAMPLE通過, 交吧, NO-wrong answer, 早有預感, 這時xp在手寫D題,我想了下我的程序, n個if, n個case, 好混亂, 亂改了一下, 交,在NO-wrong answer, 沒法了, 我坐在那里,頭好暈。。這時, xp說他的代碼寫好了,讓他試試,OK, 正好我也去冷靜下, 仔細想想, F題的情況。
14點 xp敲代碼, 而我還在那里發呆, 偶爾看看xp的代碼, n個for語句(那題我題意都沒理解), 也看不懂他的算法, 頭腦就還在發熱, 郁悶! 這是chgsh跑過來和我說F題的解法, 給了他想的幾個測試數據我, 那幾個測試數據就像是救命的靈藥, 我開始重新整理思路, 想好F題要改的地方, 這時xp的程序SAMPLE都還沒通過, 于是就讓我先改F題, 大家都覺得, 做出F題的機會比較大。于是我把我的程序又改了一遍, 再交還是NO-wrong answer。。。。。這時已經離比賽結束只剩下20分鐘了。
14點40分? 我們的心情都異常的緊張, 因為這時候已經有不少的隊伍已經做出了5題(我們旁邊那隊早就做出了6題了), 而且我們罰時比較多, 所以情況對我們很不利, 我們必須做出第6題才能有較大的機會拿獎。可是, 對F題, 我已經沒有辦法了, xp的D題他也沒把握, 這時候, chgsh又想到了幾個使我的程序錯的測試數據, 于是趕緊改上, 沒問題, 交。這時候只剩下不到15分鐘了, 返回結果:YES!? 居然YES了, 是YES!那種感覺, 只能用狂喜來形容!我們再次握手, 我們有機會了!
14點45分 我們還沒有放棄, xp上去改他的D題, 居然前兩組SAMPLE過了, 叫他趕緊交, 交了再改, 只剩下10分鐘了, NO-wrong answer! 這是我們三個一起注視這顯示器, 到底那里錯呢? 按我的經驗, 肯定是溢出問題, 于是叫xp把程序里的1e10改成1000000000交上去試試。 本就沒想過能過的, 誰知道, 跳出一個YES的對話框, "過了?" , "我們隊做了7題了!", "xp你太厲害了", 我們興奮得差點從椅子上跳起來。我想現在最不爽的肯定是我們旁邊的那隊, 一直領先我們, 居然在最后20分鐘出現了奇跡。。。
15點 比賽結束 周杰老師公布:"有2支隊做完了8題, 兩支隊做了7題。。。"
后記:這次比賽, 給我的唯一感覺就是神奇, 真的是太神奇了, 特別是最后20分鐘做出兩題, 是三個人合作的成果, 這就是ACM的樂趣, 在這, 我要感謝我的隊友chgsh和xp, 我要說:"AUCS, 好樣的!"
我們隊(team64)的排名:

posted @
2006-04-18 00:02 豪 閱讀(448) |
評論 (5) |
編輯 收藏
問題分析:
假設一個
struct TreeNode
{
int tData;
TreeNode *lp, *rp;//左右兒子的指針
};
規定用遞歸前序遍歷以pNode為根二叉樹,把節點指針保存在rs數組中,并返回節點個數cnt.
因為要用遞歸遍歷, 所以cnt必須保留遞歸每層cnt的值.
實現方法有兩種:
1:用by value傳值,cnt初值為0;
int travel(TreeNode *pNode, TreeNode **rs, int &cnt)
{
if (pNode == NULL)
{
return cnt;
}
rs[cnt++] = pNode;
travel(pNode->lp, rs, cnt);
travel(pNode->rp, rs, cnt);
return cnt;
}
2:用靜態變量實現
int travel(TreeNode *pNode, TreeNode **rs)
{
static int cnt = 0;
if (pNode == NULL)
{
return cnt;
}
rs[cnt++] = pNode;
travel(pNode->lp, rs, cnt);
travel(pNode->rp, rs, cnt);
return cnt;
}
對比1和2,顯然2的函數要比1的來得友好,因為在1中增加的參數cnt不屬于函數接口,只是為了函數的實現而引入的,所以參數cnt的出現,破壞了接口的友好性.但是如果用2的方法,在函數再次使用的時候static int cnt的值仍保持上次函數被調用時的值,而沒有初始化為0,從而達不到函數再次被調用的目的.那有沒有好的解決方法呢?
我們利用函數重載,重載travel函數,并在此函數內調用1的travel函數.
int travel(TreeNode *pNode, TreeNode **rs)
{
int cnt = 0;
return travel(TreeNode *pNode, TreeNode **rs, int &cnt);
}
這樣的話,就能很好的解決了函數接口的友好性,而又不會出現static變量的副作用了.
以上是小弟的一點愚見.
posted @
2006-03-14 13:11 豪 閱讀(1199) |
評論 (9) |
編輯 收藏
又到了周末,興致勃勃地從舍友那拷來<<神話>>,一開場,我馬上被那壯闊的場面所吸引.
蒙毅將軍,騎著他的黑風,身受著護送麗妃的使命,一段迂回曲折的故事,一個神話開始了...不能擺脫的封建禮節,封建教義,深深相愛的蒙毅和麗妃,始終不能過上幸福的生活...
一個千年的承諾,一個千年的等候,麗妃為了她的愛,她的夢想,始終沒有放棄,就算知道了jack不是蒙毅的時候,她也沒放棄,她還是相信蒙毅沒死,放棄了可以逃生的機會,繼續留在那個將毀的天宮里,等待她的愛人,堅守她的承諾...
一個千年的故事,一個永不放棄的夢...
但愿自己也能為了自己的夢,為了自己所愛的人,堅持下去,永不放棄!
解開我 最神秘的等待
星星墜落 風在吹動
終于再將你擁入懷中
兩顆心顫抖
相信我 不變的真心
千年等待 有我承諾
無論經過多少的寒冬
我決不放手
現在緊抓住我的手 閉上眼睛
請你回想起過去我們戀愛的日子
我們是因為太愛
所以更使得我們痛苦
我們連“愛你“這句話都無法講
成:每一夜 被心痛穿越
思念永沒有終點
早習慣了孤獨像隨
我微笑面對
相信我 我選擇等待
再多苦痛也不閃躲
只有你的溫柔能解救
無邊的冷漠
現在緊抓住我的手 閉上眼睛
請你回想起過去我們戀愛的日子
我們是因為太愛
所以更使得我們痛苦
我們連“愛你“這句話都無法講
讓愛成為你我心中
那永遠盛開的花
穿越時空絕不低頭 永不放棄的夢
我們是因為太愛
所以更使得我們痛苦
我們連“愛你“這句話都無法講
讓愛成為你我心中
那永遠盛開的花
我們千萬不要忘記 我們的約定
唯有真愛追隨你我
穿越無盡時空
我們連“愛你“這句話都無法講
愛是心中唯一不變美麗的神話
posted @
2006-03-12 17:41 豪 閱讀(251) |
評論 (0) |
編輯 收藏
原題:
滑雪
Time Limit:1000MS Memory Limit:65536K
Description
Michael喜歡滑雪百這并不奇怪, 因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待升降機來載你。Michael想知道載一個區域中最長底滑坡。區域由一個二維數組給出。數組的每個數字代表點的高度。下面是一個例子
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當然25-24-23-...-3-2-1更長。事實上,這是最長的一條。
Input
輸入的第一行表示區域的行數R和列數C(1 <= R,C <= 100)。下面是R行,每行有C個整數,代表高度h,0<=h<=10000。
Output
輸出最長區域的長度。
我提交的程序:
#include<iostream>
using namespace std;
const int MAX = 102;
struct pos
{
int i,j,p;//i->行;j->列;p->來源方向
};
int path(int [MAX][MAX],int [MAX][MAX],int[][MAX],int,int);
int main()
{
int input[MAX][MAX];
int result[MAX][MAX];
int status[MAX][MAX];
int m,n;
int i,j;
int max,ans;
cin>>m>>n;
for (i = 0; i<=m+1; i++)
for (j = 0; j<=n+1; j++)
{
input[i][j] = 10001;
result[i][j] = 0;
status[i][j] = 0;
}
for (i = 1; i<=m; i++)
for (j = 1; j<=n; j++)
{
cin>>input[i][j];
}
for (i = 1; i<=m; i++)
for (j = 1; j<=n; j++)
path(input,result,status,i,j);
max = 0;
for (i = 1; i<=m; i++)
for (j = 1; j<=n; j++)
if (max<result[i][j])
max = result[i][j];
cout<<max<<endl;
return 0;
}
int path(int input[MAX][MAX],int result[MAX][MAX],int status[MAX][MAX],int i,int j)
{
pos pack[MAX*MAX];
int max,g,h;
int ii;
int top = 0;
int p = 0;
int incr[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};//增量表
//初始化
if (result[i][j]>0)
{
return 0;
}
else
{
pack[top].i = i;
pack[top].j = j;
pack[top].p = p;
status[i][j] = -1;
}
while (top>=0||p<4)
{
if (p<4)
{
g = pack[top].i+incr[p][0];
h = pack[top].j+incr[p][1];
//判斷是否合法
if (input[pack[top].i][pack[top].j]>input[g][h])
{
if (result[g][h]>0||status[g][h]==-1)//
p++;
else
{
//進棧
top++;
pack[top].i = g;
pack[top].j = h;
pack[top].p = p;
status[g][h] = -1;
p = 0;
}
}//合法
else
{
p++;
}
}
else//p==4時
{
max = 0;
for (ii = 0; ii<4; ii++)//四個方向
{
g = pack[top].i+incr[ii][0];
h = pack[top].j+incr[ii][1];
if (input[pack[top].i][pack[top].j]>input[g][h]&&max<result[g][h])
max = result[g][h];
}
result[pack[top].i][pack[top].j] = max+1;
top--;//回溯
p = pack[top].p+1;
}
}
return 0;
}
此題用到了回溯,和動態規劃,也是經典,推薦acmer做做.歡迎交流:)
posted @
2006-03-01 21:50 豪 閱讀(2192) |
評論 (3) |
編輯 收藏