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

The Fourth Dimension Space

枯葉北風(fēng)寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

#

Reverse Polish Notation-我的原創(chuàng)題目

Reverse Polish Notation


Time Limit: Nolimit


 


Memory Limit: 65536K



Description


標(biāo)準(zhǔn)的表達(dá)式如"A+B",在數(shù)學(xué)上學(xué)名叫中綴表達(dá)式(Infix Notation),原因是運(yùn)算符號(hào)在兩個(gè)運(yùn)算對(duì)象的中間。相對(duì)應(yīng)的還有前綴表達(dá)式(Prefix Notation),如:"+ - A * B C D",轉(zhuǎn)換成中綴表達(dá)式為:"A - B * C + D";后綴表達(dá)式(Postfix Notation),比如前所述的中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式為:"A B C * - D +"。為了紀(jì)念波蘭數(shù)學(xué)家魯卡謝維奇(Jan Lukasiewicz),前綴表達(dá)式被稱作波蘭表達(dá)式,后綴表達(dá)式稱為逆波蘭表達(dá)式(Reverse Polish Notation)。
后綴表達(dá)式的優(yōu)點(diǎn)是顯而易見的,編譯器在處理時(shí)候按照從左至右的順序讀取逆波蘭表達(dá)式,遇到運(yùn)算對(duì)象直接壓入堆棧,遇到運(yùn)算符就從堆棧提取后進(jìn)的兩個(gè)對(duì)象進(jìn)行計(jì)算,這個(gè)過程正好符合了計(jì)算機(jī)計(jì)算的原理。
后綴表達(dá)式比前綴表達(dá)式更加易于轉(zhuǎn)換,并且它的最左面一定為數(shù)字,這一點(diǎn)在實(shí)際編程的時(shí)候就會(huì)體會(huì)到它的好處了。
逆波蘭表達(dá)式有一個(gè)更大的優(yōu)點(diǎn),就是拆括號(hào),根據(jù)運(yùn)算符的級(jí)別將中綴表達(dá)式轉(zhuǎn)換成逆波蘭表達(dá)式后,運(yùn)算順序就已經(jīng)替代了運(yùn)算符的級(jí)別,這樣也避免了括號(hào)提高運(yùn)算級(jí)別的特殊處理。
事實(shí)上,人的思維方式很容易固定~~!正如習(xí)慣拉10進(jìn)制。就對(duì)2,3,4,8,16等進(jìn)制不知所措一樣~~!人們習(xí)慣的運(yùn)算方式是中綴表達(dá)式。而碰到前綴,后綴方式。。迷茫其實(shí)僅僅是一種表達(dá)式子的方式而已(不被你習(xí)慣的方式)我這里教你一種也許你老師都沒跟你講的簡單轉(zhuǎn)換方式一個(gè)中綴式到其他式子的轉(zhuǎn)換方法~~這里我給出一個(gè)中綴表達(dá)式~a+b*c-(d+e)
第一步:按照運(yùn)算符的優(yōu)先級(jí)對(duì)所有的運(yùn)算單位加括號(hào)
~
        式子變成拉:
((a+(b*c))-(d+e))
第二步:轉(zhuǎn)換中綴與后綴表達(dá)式

        后綴:把運(yùn)算符號(hào)移動(dòng)到對(duì)應(yīng)的括號(hào)后面
        則變成拉:((a(bc)*)+(de)+)-
        把括號(hào)去掉:abc*+de+-  后綴式子出現(xiàn)

發(fā)現(xiàn)沒有,前綴式,后綴式是不需要用括號(hào)來進(jìn)行優(yōu)先級(jí)的確定的。
現(xiàn)在,你需要用計(jì)算機(jī)來實(shí)現(xiàn)這一過程,怎么樣,是否有興趣一試呢?如果答案是肯定的話,Let‘s go!

 


Input


按照人們?nèi)粘5妮斎肓?xí)慣,請(qǐng)輸入一個(gè)帶浮點(diǎn)型帶括號(hào)的中綴表達(dá)式(不需要添加等號(hào))。


