青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Dain

寫出一個可以工作的程序并不夠

統計

留言簿(3)

積分與排名

良師益友

閱讀排行榜

評論排行榜

置頂隨筆 #

[置頂]勵志

師兄太強了,拿到了baidu、M$、Google的offer,可是實驗室第一人啊,實在是admire
現在都說工作難找,不過只要努力,總會找到自己滿意的,向師兄學習
我一定要努力啊

posted @ 2006-12-08 10:42 Dain 閱讀(873) | 評論 (14)編輯 收藏

2008年9月18日 #

tate

posted @ 2008-09-18 19:58 Dain 閱讀(193) | 評論 (0)編輯 收藏

2007年5月29日 #

Getting the Minimum and Maximum Values for a Numeric Type

Getting numeric limits

#include <iostream>
#include 
<limits>

using namespace std;

template
<typename T>
void showMinMax() {
   cout 
<< "min: " << numeric_limits<T>::min() << endl;
   cout 
<< "max: " << numeric_limits<T>::max() << endl;
   cout 
<< endl;
}


int main() {
   cout 
<< "short:" << endl;
   showMinMax
<short>();
   cout 
<< "int:" << endl;
   showMinMax
<int>();
   cout 
<< "long:" << endl;
   showMinMax
<long>();
   cout 
<< "long long:" << endl;
   showMinMax
<long long>();
   cout 
<< "float:" << endl;
   showMinMax
<float>();
   cout 
<< "double:" << endl;
   showMinMax
<double>();
   cout 
<< "long double:" << endl;
   showMinMax
<long double>();
   cout 
<< "unsigned short:" << endl;
   showMinMax
<unsigned short>();
   cout 
<< "unsigned int:" << endl;
   showMinMax
<unsigned int>();
   cout 
<< "unsigned long:" << endl;
   showMinMax
<unsigned long>();
   cout 
<< "unsigned long long:" << endl;
   showMinMax
<unsigned long long>();
}

posted @ 2007-05-29 10:38 Dain 閱讀(846) | 評論 (2)編輯 收藏

2007年5月25日 #

3017

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

using namespace std;

struct Node 
{
    
int i,j;
    
int value;
}
;

long num[100000];
vector
<Node> matrix;

