• <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>

            Uriel's Corner

            Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
            posts - 0, comments - 50, trackbacks - 0, articles - 594
                各種悲劇, 深刻感覺到... ... 成績是王道, 比賽什么的都是浮云... ... 暑假好好啃DS和高數吧... ...

                再切套水題放松一下... ... 不過這套比起前面三年的還真不算很水的... ... 貌似現在HDU上的ZJU 2005-2011都切了... ...

            1. 又一版 A+B
                這個A+B很水啦, 遞歸輸出實現進制轉換就行
            //浙大計算機研究生復試上機考試-2008年 又一版 A+B
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #define I __int64

            int m;
            I a, b;

            void print(I x) {
                
            if(!x) return;
                print(x 
            / m);
                printf(
            "%d", x % m);
            }


            int main() {
                
            while(scanf("%d"&m), m) {
                    scanf(
            "%I64d %I64d"&a, &b);
                    a 
            += b;
                    
            if(!a) printf("0");
                    
            else
                        print(a);
                    puts(
            "");
                }

                
            return 0;
            }


            2. 歐拉回路
                這題只是判歐拉回路是否存在, 不用輸出歐拉回路的話就不用那個神奇的套圈法了
                根據歐拉回路條件, 首先圖要連通(一開始WA了一次忘記這個條件了), 這個嘛, BFS一下就好了, 再判下是否每個結點度數都是偶數
            //浙大計算機研究生復試上機考試-2008年 歐拉回路
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #define N 1010

            int n, m, deg[N], f[N][N], vis[N], q[N * 2];

            void BFS() {
                
            int l, r, i;
                memset(vis, 
            0sizeof(vis));
                q[
            0= 1; vis[1= 1;
                l 
            = 0, r = 1;
                
            while(l < r) {
                    
            for(i = 1; i <= n; ++i) {
                        
            if(i != q[l] && !vis[i] && f[i][q[l]]) {
                            vis[i] 
            = 1;
                            q[r
            ++= i;
                        }

                    }

                    
            ++l;
                }

            }


            int main() {
                
            int x, y, i;
                
            while(scanf("%d"&n), n) {
                    scanf(
            "%d"&m);
                    memset(deg, 
            0sizeof(deg));
                    memset(f, 
            0sizeof(f));
                    
            for(i = 0; i < m; ++i) {
                        scanf(
            "%d %d"&x, &y);
                        
            if(!f[x][y]) {
                            deg[x]
            ++;
                            deg[y]
            ++;
                            f[x][y] 
            = f[y][x] = 1;
                        }

                    }

                    BFS();
                    
            for(i = 1; i <= n; ++i) {
                        
            if(!vis[i] || deg[i] % 2break;
                    }

                    
            if(i <= n) puts("0");
                    
            else
                        puts(
            "1");
                }

                
            return 0;
            }


            3. 繼續暢通工程
                繼續prim模板題, 不解釋
            //浙大計算機研究生復試上機考試-2008年 繼續暢通工程
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #define N 110
            #define INF 0x3f3f3f3f
            #define min(x, y) (x < y ? x : y)

            int n, ans, 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 mi = INF, j = 1;
                    
            for(int k = 2; k <= n; ++k)
                        
            if(lowcost[k] < mi && !s[k]) {
                            mi 
            = 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, x, y, c, st;
                
            while(scanf("%d"&n), n) {
                    
            for(i = 1; i <= n; ++i) {
                        
            for(j = 1; j <= n; ++j) {
                            
            if(i == j) continue;
                            
            else
                                adj[i][j] 
            = adj[j][i] = INF;
                        }

                    }

                    
            for(i = 0; i < n * (n - 1/ 2++i) {
                        scanf(
            "%d %d %d %d"&x, &y, &c, &st);
                        
            if(!st) {
                            adj[x][y] 
            = adj[y][x] = min(adj[y][x], c);
                        }

                        
            else
                            adj[x][y] 
            = adj[y][x] = 0;
                    }

                    prim(adj);
                    ans 
            = 0;
                    
            for(i = 1; i <= n; ++i) {
                        ans 
            += lowcost[i];
                    }

                    printf(
            "%d\n", ans);
                }

                
            return 0;
            }


            4. 魔咒詞典
                5000Ms的時限, 果斷水過去了... ...
                2011.09.17 PS: 坑爹啊... 九度怎么都AC不能...
            //浙大計算機研究生復試上機考試-2008年 魔咒詞典
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;
            #define N 100010
            #define Q 1010

            struct M {
                
            int mk, id, ans;
                
            char name[25], s[100];
            }
            p[N], q[N];

            bool cmp1(M a, M b) {
                
            return strcmp(a.name, b.name) < 0;
            }


            bool cmp2(M a, M b) {
                
            return strcmp(a.s, b.s) < 0;
            }


            int nq, id[Q];

            int main() {
                
            int i, j, n = 0, pos1, pos2;
                
            char s[110];
                
            while(gets(s), strcmp(s, "@END@")) {
                    
            for(i = 0; s[i] != '['++i);
                    
            for(j = ++i; s[j] != ']'++j);
                    strncpy(p[n].name, 
            &s[i], j - i);
                    strncpy(q[n].name, 
            &s[i], j - i);
                    strcpy(p[n].s, 
            &s[j + 2]);
                    strcpy(q[n].s, 
            &s[j + 2]);
                    
            ++n;
                }

                sort(p, p 
            + n, cmp1);
                sort(q, q 
            + n, cmp2);
                scanf(
            "%d"&nq);
                getchar();
                
            for(i = 0; i < nq; ++i) {
                    gets(s);
                    
            if(s[0== '['{
                        s[strlen(s) 
            - 1= '\0';
                        
            for(j = 0; j < n; ++j) {
                            
            if(!strcmp(p[j].name, &s[1])) {
                                puts(p[j].s);
                                
            break;
                            }

                        }

                        
            if(j == n) puts("what?");
                    }

                    
            else {
                        
            for(j = 0; j < n; ++j) {
                            
            if(!strcmp(q[j].s, s)) {
                                puts(q[j].name);
                                
            break;
                            }

                        }

                        
            if(j == n) puts("what?");
                    }

                }

                
            return 0;
            }


            5. 畢業bg
                簡單DP, 好久不寫DP, 一點感覺都沒有了... ... 還看了一下解題報告才搞出sample, dp數組NC開小了還WA了一次... ...
            //浙大計算機研究生復試上機考試-2008年 畢業bg
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;
            #define N 35

            struct M {
                
            int h, l, t;
            }
            p[N];

            bool cmp(M a, M b) {
                
            if(a.t != b.t) return a.t < b.t;
                
            return a.h < b.h;
            }


            int n, mxt, dp[1010];

            int main() {
                
            int i, j;
                
            while(scanf("%d"&n), n > 0{
                    mxt 
            = 0;
                    memset(dp, 
            0sizeof(dp));
                    
            for(i = 1; i <= n; ++i) {
                        scanf(
            "%d %d %d"&p[i].h, &p[i].l, &p[i].t);
                        mxt 
            = max(p[i].t, mxt);
                    }

                    sort(p 
            + 1, p + n + 1, cmp);
                    
            for(i = 1; i <= n; ++i) {
                        
            for(j = p[i].t; j >= p[i].l; --j)
                            dp[j] 
            = max(dp[j - p[i].l] + p[i].h, dp[j]);
                        
            for(j = p[i].t + 1; j <= mxt; ++j)
                            dp[j] 
            = max(dp[j], dp[j - 1]);
                    }

                    printf(
            "%d\n", dp[mxt]);
                }

                
            return 0;
            }
            国产成人精品久久二区二区| 久久精品免费网站网| 久久久一本精品99久久精品88| 久久久久久久久久久久中文字幕| 久久亚洲精品中文字幕三区| 久久亚洲天堂| 精品免费tv久久久久久久| 久久se精品一区二区影院 | 久久精品国产精品国产精品污| 久久香蕉一级毛片| 国产精品久久久久免费a∨| 国产精品美女久久久久| 久久精品国产亚洲5555| 亚洲人成电影网站久久| 久久精品女人天堂AV麻| 亚洲av日韩精品久久久久久a| 久久99精品九九九久久婷婷| 久久精品天天中文字幕人妻 | 久久夜色撩人精品国产| 99久久精品午夜一区二区| 中文成人久久久久影院免费观看| 91精品国产91久久| 狠狠色婷婷久久一区二区三区| 狠狠色丁香久久婷婷综合蜜芽五月 | 狠狠综合久久AV一区二区三区| 久久99亚洲综合精品首页| 久久精品国产亚洲AV无码麻豆| 一本色道久久88综合日韩精品 | 伊人久久大香线蕉成人| 精品久久久久久久久久久久久久久 | 久久精品日日躁夜夜躁欧美| 日韩美女18网站久久精品| 色综合久久久久网| 国产精品激情综合久久| 日本道色综合久久影院| 中文字幕一区二区三区久久网站| 精品999久久久久久中文字幕| 99久久久精品| 日韩精品久久久久久| 国产成人久久久精品二区三区| 亚洲国产成人久久综合碰碰动漫3d|