輸入的算式可以包含整數(shù),小數(shù),+,-,*,/,(,)這幾種類型,


當(dāng)然,為了體現(xiàn)和諧社會(huì)的客觀要求及人文關(guān)懷,你可以假設(shè)這個(gè)算式的總字符長度小于100字節(jié)。


Output


輸出與此中綴表達(dá)式對(duì)應(yīng)的逆波蘭表達(dá)式,為了區(qū)分?jǐn)?shù)字,請(qǐng)將數(shù)字與數(shù)字或字符與字符以空格隔開。


最后一個(gè)字符后不需要添加空格,各組測試數(shù)據(jù)之間請(qǐng)用空行隔開。(輸出到文件尾)


Sample Input


1.5+2.5*3-4+5


1*2+3/4


Sample Output


1.5 2.5 3 * + 4 5 + -

 


 


1 2 3 + * 4 /


Source


Weitao(偉濤) 's first submitting problem for njust ACM team;

 

posted @ 2009-02-19 13:02 abilitytao 閱讀(1183) | 評(píng)論 (0)編輯 收藏

POJ 1088 動(dòng)態(tài)規(guī)劃之經(jīng)典問題——滑雪

動(dòng)態(tài)規(guī)劃之經(jīng)典問題——滑雪解題報(bào)告

                                           

原題鏈接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1088

Description

Michael喜歡滑雪百這并不奇怪,因?yàn)榛┑拇_很刺激。可是為了獲得速度,滑的區(qū)域必須向下傾斜,而且當(dāng)你滑到坡底,你不得不再次走上坡或者等待升降機(jī)來載你。Michael想知道載一個(gè)區(qū)域中最長底滑坡。區(qū)域由一個(gè)二維數(shù)組給出。數(shù)組的每個(gè)數(shù)字代表點(diǎn)的高度。下面是一個(gè)例子

4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

一個(gè)人可以從某個(gè)點(diǎn)滑向上下左右相鄰四個(gè)點(diǎn)之一,當(dāng)且僅當(dāng)高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當(dāng)然25-24-23-...-3-2-1更長。事實(shí)上,這是最長的一條。

Input

輸入的第一行表示區(qū)域的行數(shù)R和列數(shù)C(1 <= R,C <= 100)。下面是R行,每行有C個(gè)整數(shù),代表高度h,0<=h<=10000。

Output

輸出最長區(qū)域的長度。

Sample Input

5 5

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

Sample Output

25

個(gè)人心得:記得前段時(shí)間曾經(jīng)做過一個(gè)求最長下降子序列的題(相信大家都做過該題,故不另附原題),如果說說那道題是dp問題的基礎(chǔ),那么這道題就可以稱得上是求最長下降子序列的變種或者更確切的說是一種升華!

對(duì)比來看,前者是求最長下降子序列在一維條件下的解,而1088滑雪這道題則是將此下降問題至于二維平面的背景下。相信弄明白這道題是非常有必要的,因?yàn)樗粌H升華了我們對(duì)該類問題的理解,而且能啟發(fā)我們用同樣的思維方式去解決更多動(dòng)態(tài)規(guī)劃的問題。

 

 

題目意思其實(shí)很簡單,給出一個(gè)二維數(shù)組,在其中找出一個(gè)點(diǎn),是它能找到一條高度依次下降的路徑并使得這條路徑最長。

算法:開一個(gè)二維數(shù)組height記錄每個(gè)點(diǎn)的高度,一個(gè)二維數(shù)組len記錄每個(gè)點(diǎn)能搜索到的最長下降子序列的長度(初始值全為零),一個(gè)結(jié)構(gòu)體數(shù)組dot line[20000]記錄每個(gè)點(diǎn)的坐標(biāo)(x,y)和高度值 h.

先將每個(gè)點(diǎn)的記錄信息保存在結(jié)構(gòu)體數(shù)組中。然后以高度由低到高的順序排序,初始狀態(tài)下指針就位于結(jié)構(gòu)體數(shù)組的起始位置。

