• <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>
            隨筆 - 40, 文章 - 0, 評論 - 19, 引用 - 0
            數(shù)據(jù)加載中……

            用好郵箱

            郵箱是很重要的工具,我使用QQ郵箱,除了在寢室網(wǎng)通連接過慢一直都很好用,呵呵,希望越做越好。
            Blog驗證碼: QQREADER8A9ED325C16B65D5

            posted @ 2010-04-01 19:38 hadn't 閱讀(204) | 評論 (0)編輯 收藏

            Hello Ophone

            Eclipse是個好環(huán)境,今天下載了Eclipse Classic 3.5.2 的版本,并配上了Jogl,vtk安裝了WST EMF GEF  插件
            Eclipse下運行Jogl:



             OPhone Development Tools
            Eclipse下運行ophone模擬器:
             
            運行自己寫的程序:


            posted @ 2010-03-29 23:25 hadn't 閱讀(187) | 評論 (0)編輯 收藏

            Ubuntu 顯示桌面快捷鍵

            CTRL+ALT+D

            若想更改成windows的習慣 如下操作:

            首先打開終端輸入:
              gconf-editor
            到“Apps->Metacity->Global keybingdings" 出找 “show desktop”編輯值為<Super>d
            即可。
            還可以修改其他相應鍵值,或者自定義快捷鍵詳見[url]http://www.wangchao.net.cn/bbsdetail_1786773.html[/url]

            posted @ 2009-09-01 16:47 hadn't 閱讀(12187) | 評論 (3)編輯 收藏

            UBUNTU JAVA 亂碼解決(轉(zhuǎn))

            在ubuntu 8.04里安裝java后,會發(fā)現(xiàn)所有java的gui都會亂碼,這是因為在ubuntu 8.04里uming.ttf變成了uming.ttc,而ubuntu里java默認的中文字體就是uming.ttf,所以只要獲得它就可以了,比如:



            sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/share/fonts/truetype/arphic/uming.ttf

            posted @ 2009-08-31 20:24 hadn't 閱讀(447) | 評論 (0)編輯 收藏

            TOJ 3345 Chinese Chess 二分匹配 匈牙利算法 擴展

            TOJ 3345 Chinese Chess http://acm.tju.edu.cn/toj/showp3345.html
            雙鏈表實習雙向鄰接表,正向圖反向圖,匈牙利匹配后,枚舉刪除匹配邊,兩邊做重新查找增廣路操作,如果都沒法查到則證明是重要邊,還原原匹配時候要注意細節(jié)。

            優(yōu)化1:求最大匹配時候先能匹配就匹配上。
            優(yōu)化2:標記已經(jīng)確定不是必要點的行和列 flag[]和flag2[]
            注意1:刪除匹配邊后 應在匹配邊的兩面點 分別查詢
            注意2:沒查到新匹配要還原匹配邊

            #include
            <stdio.h>
            #include
            <string.h>
            const int size2 = 100110;
            const int size1 = 10110;
            int n , m , k ;
            struct node{
                node 
            *p;
                node 
            *q;
                
            int v;
                
            int v2;
            };
            int val;

            node edg[size2];

            bool visit[size1];
            int pp[size1];
            bool flag[size1];
            bool flag2[size1];

            node 
            *g[size1];
            node 
            *g1[size1];

            int ppre[size1];
            int ppr[size1];

            int nxy[size1];
            inline 
            bool check(int x , int y , int fc){
                node 
            *now = g[x];
                
            while(now != NULL){
                    
            if(now->== y){
                        
            if(fc == 0)
                            
            return true;
                        
            if(fc == 1){
                            now
            ->= -1;
                            
            return true;
                        }
                        
            if(fc == 2){
                            now
            ->= val;
                            
            return true;
                        }
                    }
                    
            else{
                        now 
            = now->p;
                    }
                }
                
            return false;
            }

            inline 
            bool check2(int x , int y , int fc){
                node 
            *now = g1[x];
                
            while(now != NULL){
                    
            if(now->v2 == y){
                        
            if(fc == 0)
                            
            return true;
                        
            if(fc == 1){
                            now
            ->v2 = -1;
                            
            return true;
                        }
                        
            if(fc == 2){
                            now
            ->v2 = val;
                            
            return true;
                        }
                    }
                    
            else{
                        now 
            = now->q;
                    }
                }
                
            return false;
            }
            inline 
            bool find(int a){
                node 
            *now = g[a];
                
            while(now != NULL){
                         
            int i = now->v;
                         
            if(i != -1){
                             
            if(!visit[i] ){
                                visit[i] 
            = true;
                                
            if(pp[i] == -1 ||find(pp[i])){
                                    pp[i] 
            = a;
                                    nxy[a] 
            = i;
                                    
            return true;
                                }
                            }
                         }
                        now 
            = now->p;
                }
                
            return false;
            }

            inline 
            bool find2(int a){
                node 
            *now = g1[a];
                
            while(now != NULL){
                         
            int i = now->v2;
                         
            if(i != -1){
                             
            if(!visit[i] ){
                                visit[i] 
            = true;
                                
            if(nxy[i] == -1 ||find2(nxy[i])){
                                    nxy[i] 
            = a;
                                    pp[a] 
            = i;
                                    
            return true;
                                }
                            }
                         }
                        now 
            = now->q;
                }
                
            return false;
            }

            void output(){
                printf(
            "\n\n");
                
            forint i = 1 ; i <= m ; i++)
                    printf(
            "%d -> %d\n",pp[i],i);
                    printf(
            "\n");
                
            forint i = 1 ; i <= n ; i++)
                    printf(
            "%d -> %d\n",i,nxy[i]);
                printf(
            "\n\n");
            }

            void output1(int x){
                node 
            *now = g1[x];
                
            while(now != NULL){
                         
            int i = now->v2;

                         printf(
            "  %d",i);
                        now 
            = now->q;
                }
                printf(
            "\n");
            }

            int main(){
                    
            int a1,i,a2;
                    
            int _case = 0;
                    
            int num;
                    
            while(scanf("%d%d%d",&n,&m,&k)!=EOF){
                        num 
            = 0;
                        memset(g,
            0,sizeof(g));
                        memset(g1,
            0,sizeof(g1));
                        memset(pp,
            -1,sizeof(pp));
                        memset(nxy,
            -1,sizeof(nxy));
                        
            for(i = 1; i <= k ; i++){
                            scanf(
            "%d%d",&a1,&a2);
                            
            if(check(a1,a2,0)) continue;
                            edg[i].v 
            = a2;
                            edg[i].v2 
            = a1;
                            edg[i].p 
            = NULL;
                            edg[i].q 
            = NULL;

                            
            if(g[a1] == NULL){
                                g[a1] 
            = &edg[i];
                            }
            else{
                                edg[ppre[a1]].p 
            = &edg[i];
                            }

                            
            if(g1[a2] == NULL){
                                g1[a2] 
            = &edg[i];
                            }
            else{
                                edg[ppr[a2]].q 
            = &edg[i];
                            }

                            ppre[a1] 
            = i ;
                            ppr[a2] 
            = i ;

                            
            if(pp[a2] == -1 && nxy[a1] == -1){
                                pp[a2] 
            = a1;
                                nxy[a1] 
            = a2;
                                num
            ++;
                            }
                        }
                        
            for(i = 1 ; i <= m ; i++){
                            
            if(pp[i] == -1){
                                memset(visit,
            0,sizeof(visit));
                                
            if(find2(i)){
                                    num
            ++;
                                }
                            }
                        }
                        memset(flag,
            0,sizeof(flag));
                        memset(flag2,
            0,sizeof(flag2));
                        
            int ans = 0;
                        
            for(i = 1 ; i <= m ; i++){
                            
            if(pp[i] != -1){
                                
            int key = 0;
                                
            int now = pp[i];
                                pp[i] 
            = -1 ;
                                nxy[now] 
            = -1;
                                
            if(flag[pp[i]] == 0){
                                    check(now,i,
            1);
                                    memset(visit,
            0,sizeof(visit));
                                    
            if(find(now)){
                                        key 
            = 1;
                                    }
                                    val 
            = i ;
                                    check(now,
            -1,2);
                                }

                                
            if(flag2[i] == 0 && key == 0 ){
                                    check2(i,now,
            1);
                                    memset(visit,
            0,sizeof(visit));
                                    
            if(find2(i)){
                                        key 
            = 1;
                                    }
                                    val 
            = now ;
                                    check2(i,
            -1,2);
                                }
                                 
            if(!key){
                                        ans
            ++;
                                            nxy[now] 
            = i;
                                        pp[i] 
            = now;
                                 }
                                 
            else{
                                    flag[now] 
            = 1 ;
                                    flag2[i] 
            = 1 ;
                                 }
                            }
            //右側(cè)有邊
                        }
                        printf(
            "Board %d have %d important blanks for %d chessmen.\n",++_case,ans,num);
                    }
                
            return 0;
            }

            posted @ 2009-08-07 00:17 hadn't 閱讀(306) | 評論 (0)編輯 收藏

            2009-7-27

            /*Tju 3207.   Sand Castle
            http://acm.tju.edu.cn/toj/showp3207.html
            排序后貪心,貪心的正確性證明很簡單,只要匹配出現(xiàn)交叉則浪費
            */
            #include
            <stdio.h>
            #include
            <algorithm>
            using namespace std;
            int na[25001];
            int nb[25001];

            int cmp(int x , int y){
                
            return x < y;
            }

            int main(){
                
            int n , h1, h2 ;
                scanf(
            "%d%d%d",&n,&h1,&h2);
                
            for(int i = 0 ; i < n ; i++)
                    scanf(
            "%d%d",&na[i],&nb[i]);
                sort(na,na
            +n,cmp);
                sort(nb,nb
            +n,cmp);

                
            int sum = 0;
                
            for(int i = 0 ; i < n ; i++){
                    
            if(na[i] > nb[i]){
                        sum 
            += h2 * (na[i] - nb[i]);
                    }
                    
            else{
                        sum 
            += h1 * (nb[i] - na[i]);
                    }
                }
                printf(
            "%d\n",sum);
                
            return 0;
            }
            /*
            TJU 3209.   Look Up
            http://acm.tju.edu.cn/toj/showp3209.html
            自底而上掃,紀錄結(jié)果,以紀錄跳轉(zhuǎn)的方式優(yōu)化時間
            */
            #include
            <stdio.h>
            int a[100001];
            int ans[100001];
            int now;
            int main(){
                
            int n;
                scanf(
            "%d",&n);
                
            for(int i = 0 ; i <n ; i++){
                    scanf(
            "%d",&a[i]);
                }
                ans[n
            -1= -1 ;
                
            for(int i = n - 2 ; i >= 0 ; i--){
                    
            if(a[i]<a[i+1]){
                        ans[i] 
            = i + 1;
                    }
                    
                    
            else{
                        now 
            =  i + 1;
                        
            while(1){
                            
            if(now == -1 ){
                                
            if(a[now] > a[i])
                                ans[i] 
            = now;
                                
            else
                                ans[i] 
            = -1 ;
                                
            break;
                            }

                            
            if(a[now] > a[i] )
                            {
                                ans[i] 
            = now;
                                
            break;
                            }
                            
            else{
                                now 
            = ans[now];
                            }

                        }

                    }
                }
                
            for(int i = 0 ; i < n ; i++)
                printf(
            "%d\n",ans[i]+1);

                
            return 0;
            }
            /*
            TJU 3208.   Cow Frisbee Team
            http://acm.tju.edu.cn/toj/showp3208.html
            DP 控制取與不取更新更大的值 dp的兩維分別代表取用前i個cow 和 余數(shù)大小
            */


            #include
            <stdio.h>
            const int MOD=100000000;
            int a[2001];
            int n , f;
            int dp[2001][1001];
            int main(){
                scanf(
            "%d%d",&n,&f);
                
            for(int i = 0 ; i < n ; i++){
                    scanf(
            "%d",&a[i]);
                }


                dp[
            0][0= 1;
                
            for(int i = 0 ; i < n ; i++){
                    
            for(int j = 0 ; j < f ; j++){
                        dp[i
            +1][j] += dp[i][j] % MOD;
                        dp[i
            +1][(j+a[i])%f] += dp[i][j] % MOD;
                    }

                }

                printf(
            "%d\n",(dp[n][0]-1)%MOD);
                
            return 0 ;
            }

            posted @ 2009-07-27 02:53 hadn't 閱讀(194) | 評論 (0)編輯 收藏

            Kruskal+并查集 第一次寫 1A 很高興

             1 #include<string.h>
             2 #include<stdio.h>
             3 #include<algorithm>
             4 using namespace std;
             5 
             6 
             7 struct edg{
             8     int x ;
             9     int y ;
            10     int len;
            11 }a[200000];
            12 int flag[200000];
            13 int cmp (edg aa ,edg bb){
            14     return aa.len<bb.len;
            15 }
            16 
            17 int find(int pot){
            18     if(flag[pot] == -1){
            19         return pot;
            20     }
            21     else{
            22         return flag[pot] = find(flag[pot]);
            23     }
            24 }
            25 void Union(int p1 , int p2){
            26     flag[find(p2)] = find(p1);
            27 }
            28 
            29 int add(edg t){
            30    // printf("t.x t.y  %d %d\n",t.x,t.y);
            31     if( find(t.x) != find(t.y)){
            32         Union(t.x,t.y);
            33    //     printf("f.x f.y  %d %d\n",flag[t.x],flag[t.y]);
            34         return t.len;
            35     }
            36     else{
            37         return 0;
            38     }
            39 }
            40 
            41 int n , m;
            42 int main(){
            43     while(1){
            44     scanf("%d%d",&n,&m);
            45     int sum1 = 0;
            46     if(n == m && m == 0break;
            47     memset(flag,-1,sizeof(flag));
            48         for(int i = 0 ; i < m ; i++){
            49             scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].len);
            50             sum1 += a[i].len;
            51         }
            52         sort(a,a+m,cmp);
            53         int ans = 0;
            54         int sum = 0;
            55         for(int i = 0 ; i < m ; i++){
            56            if(ans == n+1 ) break;
            57          //  printf("ans a[i]   %d %d %d\n",a[i].x,a[i].y,a[i].len);
            58            int now = add(a[i]);
            59            if(now){
            60                 sum += now;
            61                 ans++;
            62            }
            63         }
            64         printf("%d\n",sum1-sum);
            65     }
            66     return 0;
            67 }
            68 

            posted @ 2009-07-24 15:46 hadn't 閱讀(170) | 評論 (0)編輯 收藏

            TJU 2460 Ticket Discount (Asia - Beijing 2003)

                 摘要: WA 了很多次...有幾個小細節(jié)需要處理就是讀入數(shù)據(jù) 控制精度 判斷閏年 還有最重要的是理解清楚題意。。。     1#include<stdio.h>  2#define SIZE 400  3  4int flag , flag2;&nbs...  閱讀全文

            posted @ 2008-10-12 00:17 hadn't 閱讀(203) | 評論 (0)編輯 收藏

            TJU 2749. Marbles in Three Baskets ( Mid Atlantic North America 2006)

                 摘要: 由每個最末的狀態(tài)(n,n,n)推得所有可行的狀態(tài),并記錄被推得狀態(tài)的來源和步長,類似篩法的方式,沒有被擴展到的情況即無法到達的情況,標記其步長仍為0.   1#include<stdio.h>  2#include<string.h>  3  4struct Q{ &nbs...  閱讀全文

            posted @ 2008-10-09 23:41 hadn't 閱讀(202) | 評論 (0)編輯 收藏

            PKU 3005 Exploding CPU

                 摘要: 呵呵 過了這個題目挺高興鍛煉了 篩法和判斷素數(shù)的能力還想了一個關鍵的枚舉剪枝這個題目我是去枚舉題目中的A和第一個素數(shù)P1;然后計算B 幷繼續(xù)推Pn對小于1000000的數(shù)一次性篩出;大數(shù)用最基本的判斷的方式。   1Source Code  2  3Problem: 3005  User:&nbs...  閱讀全文

            posted @ 2008-10-06 23:02 hadn't 閱讀(336) | 評論 (1)編輯 收藏

            僅列出標題
            共4頁: 1 2 3 4 
            国产精品久久国产精麻豆99网站 | 午夜天堂av天堂久久久| 久久精品一区二区| 国产V亚洲V天堂无码久久久| 伊人久久综合无码成人网| 久久人与动人物a级毛片| 欧美精品九九99久久在观看| 久久激情亚洲精品无码?V| 国产一区二区三精品久久久无广告 | 中文精品久久久久人妻| 四虎影视久久久免费| 免费一级做a爰片久久毛片潮| 久久亚洲高清综合| 久久国产精品久久精品国产| 久久久无码精品亚洲日韩蜜臀浪潮| 狠色狠色狠狠色综合久久| 男女久久久国产一区二区三区| 亚洲AV日韩AV永久无码久久| 久久久久久国产精品免费免费| 免费精品99久久国产综合精品| 品成人欧美大片久久国产欧美...| 久久高清一级毛片| 日韩一区二区久久久久久 | 色偷偷91久久综合噜噜噜噜| 青青草国产精品久久| 东京热TOKYO综合久久精品 | 日韩欧美亚洲综合久久影院Ds| 四虎国产精品免费久久5151| 国产午夜精品理论片久久影视 | 久久久精品一区二区三区| 欧美精品久久久久久久自慰| 囯产极品美女高潮无套久久久| 免费一级做a爰片久久毛片潮 | 国内精品久久久久伊人av| 久久强奷乱码老熟女网站| 久久久久久曰本AV免费免费| 中文精品99久久国产| 久久精品中文字幕一区| 99精品国产综合久久久久五月天| 久久精品中文无码资源站| 亚洲国产欧美国产综合久久|