• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 20,  comments - 13,  trackbacks - 0

            解決問題:
            N個男的和M個女的,已知道每個男的只能接受哪些女的,求最多能夠匹配多少對情侶?

            思路:
            1.只要求出有多少個男的找到對象即可。
            2.遍歷所有男的,對于每個男的做以下處理(3~5),最后進(jìn)入6
            3.隨便找一個他能夠接受的女的,判斷這個女的是否被“挑選”過了,沒挑選過的則設(shè)置為挑選并進(jìn)入4,否則繼續(xù)找下一個女的,找遍所有都是挑選過的則進(jìn)入5
            4.判斷這個女的是否有男朋友了,沒有就直接和上述的男的進(jìn)行匹配,如果有的話(假設(shè)她的男朋友是A),則對A進(jìn)行3的操作,如果該操作返回的是真,則說明這個女的可以和男的匹配,而A和另外的人匹配。返回真。
            5.返回假
            6.如果該男的找到女的,則最大匹配數(shù)+1.

            沒說清楚,配合代碼吧,很簡單的一個模板。

            #include <stdio.h>
            #include 
            <string.h>

            int n,m;
            int sum;
            int p[201];
            int b[201];
            int map[201][201];

            bool path(int cow)
            {
                
            int i;
                
            for(i=1;i<=m;i++)
                
            {
                    
            if(b[i]==0 && map[cow][i] == 1)
                    
            {
                        b[i] 
            = 1;
                        
            if(p[i]==0  || path(p[i]))
                        
            {
                            p[i]
            =cow;
                            
            return true;
                        }

                    }

                }

                
            return false;
            }


            int main()
            {
                
            int i,j;
                
            while(scanf("%d%d",&n,&m)!=EOF)
                
            {
                    sum
            =0;
                    memset(map,
            0,sizeof(map));
                    memset(p,
            0,sizeof(p));
                    
            for(i=1;i<=n;i++)
                    
            {
                        
            int a,b;
                        scanf(
            "%d",&a);
                        
            for(j=1;j<=a;j++)
                        
            {
                            scanf(
            "%d",&b);
                            map[i][b] 
            = 1;
                        }

                    }

                    
            for(i=1;i<=n;i++)
                    
            {
                        memset(b,
            0,sizeof(b));
                        
            if(path(i))
                            sum
            ++;
                    }

                    printf(
            "%d\n",sum);
                }

                
            return 0;
            }


            下面嘗試用鄰接表來解決類似的題目,但是如果不釋放內(nèi)存的話,會MLE,而通過free釋放內(nèi)存又會出現(xiàn)TLE錯誤,太囧了。。。良智說用STL的vector應(yīng)該可以處理這個問題,回頭再用vector,今天先發(fā)free的做法,雖然過不了~~

             

            #include <stdio.h>
            #include 
            <string.h>
            #include 
            <stdlib.h>

            struct edge{
                
            int to;
                edge
            * next;
            };

            edge list[
            101];

            int p,n;
            int par[301];
            int b[301];
            struct edge* temp;
            struct edge* e;

            bool path(int person)
            {
                
            struct edge* e = list[person].next;
                
            while(e)
                {
                    
            if(b[e->to]==0)
                    {
                        b[e
            ->to] = 1;
                        
            if(par[e->to]==0 || path(par[e->to]))
                        {
                            par[e
            ->to]=person;
                        
            //    printf("%d__%d\n",e->to,par[e->to]);
                            return true;
                        }
                    }
                    e 
            = e->next;
                }
                
            return false;
            }

            int main()
            {
                
            int i,j;
                
            int a,t2;
                
            int t;
                
            while(scanf("%d",&t)!=EOF)
                {
                    
            while(t--)
                    {
                        scanf(
            "%d%d",&p,&n);
                        {
                            
            int ans = 0;
                            
            //memset(map,0,sizeof(map));
                            memset(par,0,sizeof(par));
                            
            for(i=1;i<=p;i++)
                            {
                                scanf(
            "%d",&a);
                                
            //list[i] = (struct edge*)malloc(sizeof(edge));
                                struct edge* head = (&list[i]);
                                e 
            = head;
                                
            while(a--)
                                {
                                    scanf(
            "%d",&t2);
                                    temp 
            = (struct edge*)malloc(sizeof(edge));
                                    temp
            ->to = t2;
                                    e
            ->next = temp;
                                    e 
            = temp;
                                }
                                e
            ->next = NULL;
                                e 
            = head;
                                
            /*
                                while(e)
                                {
                                    printf("%d__%d\n",e->from,e->to);
                                    e=e->next;
                                }
            */
                            }

                            
            for(i=1;i<=p;i++)
                            {
                                memset(b,
            0,sizeof(b));
                                
            if(path(i))
                                {
                                    ans
            ++;
                                }
                                
            else
                                {
                                    printf(
            "NO\n");
                                    
            break;
                                }
                            }
                            
            if(ans==p)
                                printf(
            "YES\n");
                            
            for(i=1;i<=p;i++)
                            {
                                e 
            = list[i].next;
                                
            while(e)
                                {
                                    temp 
            = e;
                                    e
            =e->next;
                                    free(temp);
                                }
                            }
                        }
                    }
                }
                
            return 0;
            }

            posted @ 2010-05-16 00:56 ACong 閱讀(191) | 評論 (0)編輯 收藏
            如果我們只是做一個單機(jī)版的swf,與世隔絕,那么完全不會接觸到接下來我們要說的這么多東西。。??梢娞岣邔δ沩椖康囊笫鞘鼓銓W(xué)習(xí)更多知識的方法。

            最常見的,我們有這樣一個主swf(為了簡單說明,再假設(shè)只有這么一個swf),另外我們有很多資源:jpg,png,xml,txt,swf等等,我們將之放在一個文件夾Resource下,然后將Resource和主swf放在同一個目錄下,然后我們通過這個swf加載、訪問這些資源,我們發(fā)現(xiàn),非常沒有問題。

            然而,當(dāng)我們最終需要將這個swf放在網(wǎng)頁上,并且將那些資源都放在網(wǎng)頁上,那么他們最好還是跟本地一樣的文件結(jié)構(gòu)存放,但是我們知道,網(wǎng)頁上的swf肯定不會自己跑出來顯示,肯定是要網(wǎng)頁來加載他,在網(wǎng)頁中通過"***.swf?p=...&p2=.."這樣的方式來調(diào)用這個swf和傳參數(shù)。如果這個網(wǎng)頁也是和swf放在同一個文件夾下,那也是沒問題的??墒俏覀冇锌赡軙泻芏噙@樣的網(wǎng)頁,都放在一個文件夾很難管理,于是我們將他們放在不同的文件,這就會導(dǎo)致這樣的問題:A網(wǎng)頁是放在"../1/2/A",B網(wǎng)頁是"../5/5/B",那么URLRequest的默認(rèn)路徑是哪個呢?是主swf所在的位置么?錯,其實(shí)是看具體調(diào)用它的網(wǎng)頁的地址,例如A調(diào)用時,URLRequest默認(rèn)路徑是"../1/2/",這樣的話,如果我們URLRequest()時只會在A或B下面找,而不會在swf所在的目錄中找,自然找不到。所以我們的做法是:獲得主swf的絕對路徑,將之作為URLRequest的路徑。要想獲得該swf的絕對路徑,可以這樣:test = stage.loaderInfo.url; 另外我們要將文件名去掉:
            test .slice(0,test.lastIndexOf("/")+1);理論上這在本機(jī)上也行得通,但是實(shí)際上是:顯示安全沙箱出錯或者是加載資源出錯。為什么呢?

            看看這個例子就知道了:
            在本機(jī)上,我們運(yùn)行swf,得到的test的值為file:///C://test/test.swf,路徑也就是file:///C://test/
            在本機(jī)上,我們運(yùn)行同個目錄下的html文件,發(fā)現(xiàn)沙箱問題、加載問題等等問題,test的值是file://C:\test\,這就難怪他找不到了

            于是我們要改成:
            test .slice(0,test.lastIndexOf("\\")+1);  注意,前面的\只是轉(zhuǎn)義字符,實(shí)際上就是讓路徑遇到最后一個"\"時截止。這樣的話按道理本機(jī)運(yùn)行swf會有問題,但是實(shí)際上卻是沒有問題。。。

            由于之前這個問題一直纏繞著我,導(dǎo)致我將它和安全沙箱問題混淆了,以為安全沙箱是多么恐怖的事情。

            其實(shí)安全沙箱很簡單:
            當(dāng)兩個不同文件夾下面的文件(這兩個文件至少一個是swf)要通信時,會出現(xiàn)安全沙箱問題??捎孟旅娴娜我庖粋€方法解決:
            1.在swf里面通過Security.allowDomain("另一個文件的地址和名字");
            2.在另一個文件所在文件夾下建一個crossdomain.xml,里面寫上:
                <cross-domain-policy><allow-access-from domain="允許訪問的對方的地址和名字" /></cross-domain-policy>
            3.如果這兩個文件中一個是網(wǎng)頁的話,可以在網(wǎng)頁調(diào)用swf的標(biāo)簽處加上:allowScriptAccess="允許訪問的對方的地址和名字"
            4.萬不得已、僅在平時調(diào)試時:在C:\windows\system32\Macromed\Flash\FlashPlayerTrust 下面,新建一個隨便的txt文件,里面將你要設(shè)置為同個域的文件名(包括路徑),每個一行寫在里面,然后將文件改后綴為.cfg(其實(shí)txt應(yīng)該也沒問題)。



            posted @ 2010-05-14 17:40 ACong 閱讀(763) | 評論 (0)編輯 收藏
            1.一個fla想要使用另一個fla的庫元件,方法是文件-》導(dǎo)入-》打開外部庫,然后就可以將自己想要用到的新元件拖到正在使用的fla中了。

            2.當(dāng)項目要更新資源的時候,可以通過上述方法,然后用新元件覆蓋掉舊元件,方法很笨重:改掉原來元件A的名字,將新元件改為元件A原來的名字,這種只適用于需要導(dǎo)出為AS對象時,如果只是普通元件,并且這個元件有被其他地方引用到,那么Flash表現(xiàn)得很智能,當(dāng)你修改一個元件時,會把其他調(diào)用到他的地方也隨之改動,解決方案也很笨重,到那個元件下面,點(diǎn)編輯,選中元件,點(diǎn)左邊屬性里面的更換,換為新的元件。

            3.關(guān)于遮罩:遮罩就是畫一個形狀,然后將一堆東西放在這個層下面,那么這個形狀的部分都是透明的,大家看得到,其他部分都是非透明的,大家看不到。如果你想將里面一個圖層的東西跟遮罩分開,只需要將它移到遮罩外并且是下邊(上邊的話我會遇到問題。。)

            4.關(guān)于AS代碼和Flash庫元件的分離問題:到底是要用庫元件呢,還是要用代碼中的對象好呢?到底是要在庫元件中調(diào)好位置,還是在代碼中調(diào)好位置好呢?到底一個混合的元件里面,那些東西該用代碼,那些東西該用CS4呢?

            posted @ 2010-05-13 16:12 ACong 閱讀(350) | 評論 (1)編輯 收藏
            (本文摘自http://hi.baidu.com/flex101/blog/item/f8a87bf7c21d0ed2f3d38518.html)
            在AS中使用json其實(shí)并不是一個必須或是很好的選擇,因?yàn)锳S對xml的解析已經(jīng)很不錯了,但是為什么可以考慮使用 json呢,有以下幾點(diǎn):

            json是介于單純的文本方式(如:

            • firstName=Brett&lastName=McLaughlin& email=brett@newInstance.com)和xml(<request><firstName>Brett& lt;/firstName><lastName>McLaughlin< /lastName><email>brett@newInstance.com</email>< /request>)中間的一種格式,他具有文本和xml的中性優(yōu)勢:數(shù)據(jù)量小和清晰的數(shù)據(jù)格式。
            • json是JavaScript Object Notation的簡寫,那么意思就是說他是來自于javascript的東西。因?yàn)楝F(xiàn)在ajax的流行,大部分網(wǎng)站會采用ajax的模式和構(gòu)架,那么 json會是一個數(shù)據(jù)傳輸?shù)氖走x(文本方式太簡單,要是大數(shù)據(jù)量的時候無法理解,xml的方式數(shù)據(jù)量大,在解析的時候會增加服務(wù)器負(fù)擔(dān)),那么要是一個網(wǎng) 站從ajax構(gòu)架的基礎(chǔ)上出一個flex/flash版的界面的時候使用json會最少地減少服務(wù)器端的程序改動。
            • 服務(wù)器端現(xiàn)在有成熟的JSON解析代碼(因?yàn)镴SON運(yùn)用太廣泛了),那么在開發(fā)的時候也不用擔(dān)心服務(wù)器 端的解析。
            下面就介紹一下adobe的官方的json類的用法

            下面是教程,比較簡單:
            1、服務(wù)器端來的json
            怎么樣獲得服務(wù)器端的json我就不說了吧(就是通訊),那么得到的應(yīng)該是一個字符串,存入變量serverJSON,使用方式如下:
            程序代碼 程序代碼

            import json.*;

            //json格式字符串 存入變量:serverJSON;
            var serverJSON:String = '{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}'

            //開始使用
            var json:Object = new Object();
            json = JSON.decode(serverJSON);
            trace(json.programmers[0].firstName);//輸出:Brett;

            json就是一個對象了,簡單吧。
            不是吧這么簡單。其實(shí)轉(zhuǎn)變后就成為一個對象了,可以通過點(diǎn)語法來訪問這些值了。XML靠邊去。

            2、本地對象做成JSON
            你要是能自己拼出JSON字符串也可以,不過我們是在面向?qū)ο蟮氖澜绨?,那么我們都是對象啊,到時候?qū)ο笾苯泳涂梢詠碛昧恕?br> 舉一個例子:
            程序代碼 程序代碼

            import json.*;
            var myObject:Object = new Object();
            myObject.ab = "adfsdf";
            myObject.cd = Math.random();
            trace(JSON.encode( myObject ));//輸出:{"ab":"adfsdf","cd":0.0599129400216043}


            這樣就可以給服務(wù)器了。
            總結(jié):就兩個方法,JSON.decode(String),JSON.encode(Object),有這么簡單的方式實(shí)現(xiàn)傳輸量小,而且簡單的數(shù)據(jù)格 式,我們?yōu)槭裁催€不用呢?
            其實(shí)XML自然也有他自己的強(qiáng)勢,當(dāng)一個結(jié)構(gòu)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)出現(xiàn)的時候,這個時候JSON就很難搞定了,XML就是首選了。


            posted @ 2010-05-11 15:50 ACong 閱讀(2148) | 評論 (0)編輯 收藏
            前提當(dāng)然是安裝了SVN。

            然后,最簡單的方法是隨便新建一個文件夾,然后右鍵-》SVN-》在此建立檔案庫 這樣就創(chuàng)建好了以后所有版本存放的地方了。

            然后到項目以后要工作的地方,新建文件夾,檢出,檢出的地址就填file:///后面加上上面說的檔案庫的路徑,即可。


            平時做的項目都是本機(jī)上調(diào)試的,可是一旦我們的swf要放到服務(wù)器上,然后訪問它,這個時候出錯了,我們想要看到各種輸出信息,有幾種方法:
            1.在swf中多做幾個TextField,動態(tài)輸出各種輸出信息。
            2.通過拋出異常來找出問題。
            3.遠(yuǎn)程調(diào)試swf。方法是:在發(fā)布SWF時候,發(fā)布設(shè)置那里勾選“遠(yuǎn)程調(diào)試”,然后在FlashIDE里面,點(diǎn)擊上面的調(diào)試-》遠(yuǎn)程調(diào)試-》選擇AS3.0。然后就會等待和網(wǎng)站的連接。這個時侯訪問那個swf,然后右鍵就會發(fā)現(xiàn)多了個調(diào)試器的選項。(請確保你的播放器是裝了debug版本的,如果是傲游、IE、FireFox之類的瀏覽器,是要安裝相應(yīng)的插件。)
            4.有些瀏覽器的某些插件是可以直接就在瀏覽器上面trace出輸出信息的。

            將Flex項目(.zip格式)導(dǎo)入FB 3的方法:(前提是裝了阿帕奇)
            File-》Import-》找到那個.zip文件-》next-》隨便填,待會改~~

            在左邊工作區(qū)看到項目了,右鍵-》屬性-》找到Server端-》將Root folder地址填寫的是你本機(jī)上阿帕奇下面新建的一個項目文件夾,Root URL則是對應(yīng)于網(wǎng)上的地址(類似于IIS的虛擬目錄中具體地址和網(wǎng)絡(luò)地址的對應(yīng)),可以填http://127.0.0.1/目錄名
            這樣子就會將.zip生成的各個文件存放到Root folder下面,然后當(dāng)你調(diào)試時,就會通過Root URL在瀏覽器中打開。
            posted @ 2010-05-11 13:33 ACong 閱讀(986) | 評論 (0)編輯 收藏
            對于沒有寫過很多面向?qū)ο蟪绦虻娜藖碚f,TC是很難入門的,太多東西和C不同了。

            好在我已經(jīng)接觸了很多面向?qū)ο?,所以參考下別人的做法,順帶溫習(xí)了下VC和STL,交了一道300分的題,拿了100分。。。

            posted @ 2010-05-10 22:38 ACong 閱讀(143) | 評論 (0)編輯 收藏
            原來沒想著能去觀摩比賽的,比賽前幾天,才被告知能夠隨大隊一起去。

            周六去注冊報名試機(jī)和做阿里巴巴的PK,我沒事做,在教練室閑著。其他高校很多人留在那里做阿里巴巴的PK,我們懶得做,跑去玩和吃雪糕了,等到鐘了就去吃自助餐,吃得好飽,據(jù)郭老說,人均標(biāo)準(zhǔn)是60元??偟膩碚f,我們不是去吃東西,我們是去學(xué)習(xí)、進(jìn)步、交流的,我根本不記得我吃了七八個肉丸、十多只茶葉蝦、四五塊鮮嫩雞肉、四個小蛋糕、一碟拉皮、豬骨玉米湯、紅棗蓮子湯、一碗豆芽豬紅、牛腩、香蕉西瓜番茄若干、可樂兩杯、雪碧一杯、紫番薯兩塊,我只記得人山人海以及阿里巴巴PK比賽的趣味性。

            第二天比賽,早早過去,在教練室一邊看他們比賽,一邊記錄下現(xiàn)場報告,可惜3個小時后電腦沒電了,所有插座都被老師用光了~~只能看起題目來,發(fā)現(xiàn)我自己來做,也是只能做出3道。。。囧

            很可惜的是,79名就能夠拿到三等獎,良智他們隊85名,主要是在K題提交了幾次,或者說E題沒做出來。其他隊更是在120名之后~

            事后評判長的題目分析是這樣的:
            A題:水題,全場都過。
            B題:水題,僅有幾支隊伍沒過。
            C題:網(wǎng)絡(luò)流+二分答案。
            D題:
            E題:右上角開始搜索。
            F題:中國剩余定理變型+高精度。
            G題:博弈,判斷兩端端點(diǎn)或者用SG理論。
            H題:
            I題:
            J題:枚舉、DP都行。
            K題:BFS、智權(quán)的最長路徑、DP都能過。
            椰子的弟弟他們隊伍拿到了十六名??粗鴪錾夏切┠锚劦呐H耍矣X得我們更應(yīng)該覺得熱血沸騰,想方設(shè)法超越他們。難道我們只想著看著別人在我們面前打機(jī)而看不過別人在我們面前拿獎?

            我相信他們在接下來的區(qū)域賽能夠表現(xiàn)得很好。那也是能夠讓學(xué)校矚目的機(jī)會。實(shí)在不行就當(dāng)是次旅行也行吧?據(jù)說最近的賽區(qū)是在武漢。

            以上是我們學(xué)校的比賽總結(jié),下面看看本次冠軍隊伍的總結(jié),轉(zhuǎn)自中大論壇逸仙時空:
            http://argo.sysu.edu.cn/bbscon?board=ACMICPC&file=M.1273582283.A

            發(fā)信人: litexavier (Xavier), 信區(qū): ACMICPC
            標(biāo)  題: GDCPC 2010 Summary @ SYSU_Stellation
            發(fā)信站: 逸仙時空 Yat-Sen Channel (Tue May 11 20:51:23 2010)

            自blog截出來的,砍掉了一大段東西,將就著看吧。
            另外已將題解劇透,有想明年做GDCPC2010的忽略此文好了。

            ——ANALYSIS——

            按照規(guī)矩,先來說下這次比賽的簡單題解:

            A: 在n x n x n的盒子中,放m x m x m的木塊,問最多放多少塊木塊。
            答案應(yīng)該很顯然吧。

            B:一開始序列S={1..N},P={},然后每次P = P + S,S刪掉最小的M個元素,如此循環(huán),直
            到S={},問P中第K個元素是什么。
            簡單的計數(shù)問題。等差數(shù)列解之即可。

            C:給出M種產(chǎn)品,以及每種產(chǎn)品的個數(shù)。給出N個檢查員,每個檢查員能檢查給定種類中若
            干產(chǎn)品的一個,但是每個產(chǎn)品只能由一個檢查員檢查。并且檢查每個產(chǎn)品的時間是一樣的
            。問最少花費(fèi)多少時間才能檢查完所有產(chǎn)品。
            構(gòu)造一個流量圖:如果檢查員A能夠檢查產(chǎn)品B,那么在A,B間連一條流量為無窮大的邊,所
            有產(chǎn)品到匯點(diǎn)連一條以產(chǎn)品個數(shù)為流量的邊。那么,如果已知最少花費(fèi)時間為T,那么就從
            源點(diǎn)連一條流量為T的邊到每個檢查員上。這個圖的意義很明顯:“所有檢查員在T時間內(nèi)
            檢查完所有產(chǎn)品”的充分必要條件為“該圖的最大流等于產(chǎn)品總數(shù)”。那么,接下來只要
            二分T即可。

            D:給出N個點(diǎn),試確定兩個正方形,滿足:(1)所有給定點(diǎn)都在某個正方形內(nèi);(2)正方
            形的中心(對角線連線的交點(diǎn))必須在某個給定點(diǎn)上;(3)最大的正方形的面積最小。

            二分正方形的邊長L。然后根據(jù)鬼才知道的某個單調(diào)性掃描判斷出用兩個長度為L的正方形
            能不能滿足題設(shè)。

            E:楊氏矩陣上的一些操作。
            做法都固定了吧。

            F:給出A和B兩個序列,試找出一個最大的Y和最小的X,滿足X = Ai ( mod Bi * Y ),for
            each i。
            首先因?yàn)?X = Ai + Ki * Bi * Y = Aj + Kj * Bj * Y,于是必有 Ai = Aj ( mod (Bi,B
            j)*Y ),即 (Bi,Bj)*Y | Ai-Aj。于是Y被確定下來,接下來的事情就只是中國剩余定理了
            。

            G:給定一個無向圖G。問經(jīng)過G中給定的X個點(diǎn)和Y條邊的最小花費(fèi)是多少。
            由于X和Y很?。╔+Y<16),于是一個簡單狀態(tài)壓縮動態(tài)規(guī)劃即可。注:別忘了做預(yù)處理。


            H:給出N個總長度不超過300,000的關(guān)鍵字。并且,給出M個文本,每個文本的長度為L。對
            于每個文本,求出該文本出現(xiàn)的關(guān)鍵字個數(shù)S,然后用S替代下一個文本的"0",并輸出S。

            經(jīng)典自動機(jī)。需要注意的是要延遲處理關(guān)鍵字個數(shù)的統(tǒng)計,總之,是個細(xì)節(jié)題,要仔細(xì)分
            析每步的復(fù)雜度。

            I:無愛的博弈題啊。
            SG值可以搞定,大概。不知道SG值是何的可以搜Game Theory這書。

            J:給出N個二元組(v,c),從中選出K個,并確定順序,使得給定函數(shù)的值最大。注意:c <
             1。
            按照 v / (1-c) 排序。然后順序就確定了,之后就是一個簡單的動態(tài)規(guī)劃問題了。

            K:打地鼠游戲。已知地鼠出現(xiàn)的時間,并且規(guī)定錘子每單位時間只能移動到相鄰的地洞上
            ,并且擊打操作是不需要時間的。問最多打到幾只地鼠。
            簡單的動態(tài)規(guī)劃題目。

            ——????——

            開場后,老樣子,db從A開始,我從K開始,趙牛中間。db第一時間讀完A題,并很快開始c
            oding。我讀完了K,算了下復(fù)雜度,剛好的樣子。于是又一道水題到手了。db交A了之后,
            我開始敲K。不久之后A返回Yes,然后db的B就在隊列中了。敲完的K的代碼沒過樣例,離線
            debug了下,發(fā)現(xiàn)是初始化狀態(tài)搞錯了。改之,返回第二個Yes。再來db連續(xù)開了B,E,C三題
            ,都是很順利的過掉了。

            我下來之后,趙牛扔了D給我。這時候看了下時間——才過了一個半小時。比賽的時候還未
            知這是一個大坑來著。就這樣,我一直想,一直想,一直想……頭腦各種混亂……

            拋開這個僵尸進(jìn)程不談,我們來說趙牛。

            趙牛在閱遍大半版的題目后發(fā)現(xiàn)了第一個看起來能做的題目——I。才推了不到一會,趙牛
            很堅定的說:“我來敲I ”。I就這樣accepted了。再之后看時間還有好久,我就直接把一
            個看起來像是動態(tài)規(guī)劃的題目J(不過有個序的問題需要證明)扔給了趙牛。他看后沒等我
            反應(yīng),直接上去搶機(jī)器了。不過很詭異的是,直到趙牛敲完J,還沒人過這個所謂的簡單題
            。到趙牛剛要交時,才發(fā)現(xiàn)第一個accepted這題的隊伍。然后,不出所料,J一次提交即返
            回Yes。

            因?yàn)檫@時我們隊伍已經(jīng)8題,領(lǐng)先第二名2題之多。所以剩下的時間就交給趙牛研究他的F。
            雖然趙牛英勇無比地再次在現(xiàn)場推導(dǎo)出中國剩余定理的公式,但是難奈BigCowZhang的陰險
            的數(shù)據(jù)使然,趙牛陷入了苦戰(zhàn)。

            回頭看db這邊。

            db投出的超高速直線球三好一壞不僅起到了穩(wěn)定軍心的作用,同時我們也確立的巨大的罰
            時上的領(lǐng)先優(yōu)勢。他下來之后,我將 H題的題意說給他看,并說了下大概做法。當(dāng)然,我
            相信他也是會的——畢竟雅加達(dá)那次比賽我們就栽倒在一道差不多的題目上面。在三次TL
            E之后,H終于順利返回Yes。3個小時之后的第8道題終于accepted。

            然后也不知是我們太放松還是如何,我們一直堅信G是一個節(jié)點(diǎn)規(guī)模為100的TSP問題。于是
            我便拉db來跳火坑(D 題)。

            期間我們許久沒出題,甚至郭老師都忍不住送食物過來了。

            最后半個小時,雖然db回過頭看了下G發(fā)現(xiàn)我們?nèi)x錯題了,然則為時晚矣。趙牛的F也被
            完美的卡到死。

            至于D題?……(……(……))

            posted @ 2010-05-10 21:33 ACong 閱讀(940) | 評論 (8)編輯 收藏
            已確定人員:
            ACong,Lemo(已通知),小七(已通知),Jialiang(已通知),打醬油(已通知),小熊夫婦,Succeed(已通知)

            全部人員最終都出席了,另外小七找多了Kuangcao加入,合計9人。


            流程安排:
            早上9點(diǎn)起床,10點(diǎn)在華師地鐵口集合。(決定去客村好又多買燒烤的東西,結(jié)果11點(diǎn)30分才買完。)坐地鐵三號線經(jīng)過8站到達(dá)地鐵市橋站B出入口下,到光明北路站(番禺)轉(zhuǎn)乘番禺16路(坐10站)到大夫山森林公園總站(南門)下。(由于對光明北路的不熟悉,導(dǎo)致花了耽擱了30分鐘)

            預(yù)計11點(diǎn)到大夫山門口,一起去租自行車(由ACong負(fù)責(zé)租車事宜)(1點(diǎn)才到達(dá)大夫山,而且居然是南門~南門不是正門,我們只能坐觀光車去燒烤場)
            11點(diǎn)30分,從南門出發(fā),開始向山上燒烤場進(jìn)軍(實(shí)際上是從北門坐觀光車去燒烤場)
            12點(diǎn),到達(dá)燒烤場,開始燒烤(由于不能夠預(yù)定燒烤場,所以要么早些去訂場,要么晚點(diǎn)去)
            1點(diǎn),燒烤完,開始飯后慢慢騎車活動。(事實(shí)上是1點(diǎn)30分開始燒烤,2點(diǎn)30分才燒烤完)
            1點(diǎn)30分,找到?jīng)隹煊州^安靜的地方,開始玩三國殺(對于不玩的家屬,可以讓他們一起騎自行車去玩,放風(fēng)箏、踢毽子、打羽毛球都可以)
            4點(diǎn)30分,自由活動,并約好5點(diǎn)30分在南門集合。(事實(shí)上是從2點(diǎn)30分一直殺到5點(diǎn),然后坐觀光車回南門,再坐公交車回去)
            6點(diǎn)一起到附近的餐廳吃飯(中午燒烤大家吃得很飽,都不想吃晚飯,回去睡覺了,我們另外組織了部分人晚上打DOTA)
            7點(diǎn)回家。
            8點(diǎn)到家。

            本次活動總結(jié):
            1.日期定在5.3這個相對于5.1和5.2來說人較少的日子,是很正確的,而且Lemo說5.3的天氣會很好,果然。

            2.人員確定方面,由于我找的都是平時很玩得來的同事,所以在我打電話邀請他們的時候都很順利,果然本次出行全程都很愉快,歡聲笑語不斷。不過在燒烤的時候Lemo突然說到了公司各部門的重要性問題,導(dǎo)致有小小不愉快,小小怪責(zé)下他。另外基本上大家都很懶,又愛??幔豢咸釚|西,尤其是Lemo,全程空手,再次怪責(zé)下。

            3.一開始由于擔(dān)心這些懶散的家伙放我鴿子,就沒事先買好燒烤物品(而且也擔(dān)心提前太久買不新鮮),結(jié)果將采購物資的任務(wù)分配下去后,買肉的小分隊買了一大堆加好調(diào)料的食物~~火腿腸又買少了~不過總體來說食物剛剛夠,都吃完了又很飽。在這里還是要表揚(yáng)下大家的,嘿嘿。但是我由于也太就沒去大夫山燒烤了,居然不知道大夫山節(jié)假日燒烤有提供燒烤物品的。。結(jié)果我們買了一堆沒用到的。。。在這里記錄下,他們那里提供的有:
            木炭一箱+酒精一塊+燒烤網(wǎng)一張+燒烤叉8個+一次性碗8個左右+燒烤刷2個+報紙一份+火機(jī)一個+紙巾一卷。對于8個人左右的來說,已經(jīng)夠用了。另外我們買的能夠派上用處的有:
            長牙簽(用來串火腿、雞翅膀等的,買了兩包,只用了一包,因?yàn)楸旧碣I的肉串帶有木枝了)、燒烤汁(兩瓶,用了一瓶)、孜然粉(一瓶,用了一半,很好的調(diào)味料)、芝麻油(一瓶)、蜂蜜(一瓶,用了六分之一吧)。
            經(jīng)驗(yàn)教訓(xùn)+下次推薦:
            8個人的話,可以租一個單爐,100元(非節(jié)假日是40元但是沒送燒烤包),另外他們送一個上述的燒烤包,還是挺值的。另外自己再買:兩份報紙、一卷紙巾、一包長牙簽(這個還能當(dāng)筷子)、8個一次性碗、一條一次性杯子、火腿腸(雙匯火腿腸*2~3包,大根的那種,就是在街邊看到賣燒烤的人賣的那種,不要買玉米腸和雞肉腸)、超市里面腌制并且串好的肉串(24根~32根)、雞翅膀(8個~12個,這個烤失敗的概率較高,另外如果買的是一小塊的中翅,那要小心掉進(jìn)燒烤爐里面)、香菇(一盒12個左右,好吃好烤又便宜)、青菜或者尖椒等若干、孜然粉一瓶、燒烤汁一瓶、芝麻油一瓶、蜂蜜一小點(diǎn)(買一瓶可以用很多次了)。

            4.費(fèi)用合計:
            9*14元(來回車費(fèi))+300元(超市買燒烤物資)+100元(租燒烤爐)+3*9*2(坐觀光車)+36(中途買水)=126+300+100+29+36=591元。人均65元。由于車費(fèi)大多是自己出的,所以每人需要交52元。哇塞。。這個比起唱K可是便宜多了。。。而且又健康又好玩得多,呵呵。

            5.不足之處:
            個人點(diǎn)火功夫小白、個人調(diào)料功夫小白、個人帶路能力有待加強(qiáng)。(呃,畢竟本次走的路線是我以前沒走過的,囧)

            回想起來,5月2日早上,當(dāng)我看到窗臺照進(jìn)來的第一縷陽光時,我就對自己說:天氣這么好,一定要去大夫山。

            結(jié)果我承擔(dān)了這次活動的以下工作:
            人員召集和通知、流程安排、物質(zhì)清單設(shè)計、采購安排、路線安排。
            由Success和Kuangcao承擔(dān)了點(diǎn)火安排。
            由Kuangcao和小熊嫂子承擔(dān)了燒烤大廚工作。



            posted @ 2010-05-02 19:54 ACong 閱讀(347) | 評論 (0)編輯 收藏
            一、素材篇
            素材有三種,一種是美術(shù)提供的各種靜態(tài)圖片,對此我們要做的是將這些靜態(tài)圖片用腳本轉(zhuǎn)成swf為我們所用。另一種是在Flash創(chuàng)作工具(IDE)中自己創(chuàng)建,這部分需要用到的主要是FLash CS4的知識,如時間軸、圖層、遮罩、各種工具、補(bǔ)間、少數(shù)簡單動作等等。第三種是通過用AS3的繪圖API或者3D API去繪制資源,通常這種占內(nèi)存最小,并且擴(kuò)展性較強(qiáng),但是難度較高。

            獲得以及對素材的加工處理工具有PhotoShop+其腳本、Flash IDE+JSFL腳本、AS3幫助文檔

            通過PS的記錄動作可以執(zhí)行一些重復(fù)性事情。另外將圖片轉(zhuǎn)化為png-8的,可以減少將近一半以上的資源大小,代價是圖像邊緣有鋸齒,并且無半透明度。。

            二、代碼篇
            代碼分兩種,一種是插在時間軸上,一種是獨(dú)立做成類文檔。前者容易寫,但是擴(kuò)展和管理不好。后者易于管理、擴(kuò)展,邏輯清晰,但是和Flash IDE的交互不夠,通常我們會通過FB等其他開發(fā)工具來彌補(bǔ)這一點(diǎn)。

            編寫代碼的工具有Flash IDE中的Flash 文檔、Flash IDE中的AS 3文檔、Flash Builder 4(以前是叫做FLex Builder 3)、FDT(我用的是Eclipse)。

            三、結(jié)構(gòu)篇
            盡量用面向設(shè)計模式的思想去組織你的模塊。另外就是擁有個人的類庫。(算法類庫、3D類庫、圖形特效類庫、網(wǎng)絡(luò)通信類庫、內(nèi)存管理類庫、文本處理類庫、聲音編碼解碼類庫)。

            四、內(nèi)存篇
            通常一個單打格斗游戲,可以做到swf只有3M左右,占內(nèi)存不超過100M,而且動作相當(dāng)華麗。另外還有些通過矢量圖制作的Flash網(wǎng)頁無交互游戲,能夠達(dá)到接近0內(nèi)存的消耗,且總資源非常小。
            減少對內(nèi)存的消耗有這么些方法:
            1.盡量用矢量圖。
            2.對于圖片的話,可以通過BitmapByte格式來減少它存放在內(nèi)存的空間。
            3.對于資源是swf的話,它對內(nèi)存的消耗是這樣的:每張圖片長*寬*4/1024,也就是說如果你有一張1024*768的圖片,盡管由于你把背景設(shè)置為透明,使得圖片大小只有10K,但是通過Loader讀到內(nèi)存,他的大小是1024*768*4/1024約等于2.8M。增長了將近300倍。(估計原因是透明點(diǎn)也是會在Flash中保存的,類似于0Xff000000。)
            4.防止內(nèi)存泄露:當(dāng)對象不再需要的時候果斷置為null,每個偵聽器在它該remove的時候果斷remove,要刪除一個對象里面的所有子對象的所有引用,才能夠刪除該對象,定時調(diào)用GC執(zhí)行強(qiáng)制垃圾回收。一種方法是當(dāng)需要完全刪除該對象時,調(diào)用一個自定義函數(shù)rever,該函數(shù)將清空該對象的所有子對象、所有動態(tài)屬性、所有偵聽器。
            5.沒有用到的東西盡量少加載到swf中。
            6.對對象進(jìn)行引用時一定要想清楚。(局部變量如果被addChild到舞臺,也是會占內(nèi)存的)



            posted @ 2010-04-22 19:17 ACong 閱讀(175) | 評論 (0)編輯 收藏
            PKU上面的1077是經(jīng)典題目——八數(shù)碼,在《人工智能》這門課中是重點(diǎn)的研究對象,引領(lǐng)前面幾章的內(nèi)容,可見其在搜索方面的典型性。

            已知:3*3的格子,以及每個格子的數(shù)字(1~8和一個'x',兩兩不同),每次只能夠移動x那個格子,并且只能往左右上下四個方向移動
            目標(biāo):某種狀態(tài),在該題中為
                        1 2 3
                        4 5 6
                        7 8 x
            未知(所求):如何從給出的一個狀態(tài),經(jīng)過一系列的移動,到達(dá)目標(biāo)狀態(tài)

            解決問題從提出問題開始:
            1.已知和未知有啥關(guān)系?
            答:目標(biāo)狀態(tài)是由已知狀態(tài)一步步移到的。
            2.是否一定存在解呢?
            答:從題目得知,有時候會得不到解(當(dāng)僅僅只有兩個數(shù)字不在原來的位置上時無解)。
            3是否在以前遇到過類似的問題?
            答:象棋上馬的走法,從一個點(diǎn)到達(dá)目的點(diǎn)的搜索過程,因此考慮可以用類似的方法來尋找答案,也就是搜索。
            4.除了搜索還有其他方法可以解決這個問題么?
            答:暫時沒有人發(fā)現(xiàn),
            5.如何搜索?
            答:從起始位置開始,向四個方向嘗試,一旦往一個方向嘗試了,則要防止呆會又往原來的位置嘗試的問題,于是除了一開始外,其他的每次最多只能往3個方向的嘗試。
            6.如何判斷當(dāng)前狀態(tài)是否已經(jīng)是目標(biāo)狀態(tài)?
            答:每行每列都和目標(biāo)狀態(tài)的比較。

            好,我于是很快的寫出來一個DFS的程序(DFS不需要額外的空間,不需要記住狀態(tài)到達(dá)哪里,比BFS容易寫)
            運(yùn)行后,發(fā)現(xiàn)出錯,通過用斷點(diǎn)調(diào)試了一會后,處理了幾個小錯誤后,遇到一個問題:
            7.我的程序總是得不出結(jié)果。
            答:因?yàn)镈FS的話,你必須要確定他會到達(dá)一個終點(diǎn)就回溯,問題就出在我的程序不會出現(xiàn)無路可走的情況,因?yàn)樗粫袛喈?dāng)前狀態(tài)是否已經(jīng)是之前走過的,所以會一步循環(huán)走下去,甚至明明一步就能到達(dá)目的地,他還是要走無限遠(yuǎn)的路,直到程序被迫跳出。
            8.如何處理這個問題?
            答:既然是因?yàn)檫f歸的無限深度,那我們就給他一個深度極限,當(dāng)?shù)竭_(dá)這個深度時,就返回。接下來的問題是:
            9.這個深度該是多少?
            答:一個深度就代表一步,八數(shù)碼的問題最多需要走多少步就一定能夠到達(dá)目標(biāo)呢?(注意,是一定),如果這個深度開太小了,有可能找不到解,如果這個深度開太大了,又會讓程序不斷遞歸下去。所以需要自己試驗(yàn)。

            我先設(shè)了個100,發(fā)現(xiàn)可以得出結(jié)果,但是那個步數(shù)也就是100步左右(因?yàn)镈FS找到的路徑不是最短的,而是最靠近某一個方向的),和sample output的19步不同啊,于是我改成19步,結(jié)果出來的答案也是19步,只是和給出的不同,為了驗(yàn)證我的答案也是正確的,我撕了一張紙,在上面寫了個八數(shù)碼,并且按照我給出的步驟去走,最終確實(shí)到達(dá)目標(biāo)了,可見我的算法是正確的。

            10.求的不是最短步驟,能行么?
            答:再次檢查題目,發(fā)現(xiàn)并沒有要求最短路徑,并且題目顯示是Special Judge,可見應(yīng)該可以。

            最終提交時,我把深度定為500(因?yàn)槎?000時我自己的程序崩潰了),居然一次性過了,花費(fèi)的空間是208K,時間是 875MS,再看一個師弟的提交,空間是9816K,時間是438MS,可見DFS和BFS的區(qū)別。


            然后我又分別試了下將深度改為200,350,結(jié)果都是TLE,證明一個問題:

            有時候花費(fèi)較長的時間一次性找到一個解,比花費(fèi)較短的時間而多次找不到解,要來得快。

            posted @ 2010-04-06 21:19 ACong 閱讀(192) | 評論 (0)編輯 收藏
            僅列出標(biāo)題
            共2頁: 1 2 

            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            廣商豪杰

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久精品一区二区三区| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品无码专区久久久| 久久国产高清一区二区三区| 777米奇久久最新地址| 久久国产高潮流白浆免费观看| 亚洲午夜久久久影院| 老色鬼久久亚洲AV综合| 久久久精品人妻一区二区三区四 | 国产精品久久99| 久久精品麻豆日日躁夜夜躁| 乱亲女H秽乱长久久久| 久久精品国产久精国产| 国产精品熟女福利久久AV| 久久er国产精品免费观看8| 午夜福利91久久福利| 久久久一本精品99久久精品88| 精产国品久久一二三产区区别 | 伊人久久综合精品无码AV专区| 囯产精品久久久久久久久蜜桃| 一本色道久久88精品综合| 99久久无色码中文字幕| 久久久久久av无码免费看大片| 最新久久免费视频| 狠狠88综合久久久久综合网| 久久精品夜色噜噜亚洲A∨ | 一本色综合久久| 日韩精品久久无码人妻中文字幕| 久久久精品一区二区三区| 欧美精品福利视频一区二区三区久久久精品 | 亚洲精品无码久久久久去q| 国内精品久久久人妻中文字幕| 久久国产成人亚洲精品影院| 99久久精品免费看国产一区二区三区| 国产91久久精品一区二区| 亚洲欧美日韩精品久久亚洲区| 久久婷婷五月综合色高清| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久精品国产一区二区三区不卡 | 精品久久人人爽天天玩人人妻| 韩国免费A级毛片久久|