接著順序的掃描此結(jié)構(gòu)體數(shù)組內(nèi)的信息,因?yàn)橐呀?jīng)排好序,所以高度是一次遞增的,這樣做的好處是只需要朝著一個(gè)方向搜索,而且還可以有效避免越界的問題。

當(dāng)指針每指向一個(gè)結(jié)構(gòu)體個(gè)體時(shí),我們均可以找到該點(diǎn)在height數(shù)組里的位置,如果存在任意一個(gè)點(diǎn),在它周圍的四個(gè)方向上而且高度比該點(diǎn)大且這個(gè)任意點(diǎn)的最長下降子序列小于或等于該店的長度。那么這個(gè)任意點(diǎn)的最長下降子序列的長度就+1;

等到結(jié)構(gòu)體數(shù)組掃描完成,再去遍歷len這個(gè)二維數(shù)組,求出最大值即為所求;

 

 

 

CODE:

 

#include<iostream>

#include
<cmath>

#include
<cstring>

#include
<cstdio>

#include
<algorithm>

using namespace std;

 

 

struct dot//創(chuàng)建一個(gè)結(jié)構(gòu)體存儲(chǔ)每個(gè)點(diǎn)的信息

{

    
int x;

    
int y;

    
int h;

}
;

dot line[
20000]; //將每個(gè)點(diǎn)存入該結(jié)構(gòu)體數(shù)組

int height[120][120]; //用于存儲(chǔ)input

int len[120][120];  //dp數(shù)組,存儲(chǔ)每個(gè)點(diǎn)的最優(yōu)解

int cmp( const void *a ,const void *b) //快速排序的參考函數(shù)

{

 

    
if((*(dot *)a).h>(*(dot *)b).h)

        
return 1;

    
else return -1;

 

}


int main ()

{

    
int m,n;

    cin
>>m>>n;

    
int i,j;

    
int flag=-1;

    
int max=0;

    
for(i=1;i<=m;i++)

    
{

 

        
for(j=1;j<=n;j++)

        
{

            flag
++;

            scanf(
"%d",&height[i][j]);

            line[flag].x
=i;

            line[flag].y
=j;

            line[flag].h
=height[i][j];

        }


    }
 //這個(gè)雙層循環(huán)用來完成數(shù)據(jù)收集的工作

    qsort(line,m
*n,sizeof(line[0]),cmp); //對(duì)結(jié)構(gòu)體的h參數(shù)進(jìn)行排序

    
for(i=0;i<m*n;i++)

    
{

    
if(height[line[i].x][line[i].y]<height[line[i].x][line[i].y+1]&&len[line[i].x][line[i].y]>=len[line[i].x][line[i].y+1])

        
{

            len[line[i].x][line[i].y
+1]=len[line[i].x][line[i].y]+1;

        }


    
if(height[line[i].x][line[i].y]<height[line[i].x+1][line[i].y]&&len[line[i].x][line[i].y]>=len[line[i].x+1][line[i].y])

        
{

            len[line[i].x
+1][line[i].y]=len[line[i].x][line[i].y]+1;

        }


    
if(height[line[i].x][line[i].y]<height[line[i].x][line[i].y-1]&&len[line[i].x][line[i].y]>=len[line[i].x][line[i].y-1])

        
{

            len[line[i].x][line[i].y
-1]=len[line[i].x][line[i].y]+1;

        }


        
if (height[line[i].x][line[i].y]<height[line[i].x-1][line[i].y]&&len[line[i].x][line[i].y]>=len[line[i].x-1][line[i].y])

        
{

            len[line[i].x
-1][line[i].y]=len[line[i].x][line[i].y]+1;

        }


    }
 //動(dòng)態(tài)規(guī)劃過程

    
for(i=1;i<=m;i++)

    
{

        
for(j=1;j<=n;j++)

        
{

 

           

            
if(len[i][j]>max)

                max
=len[i][j];

        }


    }
 //遍歷len數(shù)組,求出最大值

    cout
<<max+1<<endl;// 因?yàn)槌跏贾凳?,所以最后要加一

    
return 0;

}


 

 