int main() {
    
long n;
    
long long m;
    scanf(
"%ld %lld",&n,&m);

    
long i,j;
    
for(i = 0;i < n;++i) {
        scanf(
"%ld",&num[i]);
    }


    
for(i = 0;i < n;++i) {
        
if(num[i] > m) {
            
break;
        }

    }


    
if(i < n) {
        printf(
"-1\n");

        
return 0;
    }


    
long long res = -1;
    
long long sum;
    
long max,min = 0;
    
for(i = 0;i < n;++i) {
        
if(i > 0{
            min 
= 1000000;
            
for(j = 0;j < matrix.size();++j) {
                
if(matrix[j].j == i - 1 && matrix[j].value < min) {
                    min 
= matrix[j].value;
                }

            }

        }

        
else {
            min 
= 0;
        }


        sum 
= 0;
        Node node;
        max 
= -1;
        
for(j = i;j < n;++j) {
            sum 
+= num[j];
            
if(sum <= m) {
                
if(max < num[j]) {                    
                    max 
= num[j];
                }

                node.i 
= i;
                node.j 
= j;
                node.value 
= max + min;
                matrix.push_back(node);
                
if(j == n - 1{
                    
if(res != -1{
                        
if(node.value < res) {
                            res 
= node.value;
                        }

                    }

                    
else {
                        res 
= node.value;
                    }

                }

            }

            
else {
                
break;
            }

        }

    }

    
    printf(
"%lld\n",res);

    
return 0;
}

posted @ 2007-05-25 10:06 Dain 閱讀(282) | 評論 (0)編輯 收藏

3017

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

using namespace std;

struct Node 
{
    
int i,j;
    
int value;
}
;

long num[100000];
vector
<Node> matrix;

int main() {
    
long n;
    
long long m;
    scanf(
"%ld %lld",&n,&m);

    
long i,j;
    
for(i = 0;i < n;++i) {
        scanf(
"%ld",&num[i]);
    }


    
for(i = 0;i < n;++i) {
        
if(num[i] > m) {
            
break;
        }

    }


    
if(i < n) {
        printf(
"-1\n");

        
return 0;
    }


    
long long res = -1;
    
long long sum;
    
long max,min = 0;
    
for(i = 0;i < n;++i) {
        
if(i > 0{
            min 
= 1000000;
            
for(j = 0;j < matrix.size();++j) {
                
if(matrix[j].j == i - 1 && matrix[j].value < min) {
                    min 
= matrix[j].value;
                }

            }

        }

        
else {
            min 
= 0;
        }


        sum 
= 0;
        Node node;
        max 
= -1;
        
for(j = i;j < n;++j) {
            sum 
+= num[j];
            
if(sum <= m) {
                
if(max < num[j]) {                    
                    max 
= num[j];
                }

                node.i 
= i;
                node.j 
= j;
                node.value 
= max + min;
                matrix.push_back(node);
                
if(j == n - 1{
                    
if(res != -1{
                        
if(node.value < res) {
                            res 
= node.value;
                        }

                    }

                    
else {
                        res 
= node.value;
                    }

                }

            }

            
else {
                
break;
            }

        }

    }

    
    printf(
"%lld\n",res);

    
return 0;
}

posted @ 2007-05-25 10:06 Dain 閱讀(238) | 評論 (0)編輯 收藏

2007年5月24日 #

不要再犯低級的錯誤

最近,總是犯非常低級的錯誤
看題不仔細
將j誤寫成k,而且怪的是,測試的例子都通過了,后來通過debug才找到了這個很低級的錯誤

真是氣人啊

不要再犯了

posted @ 2007-05-24 13:56 Dain 閱讀(267) | 評論 (0)編輯 收藏

2007年4月16日 #

列出所有9位數,它的前n位能被n整除

最簡單的是窮舉,不過那可要O(9*109),不可取 

#include <iostream>
#include 
<vector>
#include 
<algorithm>

using namespace std;

vector
<int> fun(int n)
{
    vector
<int> last,all;
    
int i,j,k;
    
for(i = 1;i < 10;++i)
        all.push_back(i);

    
if(n == 1)
        
return all;

    
int size;
    
int num;
    
for(i = 2;i <= n;++i)
    
{
        last 
= all;
        all.clear();
        size 
= (int)last.size();
        
for(j = 0;j < size;++j)
        
{
            
for(k = 0;k < 10;++k)
            
{
                num 
= last[j] * 10 + k;
                
if(num % i == 0)
                    all.push_back(num);
            }

        }

        last.clear();
    }


    
return all;
}

posted @ 2007-04-16 17:29 Dain 閱讀(1140) | 評論 (5)編輯 收藏

2007年2月7日 #

最大的子序列和問題

求解該問題的四種算法:
時間O(N3),算法一
int ?MaxSubsequenceSum( const ? int ?A[], int ?N)
{
????
int
?ThisSum,MaxSum,i,j,k;
????
????MaxSum?
= ? 0
;
????
for (i? = ? 0 ;i? < ?N;i ++
)
????????
for (j? = ?i;j? < ?N;j ++
)
????????
{
????????????ThisSum?
= ? 0
;
????????????
for (k? = ?i;k? <= ?j;k ++ )????ThisSum? +=
?A[k];????????????????
????????????
if (ThisSum? > ?MaxSum)????MaxSum? =
?ThisSum;
????????}

????????
????
return ?MaxSum;
}
時間O(N2),算法二
int ?MaxSubsequenceSum( const ? int ?A[], int ?N)
{
????
int
?ThisSum,MaxSum,i,j;
????
????MaxSum?
= ? 0
;
????
for (i? = ? 0 ;i? < ?N;i ++
)
????
{
????????ThisSum?
= ? 0
;
????????
for (j? = ?i;j? < ?N;j ++
)
????????
{
????????????ThisSum?
+=
?A[k];????????????????
????????????
if (ThisSum? > ?MaxSum)????MaxSum? =
?ThisSum;
????????}

????}

????????
????
return ?MaxSum;
}
時間O(NlogN),算法三
static ? int ?MaxSubSum( const ? int ?A[], int ?Left, int ?Right)
{
????
int
?MaxLeftSum,MaxRightSum;
????
int
?MaxLeftBorderSum,MaxRightBorderSum;
????
int
?LeftBorderSum,RightBorderSum;
????
int
?Center,i;
????
????
if (Left? ==
?Right)
????????
if (A[left]? > ? 0 )???? return
?A[left];
????????
else ???? return ? 0
;
????????????
????Center?
= ?(Left? + ?Right)? / ? 2
;
????MaxLeftSum?
=
?MaxSubSum(A,Left,Center);
????MaxRightSum?
= ?MaxSubSum(A,Center? + ? 1
,Right);
????
????MaxLeftBorderSum?
= ? 0
;
????LeftBorderSum?
= ? 0
;
????
for (i? = ?Center;i? >= ?Left;i --
)
????
{
????????LeftBorderSum?
+=
?A[i];
????????
if (LeftBorderSum? > ?MaxLeftBorderSum)????MaxLeftBorderSum? =
?LeftBorderSum;
????}

????
????MaxRightBorderSum?
= ? 0 ;
????RightBorderSum?
= ? 0
;
????
for (i? = ?Center? + ? 1 ;i? <= ?Right;i ++
)
????
{
????????RightBorderSum?
+=
?A[i];
????????
if (RightBorderSum? > ?MaxRightBorderSum)????MaxRightBorderSum? =
?RightBorderSum;
????}

????
????
return ?Max3(MaxLeftSum,MaxRightSum,MaxLeftBorderSum? + ?MaxRightBorderSum);
}


int ?MaxSubsequenceSum( const int??A[],int ?N)
{
????
return ?MaxSubSum(A, 0 ,N? - ? 1
);????
}
時間O(N),算法四
intMaxSubsequenceSum( const int ?A[], int ?N)
{
????
int ?ThisSum,MaxSum,i;
????
????ThisSum?
= ?MaxSum? = ? 0 ;
????
for (i? = ? 0 ;i? < ?N;i ++ )
????
{
????????ThisSum?
+= ?A[i];
????????
if (ThisSum? > ?MaxSum)
????????????MaxSum?
= ?ThisSum;
????????
else
????????????ThisSum?
= ? 0 ;
????}

????
????
return ?MaxSum;
}


參考《數據結構與算法分析》

posted @ 2007-02-07 10:52 Dain 閱讀(1086) | 評論 (7)編輯 收藏

2007年1月31日 #

編寫遞歸四條基本法則

  1. 基準情形。必須要有某些基準情形,它無須遞歸就能解出,也就是要有退出遞歸的條件。
  2. 不斷推進。對于那些需要遞歸求解的情形,每一次遞歸調用都必須要使求解狀況朝接近基準情形的方向推進。
  3. 設計法則。假設所有的遞歸調用都能運行。
  4. 合成效益。求解一個問題的同一個實例時,切勿在不同的遞歸調用中做重復性的工作。

posted @ 2007-01-31 21:03 Dain 閱讀(459) | 評論 (0)編輯 收藏

讀書計劃

遇到了好多不能解決的問題后,覺得應該重新讀讀書了
最近買了幾本書
《More?Effective?CPP》
《Effective?STL》
《并行程序設計》
《數據結構與算法分析——C語言描述》
?

posted @ 2007-01-31 20:07 Dain 閱讀(478) | 評論 (1)編輯 收藏

2007年1月19日 #

引用和指針參數的關系

兩種參數都允許函數修改實參指向的對象,都允許有效地向函數傳遞大類型對象。所以怎么樣決定把函數參數聲明成引用還是指針呢?
引用必須被初始化為指向一個對象,一旦初始化了,它就不能再指向其他對象。指針可以指向一系列不同的對象也可以什么都不指向。
因為指針可能指向一個對象或沒有任何對象,所以函數在確定指針實際指向一個有效的對象之前不能安全解引用一個指針。如:
class ?X;
void ?fun(X? * x)
{
??
// ?在解引用指針之前確信它非0
?? if (x? != ? 0 )
????
// ?解引用指針
}
??
而,對于引用參數,函數不需要保證它指向一個對象。引用必須指向一個對象,不希望向指針那樣進行解引用。如:
class?Type;
void?op(const?Type?&t1,const?Type?&t2);

int?main()
{
??Type?obj1;
??
//?設置obj1為某個值

??
//?錯誤:引用參數的實參不能為0
??op(obj1,0);

??
//?
??return?0;
}
如果一個參數可能在函數中指向不同的對象,或者這個參數可能不指向任何對象,則必須使用指針參數。
引用參數的一個重要用法,它允許有效地實現重載操作符的同時,還能保證用法的直觀性。可以參考《C++ Primer》

ps 發現書287頁的第二個程序例子是錯的

posted @ 2007-01-19 09:56 Dain 閱讀(3240) | 評論 (1)編輯 收藏

僅列出標題  下一頁
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              美女精品国产| 欧美一区二区高清| 欧美女同视频| 裸体丰满少妇做受久久99精品| 亚洲一区二区三区四区视频| 中日韩在线视频| 亚洲调教视频在线观看| 羞羞答答国产精品www一本 | 亚洲风情亚aⅴ在线发布| 欧美影院成人| 久久全国免费视频| 欧美aaaaaaaa牛牛影院| 亚洲成人直播| 亚洲视频中文| 久久人91精品久久久久久不卡| 久久久久久精| 欧美理论大片| 国产亚洲精品自拍| 99精品国产在热久久| 亚洲欧美国产高清| 欧美成人官网二区| 一区二区三区欧美视频| 久久成人免费日本黄色| 欧美区亚洲区| 国产亚洲欧美日韩日本| 亚洲国产另类久久久精品极度| 国产精品99久久久久久久久久久久| 午夜精品久久久久久久久久久| 久久免费视频在线观看| 99精品国产高清一区二区 | 久久亚洲一区二区三区四区| 女生裸体视频一区二区三区| 在线中文字幕日韩| 美女久久一区| 国产欧美一区二区精品秋霞影院| 亚洲国产精品一区二区www| 午夜精品美女久久久久av福利| 男女激情久久| 欧美一二区视频| 欧美午夜www高清视频| 亚洲国产精品成人| 牛人盗摄一区二区三区视频| 国产精品成人午夜| 夜夜夜精品看看| 久久亚洲电影| 午夜精品区一区二区三| 国产精品a久久久久久| 亚洲美女av在线播放| 久久夜色精品国产亚洲aⅴ| 一区二区欧美视频| 欧美激情亚洲自拍| 亚洲激情电影中文字幕| 欧美插天视频在线播放| 欧美一区二区在线免费观看| 国产精品久久激情| 在线视频免费在线观看一区二区| 六十路精品视频| 久久精品成人一区二区三区蜜臀| 国产精品美腿一区在线看| 99成人免费视频| 亚洲国产经典视频| 欧美韩日一区二区| 91久久极品少妇xxxxⅹ软件| 麻豆九一精品爱看视频在线观看免费| 亚洲欧美精品在线观看| 国产精品久久久久久妇女6080 | 亚洲二区在线视频| 久久香蕉国产线看观看av| 欧美亚洲视频| 激情av一区二区| 麻豆精品一区二区综合av| 久久九九国产精品怡红院| 国产亚洲一二三区| 久久久综合香蕉尹人综合网| 久久久不卡网国产精品一区| 在线看一区二区| 亚洲国产三级| 欧美日韩精品一区二区在线播放| 一区二区三区欧美在线| 日韩系列欧美系列| 国产精品丝袜久久久久久app| 午夜精品久久久久久久久| 亚洲欧美影院| 激情久久一区| 亚洲人成在线播放| 国产精品久久久久免费a∨| 午夜性色一区二区三区免费视频| 亚洲视频自拍偷拍| 樱桃成人精品视频在线播放| 欧美高清一区| 国产精品久久77777| 久久男女视频| 欧美日韩国产在线播放网站| 亚洲欧美中日韩| 久久成人18免费观看| 亚洲精品在线观看免费| 亚洲小说欧美另类婷婷| 国产一本一道久久香蕉| 亚洲国产日韩在线| 国产精品美女一区二区| 欧美第一黄网免费网站| 欧美一级一区| 亚洲激情黄色| 夜夜嗨av一区二区三区中文字幕 | 国产精品毛片a∨一区二区三区|国| 欧美一区亚洲| 欧美精品一区视频| 久久久噜噜噜久久中文字免| 欧美日韩免费观看中文| 免费欧美视频| 国产精品亚洲美女av网站| 欧美r片在线| 国产欧美日本一区二区三区| 亚洲国产精品久久久久秋霞不卡| 国产精品视频免费| 亚洲欧洲精品天堂一级| 在线观看欧美视频| 午夜免费在线观看精品视频| 日韩视频在线一区二区三区| 久久精品人人做人人爽| 中日韩在线视频| 麻豆精品精华液| 久久久五月婷婷| 国产精品青草综合久久久久99 | 欧美va天堂| 国产在线精品自拍| 亚洲综合大片69999| 正在播放亚洲一区| 欧美精品一区三区| 亚洲第一精品福利| **欧美日韩vr在线| 久久久精品国产免费观看同学| 午夜精品一区二区三区在线播放| 欧美日韩国产高清视频| 亚洲精品一线二线三线无人区| 91久久久久久久久久久久久| 久久综合中文字幕| 亚洲电影第1页| 亚洲国产精品t66y| 欧美成人乱码一区二区三区| 亚洲国产成人av| 亚洲免费av网站| 欧美激情1区2区| 亚洲精品免费看| 亚洲图片激情小说| 国产精品毛片在线| 午夜亚洲性色视频| 久久综合久久久久88| 狠狠色狠狠色综合日日五| 久久精品国产欧美亚洲人人爽| 久久综合狠狠综合久久综合88| 黄色成人在线网站| 久久久久久久综合日本| 欧美成人午夜视频| 亚洲日韩欧美一区二区在线| 免费欧美日韩| 亚洲免费久久| 亚洲在线一区二区| 国产一区二区精品久久| 久久精品欧美日韩精品| 欧美激情一区二区三区| 中文国产亚洲喷潮| 国产麻豆日韩| 蜜臀va亚洲va欧美va天堂| 亚洲三级影院| 欧美一区二区三区在线观看视频| 国产专区欧美精品| 亚洲一区二区三区中文字幕在线| 日韩午夜激情| 午夜精品久久久久久久99水蜜桃| 国产色视频一区| 麻豆精品一区二区综合av| 亚洲精品女av网站| 亚洲性xxxx| 国产亚洲精品v| 欧美国产三区| 午夜电影亚洲| 欧美激情一区二区久久久| 亚洲无限av看| 雨宫琴音一区二区在线| 国产精品第三页| 久久亚洲欧美| 午夜一区二区三区在线观看| 欧美寡妇偷汉性猛交| 亚洲综合电影| 亚洲国产91精品在线观看| 国产精品分类| 欧美国产精品专区| 欧美一级专区免费大片| 亚洲人成在线播放| 久久综合九色综合网站| 亚洲欧美在线观看| 日韩视频一区二区三区在线播放| 国产精品亚洲综合| 欧美日韩在线一区二区三区| 久久野战av| 欧美一区视频| 午夜视频在线观看一区| 一区二区精品国产| 亚洲人成在线播放网站岛国|