• <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. 統(tǒng)計字符
                大水, 不解釋

            //浙大計算機研究生復試上機考試-2007年 統(tǒng)計字符
            #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背包, 以物品項數(shù)作為dp數(shù)組的下標
                這題很坑爹, 那個單張發(fā)票中A, B, C三種物品以外的物品都不考慮, 而且這三種物品在同一張發(fā)票中可能重復出現(xiàn), 要把它們?nèi)悠饋? 單張發(fā)票的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;
            }



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

            久久精品国产91久久麻豆自制| 久久99精品国产麻豆| 精品久久久久久无码专区| 日韩电影久久久被窝网| 精品多毛少妇人妻AV免费久久| 韩国免费A级毛片久久| 久久国产色av免费看| 久久精品国产精品亚洲精品| 少妇久久久久久被弄到高潮| 亚洲精品成人网久久久久久| 久久久WWW成人免费精品| 久久久久黑人强伦姧人妻| 久久精品亚洲男人的天堂| 久久国产视频网| 日本欧美国产精品第一页久久| 久久久久亚洲?V成人无码| 久久一本综合| 久久精品国产亚洲av麻豆蜜芽| 奇米影视7777久久精品人人爽| 欧美黑人激情性久久| 午夜久久久久久禁播电影| 亚洲AV无码久久精品蜜桃| 国产精品久久久久jk制服| 国产精品久久久久久福利漫画| 久久99国产精品二区不卡| 大香网伊人久久综合网2020| 日本久久久久久久久久| 中文字幕久久波多野结衣av| 久久狠狠高潮亚洲精品| 国产AV影片久久久久久| 久久久精品国产| 奇米综合四色77777久久| 嫩草影院久久国产精品| 久久久精品国产Sm最大网站| 欧美精品九九99久久在观看| 男女久久久国产一区二区三区| 国产精品久久自在自线观看| 久久天天躁狠狠躁夜夜2020老熟妇| 久久国产AVJUST麻豆| 精品国产一区二区三区久久久狼 | 久久精品国产99国产电影网|