最后不得不說,動(dòng)態(tài)規(guī)劃的確是一個(gè)值得研究的問題,相比于遞歸,他能夠節(jié)省大量的運(yùn)行時(shí)間。

鑒于現(xiàn)在還處于學(xué)習(xí)的初級(jí)階段,如果有所不足,還請(qǐng)老師和學(xué)長們多多指點(diǎn).

Thank you~

posted @ 2009-02-19 13:00 abilitytao 閱讀(10790) | 評(píng)論 (13)編輯 收藏

帶括號(hào)浮點(diǎn)型計(jì)算器final

     摘要: 課程設(shè)計(jì)一:                                &n...  閱讀全文

posted @ 2009-02-19 01:12 abilitytao 閱讀(2155) | 評(píng)論 (3)編輯 收藏

線性表類——張宏數(shù)據(jù)結(jié)構(gòu)第一課

晚上花了2個(gè)多小時(shí)寫的,感覺不是很難,下次嘗試下寫成鏈表+模板的形式 O(∩_∩)O~

#include<iostream>
#include
<algorithm>
using namespace std;

#define LISTVOLUME 10000


class sqlist
{
private:
    
int a[10001];
    
int lenth;
    
int max;
public:
    sqlist()
    {
        memset(a,
0,sizeof(a));
        lenth
=0;
        max
=LISTVOLUME;


    }
    
void initial();
    
void creat();
    
void print();
    
void inset(int num,int pos);
    
void deletenode(int pos);
    
void sortlist();
    
int size();
    
bool empty();
    
bool full();
    
void findnode(int num);


};


void sqlist::initial()
{
    memset(a,
0,sizeof(a));
    lenth
=0;
    max
=LISTVOLUME;
}
void sqlist::creat()
{

    cout
<<"請(qǐng)順序鍵入鏈表中的數(shù)值,用空格隔開,并以'-1'結(jié)束"<<endl;
    
int pos=1;
    
int temp;
    
while(cin>>temp)
    {
            
if(temp==-1)
            
break;
        
if(lenth>=LISTVOLUME)
        {

            cout
<<"抱歉,線性表已滿,無法輸入數(shù)據(jù),請(qǐng)重新初始化該數(shù)據(jù)表"<<endl;
            cout
<<"請(qǐng)問需要重新初始化嗎?(Y/N)"<<endl;
            
char temp;
            cin
>>temp;
            
if(temp=='Y'||temp=='y')
            {

                initial();
                creat();
                
break;
            }
            
else
                
break;
        }

    
        a[pos]
=temp;
        pos
++;
        lenth
++;

        

    }

}

void sqlist::print()
{

    
int i;
    
for(i=1;i<=lenth;i++)
    {

        cout
<<a[i]<<' ';

    }
    cout
<<endl;

}

void sqlist::inset(int num, int pos)
{

    
if(lenth>=LISTVOLUME)
    {

        cout
<<"數(shù)據(jù)表已滿,無法添加數(shù)據(jù)"<<endl;
        
return;
    }
    
if(pos<1||pos>lenth+1)
    {

        cout
<<"您輸入的位置不合法,請(qǐng)重新輸入(僅需要輸入插入的位置):";
        cin
>>pos;
    }
    
int i;
    
for(i=lenth;i>=pos;i--)
    {
        a[i
+1]=a[i];
    }
    a[pos]
=num;
    lenth
++;

}

void sqlist::deletenode(int pos)
{
    
if(pos<1||pos>lenth)
    {

        cout
<<"您輸入的位置不合法,請(qǐng)重新輸入";
        cin
>>pos;
    }
    
int i;
    
for(i=pos+1;i<=lenth;i++)
    {

        a[i
-1]=a[i];

    }
    a[lenth]
=0;
    lenth
--;
    cout
<<"成功刪除"<<pos<<"號(hào)結(jié)點(diǎn)"<<endl;
}

