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

                再做一套玩玩~~

            1. 最小長方形
                就是分別找到x, y的最小, 最大值, 水題, 不解釋

            //浙大計算機研究生復試上機考試-2007年 最小長方形
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;

            int mx, my, ax, ay, x, y;

            int main() {
                
            bool flg = false;
                
            while(1{
                    mx 
            = my = 300;
                    ax 
            = ay = -300;
                    
            while(scanf("%d %d"&x, &y)) {
                        
            if(!&& !&& flg) return 0;
                        
            if(!&& !y) {
                            flg 
            = true;
                            
            break;
                        }

                        mx 
            = min(mx, x);
                        my 
            = min(my, y);
                        ax 
            = max(ax, x);
                        ay 
            = max(ay, y);
                        flg 
            = false;
                    }

                    printf(
            "%d %d %d %d\n", mx, my, ax, ay);
                }

                
            return 0;
            }


             

            2. 統計字符
                大水, 不解釋

            //浙大計算機研究生復試上機考試-2007年 統計字符
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;

            int cnt[300];
            char s[10], str[100];

            int main() {
                
            int i;
                
            while(gets(s), strcmp(s, "#")) {
                    gets(str);
                    memset(cnt, 
            0sizeof(cnt));
                    
            for(i = 0; str[i]; ++i) {
                        cnt[str[i]]
            ++;
                    }

                    
            for(i = 0; s[i]; ++i) {
                        printf(
            "%c %d\n", s[i], cnt[s[i]]);
                    }

                }

                
            return 0;
            }



            3. 游船出租
                大水, 不解釋

            //浙大計算機研究生復試上機考試-2007年 游船出租
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #define N 110

            struct boat{
                
            int id, st, tt, bg;
            }
            p[N];

            int cnt;
            double ti;

            int main() {
                
            int id, t, h, m;
                
            char op[3];
                
            while(1{
                    
            while(scanf("%d"&id)) {
                        
            if(id == -1return 0;
                        scanf(
            "%s %d:%d", op, &h, &m);
                        
            if(!id) break;
                        t 
            = h * 60 + m;
                        
            if(op[0== 'S'{
                            
            if(p[id].st == 1continue;
                            
            else {
                                p[id].st 
            = 1;
                                p[id].bg 
            = t;
                            }

                        }

                        
            else if(op[0== 'E'{
                            
            if(!p[id].st) continue;
                            
            else {
                                p[id].st 
            = 0;
                                ti 
            += t - p[id].bg;
                                cnt
            ++;
                            }

                        }

                    }

                    
            if(cnt)printf("%d %.0lf\n", cnt, ti / cnt);
                    
            else
                        puts(
            "0 0");
                    cnt 
            = 0;
                    ti 
            = 0.0;
                }

                
            return 0;
            }


             

            4. EXCEL排序
                考sort的大水題

            //浙大計算機研究生復試上機考試-2007年 EXCEL排序
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;
            #define N 100010

            struct M {
                
            int sco;
                
            char id[10], name[10];
            }
            p[N];

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


            bool cmp2(M a, M b) {
                
            if(strcmp(a.name, b.name))return strcmp(a.name, b.name) < 0;
                
            else
                    
            return strcmp(a.id, b.id) < 0;
            }


            bool cmp3(M a, M b) {
                
            if(a.sco != b.sco)return a.sco < b.sco;
                
            else
                    
            return strcmp(a.id, b.id) < 0;
            }


            int c, n;

            int main() {
                
            int i, g = 1;
                
            while(scanf("%d %d"&n, &c), n | c) {
                    
            for(i = 0; i < n; ++i) {
                        scanf(
            "%s %s %d", p[i].id, p[i].name, &p[i].sco);
                    }

                    
            if(c == 1) sort(p, p + n, cmp1);
                    
            else if(c == 2) sort(p, p + n, cmp2);
                    
            else if(c == 3) sort(p, p + n, cmp3);
                    printf(
            "Case %d:\n", g++);
                    
            for(i = 0; i < n; ++i)
                        printf(
            "%s %s %d\n", p[i].id, p[i].name, p[i].sco);
                }

                
            return 0;
            }


             

            5. 暢通工程
                注意重邊, 一開始有個地方NC了, 一開始我最后判'?'是算出最小生成樹的所有邊權值和大于INF就輸出'?', 這樣有可能每條邊其實都沒超過INF, 但總和超過了, 被我判成'?', 實際上這種情況是符合要求的. 改為判斷每條邊都小于INF就過了

            //浙大計算機研究生復試上機考試-2007年 暢通工程
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #include
            <algorithm>
            using namespace std;
            #define N 110
            #define INF 0x3f3f3f3f

            int n, m, 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, a, b, c;
                
            while(scanf("%d %d"&m, &n), m) {
                    
            for(i = 1; i <= n; ++i) {
                        
            for(j = 1; j <= n; ++j) {
                            
            if(i == j) adj[i][j] = 0;
                            
            else
                                adj[i][j] 
            = adj[j][i] = INF;
                        }

                    }

                    
            for(i = 0; i < m; ++i) {
                        scanf(
            "%d %d %d"&a, &b, &c);
                        adj[a][b] 
            = min(c, adj[a][b]);
                        adj[b][a] 
            = adj[a][b];
                    }

                    prim(adj);
                    ans 
            = 0;
                    
            bool ok = true;
                    
            for(i = 1; i <= n; ++i) {
                        
            if(lowcost[i] >= INF) {
                            ok 
            = false;
                            
            break;
                        }

                        ans 
            += lowcost[i];
                    }

                    
            if(!ok) puts("?");
                    
            else
                        printf(
            "%d\n", ans);
                }

                
            return 0;
            }


            6. 最大報銷額
                0-1背包, 以物品項數作為dp數組的下標
                這題很坑爹, 那個單張發票中A, B, C三種物品以外的物品都不考慮, 而且這三種物品在同一張發票中可能重復出現, 要把它們全加起來, 單張發票的A或者B或者C都不能超過600.0 ... ...因為這個WA到死啊... ...

            //浙大計算機研究生復試上機考試-2007年 最大報銷額
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <string.h>
            #define N 50

            struct tic {
                
            int nt;
                
            double mon;
            }
            p[N];

            int n, nn, aa, cnt[3];
            double q, ans, dp[10100];

            void DP() {
                
            for(int i = 0; i <= aa; ++i) dp[i] = 0;
                
            for(int i = 0; i < nn; ++i) {
                    
            for(int j = aa; j >= p[i].nt; --j) {
                        
            double tp = dp[j - p[i].nt] + p[i].mon;
                        
            if(dp[j] < tp && dp[j - p[i].nt] + p[i].mon <= q) dp[j] = tp;
                    }

                }

            }


            int main() {
                
            int i, j, k;
                
            char c[10];
                
            double x, tp, ttp;
                
            while(scanf("%lf %d"&q, &n), n) {
                    nn 
            = aa = 0;
                    
            for(i = 0; i < n; ++i) p[i].mon = 0.0;
                    
            for(i = 0; i < n; ++i) {
                        scanf(
            "%d"&p[nn].nt);
                        aa 
            += p[nn].nt;
                        
            bool ok = true;
                        cnt[
            0= cnt[1= cnt[2= 0;
                        
            for(j = 0; j < p[nn].nt; ++j) {
                            scanf(
            "%s", c);
                            
            if(c[0== 'A' || c[0== 'B' || c[0== 'C'{
                                
            for(k = 0; c[k] != ':'++k);
                                
            for(k++, tp = 0; c[k] != '.'++k) tp = tp * 10 + c[k] - '0';
                                
            for(ttp = 0, k = strlen(c) - 1; c[k] != '.'--k) ttp = ttp / 10 + c[k] - '0';
                                tp 
            += ttp / 10;
                                p[nn].mon 
            += tp;
                                cnt[c[
            0- 'A'+= tp;
                                
            if(cnt[c[0- 'A'> 600.0) ok = false;
                            }

                        }

                        
            if(ok && p[nn].mon <= 1000.0) nn++;
                    }

                    DP();
                    ans 
            = 0;
                    
            for(i = 0; i <= aa; ++i)
                        
            if(ans < dp[i]) ans = dp[i];
                    printf(
            "%.2lf\n", ans);
                }

                
            return 0;
            }



                發現茫茫多想考研的同學都復習了好多了, 表示還木有開始復習的鴨梨很大... ...
                不切水題玩了, 要開始好好復習了!!

            色综合久久综精品| 狠狠88综合久久久久综合网| 久久久久久国产a免费观看不卡| 91精品国产综合久久香蕉| 久久精品国产一区二区| 亚洲国产精品无码久久一区二区 | 久久精品中文字幕一区| 久久国产高潮流白浆免费观看| www亚洲欲色成人久久精品| 久久午夜无码鲁丝片秋霞| 久久精品一区二区国产| 一本一本久久a久久精品综合麻豆| 久久久久亚洲AV成人片| 偷窥少妇久久久久久久久| 免费国产99久久久香蕉| 色偷偷88888欧美精品久久久| 人妻系列无码专区久久五月天| 91精品国产综合久久精品| 无码八A片人妻少妇久久| 久久综合久久性久99毛片| 久久这里只精品国产99热| 久久免费的精品国产V∧| 97精品国产97久久久久久免费| 日本精品久久久久影院日本| 亚洲一区二区三区日本久久九| 少妇精品久久久一区二区三区| 手机看片久久高清国产日韩 | 亚洲AV无一区二区三区久久| 亚洲国产成人久久综合区| 久久国产精品二国产精品| 94久久国产乱子伦精品免费| 久久久久久久久无码精品亚洲日韩| 97精品伊人久久大香线蕉| 精品久久久久久久国产潘金莲 | 精品无码久久久久久尤物| 少妇精品久久久一区二区三区| 无码八A片人妻少妇久久| 亚洲乱码精品久久久久..| 久久青青草原亚洲av无码app| 久久66热人妻偷产精品9| 国产精品久久久久久久|