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

hdu3596(逆波蘭表達式求值)

/*************************************/
/*支持數字(而非表達式)前面有正負號   */
/*支持浮點數的+,-,*,/,^ 運算      */
/*************************************/
#include <stdio.h>
#include <memory>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
#include <cmath>
#include <set>
#include <queue>
#include <time.h>
#include <limits>
#include <stack>
using namespace std;
#define N 10005
#define eps 1e-9
#define vType double
struct node{
 vType val;
 char op;
 node(vType _val=0, char _op = ' '):val(_val), op(_op){}
}nodes[N];
char str[N];
inline bool isDigit(char ch){
 return ch >= '0' && ch <= '9';
}
map<char, int> ms;
void init(){
 ms['('] = 0;
 ms['-'] = ms['+'] = 1;
 ms['*'] = ms['/'] = 2;
 ms['^'] = 3;
}
vType calPoland(node* nodes, int k){
 int i, j;
 vType a, b;
 stack<vType> s;
 for(i = 0; i < k; i++){
  if(nodes[i].op == ' '){
   s.push(nodes[i].val);
  }else{
   a = s.top();
   s.pop();
   b = s.top();
   s.pop();
   switch(nodes[i].op){
    case '+':
     s.push(b + a);
     break;
    case '-':
     s.push(b - a);
     break;
    case '*':
     s.push(b * a);
     break;
    case '/':
     if(fabs(a) < eps) throw true;
     s.push(b / a);
     break;
    case '^':
     s.push(pow(b, a));
     break;
   }
  }
 }
 return s.top();
}
vType poland(char* str){
 int i, k, sign;
 bool inNum, hasDot;  //inNum標記當前是否可以輸入數字, hasDot標記是否已經輸入小數點
 stack<char> oper;
 for(i = k = 0, sign = 1, inNum = true; str[i]; i++){
  if(isDigit(str[i]) || str[i] == '.'){
   if(inNum){
    vType val;
    double w = 1;
    if(str[i] == '.'){
     hasDot = true;
     val = 0;
    }
    else{
     val = str[i] - '0';
     hasDot = false;
    }
    i++;
    while(isDigit(str[i]) || str[i] == '.'){
     if(str[i] == '.'){
      if(hasDot) throw true;
      hasDot = true;
     }else{
      if(hasDot){
       w *= 0.1;
       val += (str[i] - '0') * w;
      }
      else val = val * 10 + str[i] - '0';
     }
     i++;
    }
    i--;
    nodes[k++] = node(val * sign, ' ');
    sign = 1;
    inNum = false;
   }else throw true;
  }else{
   switch(str[i]){
    case '(':
     oper.push(str[i]);
     break;
    case ')':
     while(!oper.empty() && oper.top() != '('){
      nodes[k++] = node(0, oper.top());
      oper.pop();
     }
     if(oper.empty()) throw true;  //沒有與')'匹配的'('
     oper.pop();
     break;
    case '+':
    case '-':
    case '*':
    case '/':
    case '^':
     if(inNum){
      if(str[i] != '+' && str[i] != '-') throw true;
      while(str[i] == '+' || str[i] == '-'){
       if(str[i] == '-') sign *= -1;
       i++;
      }
      i--;
     }else{
      //while(!oper.empty() && ((str[i] != '^' && ms[str[i]] <= ms[oper.top()]) ||
      // ((str[i] == '^' && ms[str[i]] < ms[oper.top()])))){ //如果^是右結合的話就用這個
      while(!oper.empty() && ms[str[i]] <= ms[oper.top()]){
        nodes[k++] = node(0, oper.top());
        oper.pop();
      }
      oper.push(str[i]);
      inNum = true;
     }
     break;
   }
  }
 }
 while(!oper.empty()){
  nodes[k++] = node(0, oper.top());
  oper.pop();
 }
 return calPoland(nodes, k);
}
void Cal(char* str){
 try{
  vType ans = poland(str);
  printf("%.8lf\n", ans);
 }
 catch(bool){
  printf("The teacher is so lazy!\n");
 }
}
int main(){
#ifndef ONLINE_JUDGE
 //freopen("in.txt", "r", stdin);
 //freopen("out.txt", "w", stdout);
#endif
 init();
 while(~scanf("%s", str)) Cal(str);
 return 0;
}

posted on 2011-01-16 19:58 tw 閱讀(729) 評論(0)  編輯 收藏 引用 所屬分類: HDU題解

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

常用鏈接

