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

            Why so serious? --[NKU]schindlerlee

            2009年 12月 09日 星期三.sgu134 sgu133 sgu181

            簡單的樹形動態(tài)規(guī)劃
            貼代碼
             1 /* 
             2  * SOUR:sgu 134
             3  * ALGO:tree dp
             4  * DATE: 2009年 12月 09日 星期三 16:28:16 CST
             5  * COMM:3
             6  * */
             7 #include<iostream>
             8 #include<cstdio>
             9 #include<cstdlib>
            10 #include<cstring>
            11 #include<algorithm>
            12 #include<vector>
            13 using namespace std;
            14 typedef long long LL;
            15 const int maxint = 0x7fffffff;
            16 const long long max64 = 0x7fffffffffffffffll; 
            17 const int N = 16100;
            18 #define pb(x) push_back(x)
            19 vector<int> g[N];
            20 int vis[N];
            21 int n,res = maxint,out[N],top;
            22 void ckmax(int &a,int b) { if(a < b) a = b;} 
            23 int dfs(int u)
            24 {
            25     //printf("dfs = %d\n",u);
            26     vis[u] = true;
            27     int sum = 0,val = 0,tmp;
            28     for(int i = 0;i < g[u].size();i++) {
            29         int v = g[u][i];
            30         if(!vis[v]) {
            31             tmp = dfs(v);
            32             sum += tmp;
            33             ckmax(val,tmp);
            34         }
            35     }
            36     tmp = n - 1 - sum;
            37     ckmax(val,tmp);
            38     if (res > val) {
            39         res = val,top = 1,out[0= u;
            40     }else if(val == res) {
            41         out[top++= u;
            42     }
            43     return sum + 1;
            44 }
            45 
            46 int main()
            47 {
            48     int i,j,k,a=-1,b;
            49     scanf("%d",&n);
            50     for(i = 1;i < n;i++) {
            51         scanf("%d%d",&a,&b);
            52         g[a].pb(b);
            53         g[b].pb(a);
            54     }
            55     if(a != -1) {
            56         dfs(a);
            57         printf("%d %d\n",res,top);
            58         sort(out,out + top);
            59         if(top > 0) printf("%d",out[0]);
            60         for(i = 1;i < top;i++) {
            61             printf(" %d",out[i]);
            62         }
            63         putchar(10);
            64     }else {
            65         printf("0 0\n");
            66     }
            67     return 0;
            68 }
            69 
            70 
            sgu133 排序,看你幾分鐘能想出來
             1     scanf("%d",&n);
             2     for(i = 0;i < n;i++) {
             3         scanf("%d%d",&a[i].l,&a[i].r);
             4     }
             5     sort(a,a + n,cmp);
             6     int res = 0,pre = -1;
             7     for(i = 0;i < n;i++) {
             8         if(a[i].r < pre) {
             9             res ++;
            10         }
            11         pre = max(pre,a[i].r);
            12     }
            13     printf("%d\n",res);
            14 
            sgu181 算一個遞推式的第k項,很容易錯
             1 /* 
             2  * SOUR:sgu181
             3  * ALGO:math
             4  * DATE: 2009年 12月 11日 星期五 21:50:18 CST
             5  * COMM:3
             6  * 注意k可能出現(xiàn)在循環(huán)節(jié)開始之前
             7  * */
             8 #include<iostream>
             9 #include<cstdio>
            10 #include<cstdlib>
            11 #include<cstring>
            12 #include<algorithm>
            13 using namespace std;
            14 typedef long long LL;
            15 const int maxint = 0x7fffffff;
            16 const long long max64 = 0x7fffffffffffffffll;
            17 
            18 LL A,alpha,beta,gamma,M,k;
            19 const int N = 20010;
            20 LL vis[N];
            21 LL val[N];
            22 int main()
            23 {
            24     LL i;
            25     /*
            26        1)    x0 = A; 
            27        2)    xi = (alpha * x(i-1)^2 + beta * x(i-1) + gamma) mod M, for i >= 1. 
            28      * */
            29     //A (1 <= A <= 10000), alpha (0 <= alpha <= 100), beta (0 <= beta <= 100), gamma
            30     //(0 <= gamma <= 100), M (1 <= M <= 1000), k (0 <= k <= 10^9)
            31 
            32     fill(vis,vis + N,-1);
            33     cin >> A >> alpha >> beta >> gamma >> M >> k;
            34     LL xi = A,step = 0,cycle,before;
            35     while(1) {
            36         if(vis[xi] >= 0) {
            37             cycle = step - vis[xi];
            38             before = vis[xi];
            39             break
            40         }
            41         val[step] = xi;
            42         vis[xi] = step ++;
            43 
            44            xi = (alpha * xi*xi + beta * xi + gamma) % M;
            45     }
            46     if(k < step ) {
            47         cout << val[k] << endl;
            48     }else {
            49         LL idx = (k-before)%cycle + before;
            50         cout << val[idx] << endl;
            51     }
            52 
            53     return 0;
            54 }
            55 
            56 


            posted on 2009-12-13 14:57 schindlerlee 閱讀(1154) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

            2020最新久久久视精品爱| 久久中文骚妇内射| 亚洲国产精品一区二区三区久久 | 污污内射久久一区二区欧美日韩| 国产成人精品久久亚洲高清不卡 | 99久久伊人精品综合观看| 久久九色综合九色99伊人| 少妇无套内谢久久久久| 国产情侣久久久久aⅴ免费| 精品多毛少妇人妻AV免费久久| 久久综合亚洲鲁鲁五月天| 久久99国产精品尤物| 久久久久无码精品| 国产V综合V亚洲欧美久久| 怡红院日本一道日本久久 | 欧美日韩久久中文字幕| 成人国内精品久久久久一区| 亚洲国产天堂久久久久久| 久久99精品国产| 久久综合精品国产二区无码| 久久综合一区二区无码| AAA级久久久精品无码区| 99久久久精品免费观看国产| 国产精品久久新婚兰兰| 久久亚洲中文字幕精品一区四| 国产精品久久久久9999高清| 久久久久久精品免费看SSS| 久久伊人精品青青草原日本| 国产69精品久久久久99尤物| 久久青草国产手机看片福利盒子| 蜜臀久久99精品久久久久久小说| 久久亚洲AV成人无码| 久久受www免费人成_看片中文| 精品久久久无码中文字幕天天| 麻豆精品久久精品色综合| www.久久精品| 51久久夜色精品国产| 91久久精品电影| 久久综合伊人77777麻豆| 香蕉99久久国产综合精品宅男自 | 99国产精品久久|