void sqlist::sortlist()
{

    
int temp;
    cout
<<"請(qǐng)問您需要從小到大排列(鍵入1)還是從大到小排列(鍵入-1)"<<endl;
    cin
>>temp;
    
if(temp==1)
        sort(a
+1,a+1+lenth);
    
else if(temp==-1)
    {

        sort(a
+1,a+1+lenth);
        reverse(a
+1,a+1+lenth);

    }
    cout
<<"排序完成"<<endl;
}
int sqlist::size()
{
    
return lenth;
}

bool sqlist::empty()
{

    
if(lenth==0)
        
return true;
    
else
        
return false;
}

bool sqlist::full()
{

    
if(lenth>=max)
        
return true;
    
else
        
return false;

}

void sqlist::findnode (int num)
{

    
int i;
    
for(i=1;i<=lenth;i++)
    {

        
if(a[i]==num)
        {
            cout
<<"該元素位于"<<i<<"號(hào)位置"<<endl;
            
return ;
        }


    }
    cout
<<"沒有搜索到改元素,請(qǐng)重新查找"<<endl;
}





int main ()
{
    sqlist test;
    
int m,n;
    cin
>>m>>n;
    test.creat();
    test.print();
    test.initial();
    test.creat();
    test.print();
    test.inset(m,n);
    test.sortlist ();
    test.deletenode(
3);
    test.findnode(
3);
    
return 0;

}



posted @ 2009-02-19 00:51 abilitytao 閱讀(1009) | 評(píng)論 (3)編輯 收藏