留言簿

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久免费看| 你懂的亚洲视频| 欧美成人蜜桃| 亚洲自拍三区| 久久9热精品视频| 91久久久国产精品| 亚洲美女91| 国产亚洲欧洲| 欧美黄色aa电影| 欧美肉体xxxx裸体137大胆| 性欧美video另类hd性玩具| 欧美一区二区视频免费观看| 亚洲大胆在线| 一区二区高清在线观看| 好男人免费精品视频| 亚洲第一福利视频| 国产精品黄色在线观看| 久久精品国产精品亚洲| 欧美成年人视频| 新片速递亚洲合集欧美合集| 久久久久国内| 亚洲专区免费| 久久久人成影片一区二区三区| 亚洲免费观看高清完整版在线观看熊| 亚洲神马久久| 亚洲国产小视频| 亚洲一区久久久| 亚洲二区视频在线| 亚洲综合首页| 一个人看的www久久| 欧美一级播放| 中文精品一区二区三区| 久久久国产精品一区二区三区| 在线一区二区三区做爰视频网站| 欧美在线免费视频| 亚洲欧美日韩国产综合精品二区| 美女爽到呻吟久久久久| 久久精品国产69国产精品亚洲| 欧美国产日韩在线观看| 久久久综合香蕉尹人综合网| 国产精品ⅴa在线观看h| 亚洲国产天堂网精品网站| 国产一区二区福利| 中日韩高清电影网| 一区二区欧美视频| 农村妇女精品| 麻豆精品在线播放| 国色天香一区二区| 亚洲在线观看视频网站| 亚洲视频在线视频| 欧美日韩精品二区第二页| 欧美二区在线播放| 在线观看一区二区精品视频| 欧美一级久久久| 欧美在线日韩在线| 国产日韩欧美亚洲一区| 亚洲一区二区在线视频| 亚洲男女自偷自拍| 国产精品露脸自拍| 中文av字幕一区| 亚洲免费伊人电影在线观看av| 欧美日本在线| 艳女tv在线观看国产一区| 9国产精品视频| 欧美另类视频在线| 日韩一区二区精品葵司在线| 一区二区三区精品在线 | 午夜精品久久| 欧美日韩一区二区在线播放| 99riav国产精品| 亚洲综合视频在线| 国产精品美女www爽爽爽| 亚洲在线视频网站| 久久视频这里只有精品| 在线观看日韩www视频免费| 久久婷婷综合激情| 亚洲大黄网站| av不卡在线观看| 国产精品你懂的| 欧美一区二区黄色| 女仆av观看一区| 日韩一区二区精品| 国产精品人人爽人人做我的可爱| 亚洲尤物在线| 美女亚洲精品| 一区二区三区 在线观看视| 欧美性做爰毛片| 欧美中日韩免费视频| 欧美大片免费久久精品三p| 亚洲免费av片| 国产精品网红福利| 开心色5月久久精品| 99这里只有久久精品视频| 香蕉久久久久久久av网站| 激情文学综合丁香| 欧美另类在线播放| 欧美综合国产| 亚洲激情综合| 久久国产福利| 亚洲精品一二区| 国产欧美综合在线| 欧美精品在线免费观看| 亚洲欧美日韩在线观看a三区| 欧美成人自拍| 欧美一区二区在线看| 亚洲国产小视频在线观看| 国产精品theporn| 浪潮色综合久久天堂| 亚洲伊人伊色伊影伊综合网| 欧美高清视频在线观看| 欧美一级在线视频| 日韩午夜剧场| 在线精品国精品国产尤物884a| 国产精品扒开腿爽爽爽视频| 免费在线看成人av| 欧美中文在线视频| 中文日韩电影网站| 亚洲人成欧美中文字幕| 久久精品一区二区三区不卡牛牛| 一区二区三区视频在线播放| 亚洲成人在线| 黑人一区二区| 国产欧美日韩一区二区三区在线 | 久久网站热最新地址| 亚洲一区二区三区在线看 | 欧美fxxxxxx另类| 欧美在线免费看| 亚洲综合色丁香婷婷六月图片| 亚洲精品视频在线播放| 一区视频在线播放| 狠狠色伊人亚洲综合成人| 国产精品美女午夜av| 国产精品chinese| 欧美日韩午夜在线| 欧美日本中文字幕| 欧美精品一区二| 欧美88av| 欧美国产乱视频| 欧美经典一区二区三区| 欧美国产日本| 欧美精品v国产精品v日韩精品| 欧美国产在线观看| 欧美精品久久久久久| 欧美日韩国产999| 欧美日韩另类综合| 国产精品二区二区三区| 国产精品嫩草久久久久| 国产精品日韩在线观看| 国产毛片精品国产一区二区三区| 国产精品狠色婷| 国产精品视区| 国产深夜精品| 伊人久久av导航| 亚洲级视频在线观看免费1级| 亚洲国产欧美一区| 亚洲九九精品| 亚洲一区久久久| 久久精品亚洲精品国产欧美kt∨| 久久国产乱子精品免费女 | 亚洲免费高清| 在线午夜精品| 欧美一二三区精品| 久久亚洲综合色| 欧美激情精品久久久久久| 亚洲精品中文字幕在线| 中日韩美女免费视频网站在线观看| 亚洲女人天堂成人av在线| 欧美一区二区视频在线观看| 久久男人av资源网站| 欧美日韩国产系列| 国产亚洲一区二区三区| 91久久夜色精品国产九色| 亚洲一区二区视频在线观看| 久久久久在线| 最新国产精品拍自在线播放| 亚洲午夜激情网页| 久久久久久日产精品| 欧美日韩亚洲高清| 永久555www成人免费| 亚洲天堂第二页| 免费观看久久久4p| 9色国产精品| 久久亚洲春色中文字幕| 欧美日韩在线播放一区二区| 精品二区视频| 亚洲——在线| 亚洲成色www久久网站| 亚洲欧美激情视频| 欧美精品午夜视频| 国外成人在线视频网站| 亚洲午夜精品久久| 欧美激情在线免费观看| 亚洲欧美日韩综合aⅴ视频| 欧美精品亚洲| 亚洲国产一二三|