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

Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
    發(fā)指啊... 第一次快寫完了結(jié)果傲游掛了... ...直接全部重來啊... ...OMG
       
    這套比2005年的稍難, 不過基本都是小模擬啦, 對ACM菜鳥來說都是大水題~~

1. 還是A+B
    注意題目第三個case, 8的前面全當成0, 所以108和8的前兩位看作相同的
    我的方法很WS, 因為題目說不超過8位, 就先把不足8位的數(shù)字串補足8位, 高位全填0, 然后從后面開始比較k位就ok了~
//浙大計算機研究生復試上機考試-2006年 還是A+B
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>

int k, s1, s2, l1, l2;
char a[10], b[10];

int cal(char *s) {
    
int i, t = 0;
    
for(i = 0; s[i]; ++i) t = t * 10 + s[i] - '0';
    
return t;
}


int main() {
    
int i;
    
while(1{
        scanf(
"%s %s %d", a, b, &k);
        
if(!strcmp(a, "0"&& !strcmp(b, "0")) break;
        l1 
= strlen(a); l2 = strlen(b);
        
for(i = 7; i > 7 - l1; --i) a[i] = a[l1 + i - 8];
        
for(i = 0; i <= 7 - l1; ++i) a[i] = '0';
        
for(i = 7; i > 7 - l2; --i) b[i] = b[l2 + i - 8];
        
for(i = 0; i <= 7 - l2; ++i) b[i] = '0';
        
if(!strncmp(a + 8 - k,b + 8 - k, k)) {
            puts(
"-1");
            
continue;
        }

        s1 
= cal(a); s2 = cal(b);
        printf(
"%d\n", s1 + s2);
    }

    
return 0;
}


2. 火星A+B
    一開始理解錯題意了, 不過應(yīng)該不會有人跟我有一樣NC的理解吧... = = ...就不說了
    有點像高精度加法, 一位位加就好了, 注意進制, 先打出100以內(nèi)的質(zhì)數(shù)表(保險起見多打了兩個)
    開始一處初始化忘了, WA三次才發(fā)現(xiàn)... ...
    PS: Discuss驚現(xiàn)ECUST-SJTU---ssjia大牛, 各種Orz
    2011.09.17 PS: 這題九度上死活過不了啊... 求交流
//浙大計算機研究生復試上機考試-2006年 火星A+B
#include<ctype.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<algorithm>
    
using namespace std;

int bas[] = {2357111317192329313741434753596167717379838997101103};
int a[30], b[30], c[30], l1, l2;
char s1[300], s2[300];

int main() {
    
int i, tn1, tn2, tp;
    
while(1{
        scanf(
"%s %s", s1, s2);
        
if(!strcmp(s1, "0"&& !strcmp(s2, "0")) break;
        l1 
= strlen(s1);
        l2 
= strlen(s2);
        memset(a, 
0sizeof(a));
        memset(b, 
0sizeof(b));
        memset(c, 
0sizeof(c));
        tn1 
= tn2 = 0; tp = 1;
        
for(i = l1 - 1; i >= 0--i) {
            
if(s1[i] == ','{
                tn1
++;
                tp 
= 1;
            }

            
else if(isdigit(s1[i])) {
                a[tn1] 
= a[tn1] + tp * (s1[i] - '0');
                tp 
*= 10;
            }

        }

        tp 
= 1;
        
for(i = l2 - 1; i >= 0--i) {
            
if(s2[i] == ','{
                tn2
++;
                tp 
= 1;
            }

            
else if(isdigit(s2[i])) {
                b[tn2] 
= b[tn2] + tp * (s2[i] - '0');
                tp 
*= 10;
            }

        }

        
int cf = 0;
        
for(i = 0; i <= min(tn1, tn2); ++i) {
            c[i] 
= cf + a[i] + b[i];
            
if(c[i] >= bas[i]) {
                cf 
= c[i] / bas[i];
                c[i] 
%= bas[i];
            }

            
else
                cf 
= 0;
        }

        
for(;i <= max(tn1, tn2); ++i) {
            
if(i <= tn1) {
                c[i] 
= cf + a[i];
                
if(c[i] >= bas[i]) {
                    cf 
= c[i] / bas[i];
                    c[i] 
%= bas[i];
                }

                
else
                    cf 
= 0;
            }

            
else if(i <= tn2) {
                c[i] 
= cf + b[i];
                
if(c[i] >= bas[i]) {
                    cf 
= c[i] / bas[i];
                    c[i] 
%= bas[i];
                }

                
else
                    cf 
= 0;
            }

        }

        c[i] 
+= cf;
        
if(c[i] >= bas[i]) {
            cf 
= c[i] / bas[i];
            c[i] 
%= bas[i];
        }

        
else
            cf 
= 0;
        
if(cf) c[++i] = cf;
        
while(c[i] == 0 && i > 0--i;
        
for(; i > 0--i) printf("%d,", c[i]);
        printf(
"%d\n", c[0]);
    }

    
return 0;
}


3. 還是暢通工程
    模板題, 不解釋

//浙大計算機研究生復試上機考試-2006年 還是暢通工程
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#define N 110
#define INF 0x3f3f3f3f

int n, adj[N][N], lowcost[N], closest[N];

void prim(int c[][N]) {
    
bool s[N];
    s[
1= true;
    
for(int i = 2; i <= n; ++i) {
        lowcost[i] 
= c[1][i];
        closest[i] 
= 1;
        s[i] 
= false;
    }

    
for(int i = 1; i < n; ++i) {
        
int mix = INF, j = 1;
        
for(int k = 2; k <= n; ++k)
            
if(lowcost[k] < mix && !s[k]) {
                mix 
= lowcost[k];
                j 
= k;
            }

            s[j] 
= true;
            
for(int k = 2; k <= n; ++k)
                
if(c[j][k] < lowcost[k] && !s[k]) {
                    lowcost[k] 
= c[j][k];
                    closest[k] 
= j;
                }

    }

}


int main() {
    
int i, j, ans, a, b, c;
    
while(scanf("%d"&n), n) {
        
for(i = 1; i <= n * (n - 1/ 2++i) {
            scanf(
"%d %d %d"&a, &b, &c);
            adj[a][b] 
= adj[b][a] = c;
        }

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

    
return 0;
}



4. 統(tǒng)計同成績學生人數(shù)
    大水題, 不解釋

//浙大計算機研究生復試上機考試-2006年 統(tǒng)計同成績學生人數(shù)
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#define N 1010

int a[N], n, ans;

int main() {
    
int x, i;
    
while(scanf("%d"&n), n) {
        
for(i = 0; i < n; ++i) scanf("%d"&a[i]);
        scanf(
"%d"&x);
        ans 
= 0;
        
for(i = 0; i < n; ++i)
            
if(a[i] == x) ans++;
        printf(
"%d\n", ans);
    }

    
return 0;
}



5. 簡單計算器
    我的方法比較麻煩... ...設(shè)置兩個棧(偷懶用了STL, 慢就慢吧...||), 一個符號棧, 一個操作數(shù)棧
    當讀進操作數(shù)時, 若符號棧棧頂為*或/, 就馬上計算掉, 彈出操作數(shù)棧棧頂連續(xù)兩個元素和符號棧棧頂, 算好之后結(jié)果壓進操作數(shù)棧, 這里注意下運算順序, '-','/'都是有計算順序要求的
    當讀到運算符時, 什么都不管, 直接壓進符號棧
    最后把操作數(shù)棧和符號棧元素全部倒置(稍微想想就知道為什么了, 一開始這里沒想清楚, 單步了好一會兒才發(fā)現(xiàn)... ...), 然后不斷彈出符號棧棧頂符號和操作數(shù)棧頂連續(xù)兩個操作數(shù), 計算完后結(jié)果壓入操作數(shù)棧, 直至符號棧為空.

//浙大計算機研究生復試上機考試-2006年 簡單計算器
#include<stack>
#include
<ctype.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
using namespace std;

double cal(double a, double b, char c) {
    
if(c == '+'return a + b;
    
if(c == '-'return a - b;
    
if(c == '*'return a * b;
    
if(c == '/'return a / b;
}


int main() {
    
int i;
    
char op[210];
    
while(gets(op), strcmp(op, "0"!= 0{
        i 
= 0;
        stack
<double> opa;
        stack
<char> opr;
        
while(op[i]) {
            
if(isdigit(op[i])) {
                
double tp = 0.0;
                
while(isdigit(op[i])) {
                    tp 
= tp * 10 + op[i] - '0';
                    
++i;
                }

                opa.push(tp);
                
if(!opr.empty() && opr.top() == '*'{
                    opr.pop();
                    
double t1 = opa.top(); opa.pop();
                    
double t2 = opa.top(); opa.pop();
                    opa.push(cal(t2, t1, 
'*'));
                }

                
else if(!opr.empty() && opr.top() == '/'{
                    opr.pop();
                    
double t1 = opa.top(); opa.pop();
                    
double t2 = opa.top(); opa.pop();
                    opa.push(cal(t2, t1, 
'/'));
                }

            }

            
else if(op[i] == '+'{
                opr.push(
'+');
                
++i;
            }

            
else if(op[i] == '-'{
                opr.push(
'-');
                
++i;
            }

            
else if(op[i] == '*'{
                opr.push(
'*');
                
++i;
            }

            
else if(op[i] == '/'{
                opr.push(
'/');
                
++i;
            }

            
else
                
++i;
        }

        stack
<char>opr1;
        stack
<double>opa1;
        
while(!opr.empty()) {
            opr1.push(opr.top());
            opr.pop();
        }

        
while(!opa.empty()) {
            opa1.push(opa.top());
            opa.pop();
        }

        
while(!opr1.empty()) {
            
double t1 = opa1.top(); opa1.pop();
            
double t2 = opa1.top(); opa1.pop();
            opa1.push(cal(t1, t2, opr1.top()));
            opr1.pop();
        }

        printf(
"%.2lf\n", opa1.top());
    }

    
return 0;
}


2011.09.10 PS: 這題又用了另一種方法做
     遇到數(shù)字的時候不處理, 直接壓入操作數(shù)棧, 遇到'*'或'/'時, 操作符棧頂連續(xù)的'*'或'/'都計算掉, 再將自己壓入操作符棧, 遇到'+'或'-'時, 操作符棧里的都能計算掉, 計算完后再將自己壓入操作符棧, 最后將操作符棧從棧頂依次處理即可, 因為此時不會出現(xiàn)多個'+''-', '*''/'相連導致運算順序錯誤的情況
     本來以為這樣很方便, 結(jié)果代碼比原來長了快一倍... (因為寫得挫... )
     其實像書上那樣加入結(jié)束字符再處理的話代碼應(yīng)該會短一些... 有空再敲一次

//2006年浙江大學計算機及軟件工程研究生機試題 簡單計算器
#include<ctype.h>
#include
<stack>
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
using namespace std;

double cal(double a, double b, char c) {
    
if(c == '+'return a + b;
    
if(c == '-'return a - b;
    
if(c == '*'return a * b;
    
if(c == '/'return a / b;
}


int main() {
    
int i;
    
char op[220];
    
while(gets(op), strcmp(op, "0")) {
        i 
= 0;
        stack
<double> opa;
        stack
<char> opr;
        
while(op[i]) {
            
if(isdigit(op[i])) {
                
double tp = 0.0;
                
while(isdigit(op[i])) {
                    tp 
= tp * 10 + op[i] - '0';
                    
++i;
                }

                opa.push(tp);
            }

            
else if(op[i] == '+'{
                
if(opr.empty()) opr.push('+');
                
else {
                    
while(!opr.empty()) {
                        
if(opr.top() == '+'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opr.pop();
                            opa.push(cal(t2, t1, 
'+'));
                        }

                        
else if(opr.top() == '-'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'-'));
                            opr.pop();
                        }

                        
else if(opr.top() == '*'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'*'));
                            opr.pop();
                        }

                        
else if(opr.top() == '/'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'/'));
                            opr.pop();
                        }

                    }

                    opr.push(
'+');
                }

                
++i;
            }

            
else if(op[i] == '-'{
                
if(opr.empty()) opr.push('-');
                
else {
                    
while(!opr.empty()) {
                        
if(opr.top() == '-'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'-'));
                            opr.pop();
                        }

                        
else if(opr.top() == '+'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'+'));
                            opr.pop();
                        }

                        
else if(opr.top() == '*'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'*'));
                            opr.pop();
                        }

                        
else if(opr.top() == '/'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'/'));
                            opr.pop();
                        }

                    }

                    opr.push(
'-');
                }

                
++i;
            }

            
else if(op[i] == '*'{
                
if(opr.empty()) opr.push('*');
                
else {
                    
while(!opr.empty()) {
                        
if(opr.top() == '*'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'*'));
                            opr.pop();
                        }

                        
else if(opr.top() == '/'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'/'));
                            opr.pop();
                        }

                        
else
                            
break;
                    }

                    opr.push(
'*');
                }

                
++i;
            }

            
else if(op[i] == '/'{
                
if(opr.empty()) opr.push('/');
                
else {
                    
while(!opr.empty()) {
                        
if(opr.top() == '/'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'/'));
                            opr.pop();
                        }

                        
else if(opr.top() == '*'{
                            
double t1 = opa.top(); opa.pop();
                            
double t2 = opa.top(); opa.pop();
                            opa.push(cal(t2, t1, 
'*'));
                            opr.pop();
                        }

                        
else
                            
break;
                    }

                    opr.push(
'/');
                }

                
++i;
            }

            
else
                
++i;
        }

        
while(!opr.empty()) {
            
double t1 = opa.top(); opa.pop();
            
double t2 = opa.top(); opa.pop();
            opa.push(cal(t2, t1, opr.top()));
            opr.pop();
        }

        printf(
"%.2lf\n", opa.top());
    }

    
return 0;
}


 

Feedback

# re: 浙大計算機研究生復試上機考試-2006年  回復  更多評論   

2012-03-02 10:49 by
最后把操作數(shù)棧和符號棧元素全部倒置(稍微想想就知道為什么了, 一開始這里沒想清楚, 單步了好一會兒才發(fā)現(xiàn)... ...),
為什么啊?還是沒想明白,盼能解答

# re: 浙大計算機研究生復試上機考試-2006年  回復  更多評論   

2012-03-02 14:16 by Uriel
@毛
因為最后只剩加減法,加減法是從左到右依次計算,而在進棧時是從左到右進棧的,出棧順序與入棧相反,直接出棧一個計算一個的話就變成是從右到左計算了,所以倒置一下。。(不過這種做法很挫就是了。。= =)

# re: 浙大計算機研究生復試上機考試-2006年  回復  更多評論   

2012-03-02 14:26 by
哦,想通了。一下子腦子短路了,好笨啊!!!我也想的是這個方法,嘿嘿。可每次提交都是WA,看了帖子才知道錯在這了,謝謝~~~

# re: 浙大計算機研究生復試上機考試-2006年  回復  更多評論   

2012-03-02 14:30 by Uriel
@毛
表示我當時debug了半天才發(fā)現(xiàn)。。= =
感覺做題之前還是該拿筆算算,想想清楚。。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 欧美日韩精品二区第二页| 久热这里只精品99re8久| 午夜精品婷婷| 亚洲午夜高清视频| 亚洲欧美激情一区二区| 久久国产精品一区二区| 免费短视频成人日韩| 欧美激情bt| 亚洲三级免费电影| 亚洲第一精品影视| 中文精品一区二区三区 | 亚洲国产欧美在线人成| 亚洲精品亚洲人成人网| 亚洲一区美女视频在线观看免费| 亚洲免费视频一区二区| 久久一区激情| 亚洲欧洲日产国产网站| 亚洲欧美日韩天堂| 欧美成人激情视频免费观看| 国产精品爽黄69| 91久久中文| 欧美呦呦网站| 亚洲国产一区二区三区高清| 亚洲一区二区三区视频| 欧美91精品| 国内精品免费在线观看| 99成人精品| 免费观看成人www动漫视频| 99re国产精品| 美女精品在线| 国产一区二区三区观看 | 日韩网站在线观看| 久久久噜噜噜久久中文字免 | 久久在线免费观看视频| 国产精品久久久久久久久免费| 亚洲高清中文字幕| 久久久久久尹人网香蕉| 国产精品99久久久久久久女警 | 国产欧美日韩视频| 亚洲视频在线视频| 亚洲第一精品影视| 久久久久国产免费免费| 国产欧美亚洲视频| 亚洲在线一区| 亚洲毛片播放| 久久久久久999| 国产一级揄自揄精品视频| 香蕉久久一区二区不卡无毒影院 | 欧美日本国产一区| 亚洲国产精品电影在线观看| 久久久久国产免费免费| 亚洲欧美成人网| 国产精品久久久久7777婷婷| 一本色道久久综合一区| 亚洲欧洲另类国产综合| 欧美大尺度在线| 在线播放亚洲| 嫩草影视亚洲| 免费亚洲电影| 亚洲免费电影在线观看| 亚洲日本久久| 欧美图区在线视频| 亚洲欧美中文另类| 午夜精品美女久久久久av福利| 国产女主播一区二区三区| 久久成人国产| 久久国产婷婷国产香蕉| **欧美日韩vr在线| 亚洲激情视频在线观看| 欧美精品日韩一区| 亚洲性图久久| 午夜精品av| 亚洲第一在线综合网站| 亚洲欧洲综合另类在线| 国产精品久久久久久久app| 欧美亚洲一区| 久久久久亚洲综合| 99视频超级精品| 亚洲影院一区| 亚洲电影免费观看高清完整版| 欧美成人性网| 欧美日韩亚洲高清| 欧美一区二区福利在线| 久久久夜夜夜| 亚洲一区二区三区高清不卡| 亚洲欧美日韩国产一区二区三区| 国产专区精品视频| 91久久精品美女| 国产精品一区二区三区观看 | 欧美成人午夜剧场免费观看| 欧美国产第二页| 先锋影音国产精品| 免费日韩成人| 欧美一区二区视频97| 免费h精品视频在线播放| 亚洲中无吗在线| 老司机精品久久| 欧美一区91| 欧美日韩成人在线观看| 久久嫩草精品久久久精品| 欧美日韩在线播放一区二区| 久久中文字幕一区| 国产精品你懂的在线| 亚洲国产精品一区二区www| 国产乱码精品| 99视频精品免费观看| 亚洲国产精品毛片| 欧美亚洲免费电影| 亚洲一区二区黄色| 玖玖玖国产精品| 欧美专区福利在线| 欧美精品1区| 六月婷婷久久| 国产精品毛片高清在线完整版| 亚洲第一黄网| 欲色影视综合吧| 午夜在线电影亚洲一区| 亚洲色诱最新| 欧美日本成人| 欧美电影在线播放| 激情一区二区三区| 性色av一区二区三区在线观看| 中日韩高清电影网| 欧美精品一区二区久久婷婷| 蜜臀av在线播放一区二区三区| 国产精品私拍pans大尺度在线| 日韩视频在线观看免费| 9l视频自拍蝌蚪9l视频成人| 欧美jizzhd精品欧美喷水| 蜜臀av一级做a爰片久久| 揄拍成人国产精品视频| 久久综合久久88| 欧美阿v一级看视频| 在线看欧美日韩| 另类激情亚洲| 最近中文字幕mv在线一区二区三区四区 | 久久视频免费观看| 国产视频一区二区在线观看| 亚洲自拍都市欧美小说| 性感少妇一区| 国产午夜精品美女视频明星a级 | 欧美午夜www高清视频| 一本色道久久综合亚洲精品不| 一区二区三区日韩欧美| 欧美日韩视频在线一区二区观看视频| 亚洲高清免费在线| 日韩亚洲欧美成人| 欧美日韩亚洲一区三区| 亚洲一区二区三| 久久亚洲精品伦理| 亚洲精品国久久99热| 欧美日韩一区不卡| 亚洲永久在线| 麻豆精品在线视频| 亚洲破处大片| 欧美私人网站| 欧美一区在线视频| 欧美激情欧美狂野欧美精品| 在线一区二区日韩| 国产日韩欧美一区| 欧美韩日精品| 午夜激情综合网| 亚洲国产女人aaa毛片在线| 亚洲一区制服诱惑| 在线电影欧美日韩一区二区私密| 欧美福利小视频| 亚洲欧美成人精品| 亚洲成色777777在线观看影院| 亚洲一区二区三| 亚洲国产精品一区二区三区| 国产精品国产成人国产三级| 久久精品国产一区二区电影| 亚洲精品专区| 老司机一区二区三区| 亚洲少妇诱惑| 久久av一区二区三区亚洲| 国产免费成人av| 欧美黑人在线播放| 亚洲免费影视| 亚洲欧洲综合另类在线| 性做久久久久久| 亚洲狼人精品一区二区三区| 国产精品永久免费视频| 欧美激情精品久久久六区热门 | 亚洲精品乱码久久久久久蜜桃麻豆| 欧美一区永久视频免费观看| 亚洲人成在线观看一区二区 | 欧美亚洲三级| 99精品国产高清一区二区| 国产综合第一页| 国产精品你懂的| 欧美日韩一区二区在线| 欧美波霸影院| 久久一区二区精品| 久久精品视频一| 欧美在线视频观看| 午夜精品影院| 亚洲男女自偷自拍图片另类| 亚洲最新视频在线播放|