僅列出標(biāo)題
共42頁: First 34 35 36 37 38 39 40 41 42 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产日韩精品一区二区三区| 国产精品一区二区黑丝| 亚洲影院免费观看| 国产情人节一区| 一个色综合导航| 久久一区二区三区av| 亚洲夜晚福利在线观看| 欧美日本一区二区高清播放视频| 在线观看国产日韩| 久久免费黄色| 欧美一级久久久| 欧美日韩三级| 亚洲欧洲另类| 女人香蕉久久**毛片精品| 欧美一区二区成人6969| 国产精品专区第二| 一区二区三欧美| 亚洲美女电影在线| 欧美了一区在线观看| 亚洲卡通欧美制服中文| 欧美大胆成人| 久久一区二区精品| 亚洲二区视频| 欧美成人国产| 欧美第一黄色网| 亚洲日本成人女熟在线观看| 欧美激情亚洲综合一区| 久久久精品国产免大香伊| 黄色小说综合网站| 久久影视精品| 久久久久久久综合| 日韩午夜在线| 亚洲视频一区在线| 国产在线国偷精品产拍免费yy| 小辣椒精品导航| 久久久久一区| 亚洲精品小视频在线观看| 亚洲一区www| 国产日本欧美视频| 久久精品成人一区二区三区| 美乳少妇欧美精品| 久久网站免费| 日韩一级黄色大片| 亚洲午夜日本在线观看| 国产精品欧美激情| 久久精品视频在线观看| 欧美一站二站| 亚洲激情一区二区三区| 在线亚洲欧美| 精品91在线| 亚洲国产天堂网精品网站| 久久久91精品国产| 日韩视频在线免费| 亚洲一区免费| 亚洲人体偷拍| 亚洲欧美视频| 91久久精品一区| 一本色道久久综合狠狠躁篇怎么玩| 国产午夜精品久久久久久免费视| 噜噜噜躁狠狠躁狠狠精品视频| 欧美ed2k| 性亚洲最疯狂xxxx高清| 久久亚洲色图| 欧美日韩一级视频| 国产欧美日韩视频一区二区三区| 久久国产高清| 欧美—级在线免费片| 西西裸体人体做爰大胆久久久| 久久久久成人精品免费播放动漫| 99国产精品99久久久久久| 先锋影音国产精品| 亚洲精品一二三| 欧美专区一区二区三区| 亚洲视频视频在线| 蜜臀av国产精品久久久久| 久久久久久91香蕉国产| 欧美日韩喷水| 亚洲国产高清高潮精品美女| 国产欧美日韩一区二区三区在线| 亚洲国产成人精品女人久久久| 国产精品入口尤物| 亚洲久久成人| 91久久精品国产91久久性色| 欧美一级片一区| 中文高清一区| 欧美日韩在线播放三区四区| 欧美激情免费在线| 国产一级一区二区| 亚洲一级片在线观看| av成人黄色| 欧美国产高潮xxxx1819| 麻豆av一区二区三区| 国产精品www994| 亚洲精品在线观| 亚洲欧洲一区二区三区久久| 久热精品视频在线观看一区| 久久精品伊人| 国产欧美激情| 亚洲欧美中文另类| 欧美制服丝袜| 国产日韩视频| 午夜精品久久久久久久蜜桃app| 在线亚洲观看| 欧美日韩成人在线视频| 91久久精品视频| 亚洲精品日产精品乱码不卡| 久久久国产成人精品| 久久这里有精品视频| 激情视频一区二区| 久久精视频免费在线久久完整在线看| 欧美在线国产精品| 国产精品久久久久久久电影| 国产精品99久久久久久久vr| 一区二区91| 久久午夜精品一区二区| 激情综合自拍| 男女精品网站| 亚洲精品久久久久久一区二区| 99精品久久久| 欧美性理论片在线观看片免费| 一个人看的www久久| 国产精品视频久久久| 亚洲欧美日韩一区在线观看| 欧美在现视频| 一区二区视频免费完整版观看| 久久久亚洲高清| 国产麻豆精品theporn| 久久国产精品99精品国产| 嫩草成人www欧美| av成人福利| 国产乱码精品一区二区三区忘忧草| 一区二区三区无毛| 日韩视频二区| 亚洲综合精品自拍| 国产伦精品一区二区三区| 久久成人18免费观看| 欧美福利在线观看| 亚洲天堂男人| 国内精品模特av私拍在线观看| 噜噜爱69成人精品| 日韩视频一区二区| 欧美一区二区三区婷婷月色| 91久久夜色精品国产网站| 欧美午夜激情视频| 久久青青草综合| 日韩午夜剧场| 嫩草国产精品入口| 小嫩嫩精品导航| 亚洲精品美女在线观看| 国产麻豆9l精品三级站| 欧美日韩国产一中文字不卡| 欧美一区二区三区四区夜夜大片| 欧美高清视频免费观看| 亚洲女ⅴideoshd黑人| 伊人久久噜噜噜躁狠狠躁| 欧美人与性动交cc0o| 久久精品亚洲一区| 亚洲一级黄色片| 亚洲黑丝一区二区| 老司机午夜精品视频| 午夜精品久久久久久99热软件| 亚洲激情另类| 国产亚洲一二三区| 欧美日韩麻豆| 美女精品在线| 欧美在线你懂的| 一本色道综合亚洲| 亚洲激情在线观看视频免费| 久久综合999| 欧美一区二区女人| 中文av一区特黄| 日韩一区二区精品视频| 国产一区二区三区四区| 国产精品福利在线观看网址| 欧美激情麻豆| 欧美国产精品人人做人人爱| 麻豆精品传媒视频| 久久国产毛片| 性色一区二区| 亚洲欧美久久久| 亚洲一区二区欧美| 日韩一级黄色av| 日韩天堂av| 亚洲六月丁香色婷婷综合久久| 亚洲人成在线观看一区二区| 亚洲高清在线观看| 亚洲国产欧美一区二区三区久久| 美女视频黄免费的久久| 免费成人高清视频| 欧美sm视频| 欧美承认网站| 亚洲成在线观看| 亚洲乱码国产乱码精品精| 91久久在线| 亚洲美女av网站| 亚洲免费在线精品一区| 亚洲一级在线观看| 性做久久久久久久免费看| 亚洲欧美国产不卡| 久久精品国语|