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

            Sephiroth's boring days!!!

            Love just for you.

            動態(tài)規(guī)劃-最小與最大

            【問題描述】

            做過了乘積最大這道題,相信這道題也難不倒你。

            已知一個數(shù)串,可以在適當(dāng)?shù)奈恢眉尤氤颂枺ㄔO(shè)加了k個,當(dāng)然也可不加,即分成k+1個部分),設(shè)這k+1個部分的乘積(如果k=0,則乘積即為原數(shù)串的值)對m 的余數(shù)(即mod m)為x;

            現(xiàn)求x能達到的最小值及該情況下k的最小值,以及x能達到的最大值及該情況下的k的最小值(可以存在x的最小值與最大值相同的情況)。

            【輸入】

            第一行為數(shù)串,長度為n 滿足2<=n<=1000,且數(shù)串中不存在0;

            第二行為m,滿足2<=m<=50。

            【輸出】

            四個數(shù),分別為x的最小值 和 該情況下的k,以及x的最大值和 該情況下的k,中間用空格隔開。

            【樣例輸入】

            4421

            22

            【樣例輸出】

            0 1 21 0


            既然題目要求的都是乘號的最小值,那么我們自然地就會想到動歸數(shù)組中記錄乘號的最小值。f[i][j]表示0~i的串達到j(luò)這個余數(shù)所需最少的乘號數(shù)。預(yù)處理b[i][j]表示從i到j(luò)的數(shù)對m的余數(shù)。

              1: #include <stdio.h>
            
              2: #include <string.h>
            
              3: #define MAXINT 100000
            
              4: #define maxn 1010
            
              5: 
            
              6: int f[maxn][50];
            
              7: int b[maxn][maxn];
            
              8: int n,m;
            
              9: char s[maxn];
            
             10: int tem;
            
             11: 
            
             12: int main()
            
             13: {
            
             14:     freopen("input.txt","r",stdin);
            
             15:     freopen("output.txt","w",stdout);
            
             16:     
            
             17:     scanf("%s%d",s,&m);
            
             18:     n=strlen(s);
            
             19:     for (int i=0;i<n;++i)
            
             20:         for (int j=0;j<m;++j)
            
             21:             f[i][j]=MAXINT;
            
             22:     for (int i=0;i<n;++i)
            
             23:     {
            
             24:         tem=(tem*10+s[i]-'0')%m;
            
             25:         f[i][tem]=0;
            
             26:     }
            
             27:     for (int i=0;i<n;++i)
            
             28:     {
            
             29:         tem=0;
            
             30:         for (int j=i;j<n;++j)
            
             31:         {
            
             32:             tem=(tem*10+s[j]-'0')%m;
            
             33:             b[i][j]=tem;
            
             34:         }
            
             35:     }
            
             36:     for (int i=0;i<n;++i)
            
             37:         for (int j=0;j<m;++j)
            
             38:             if (f[i][j]<MAXINT)
            
             39:                 for (int k=i+1;k<n;++k)
            
             40:                 {
            
             41:                     tem=(j*b[i+1][k])%m;
            
             42:                     if (f[i][j]+1<f[k][tem]) f[k][tem]=f[i][j]+1;
            
             43:                 }
            
             44:     for (int i=0;i<m;++i)
            
             45:         if (f[n-1][i]<MAXINT)
            
             46:         {
            
             47:             printf("%d %d ",i,f[n-1][i]);
            
             48:             break;
            
             49:         }
            
             50:     for (int i=m-1;i>=0;--i)
            
             51:         if (f[n-1][i]<MAXINT)
            
             52:         {
            
             53:             printf("%d %d\n",i,f[n-1][i]);
            
             54:             break;
            
             55:         }
            
             56:     return 0;
            
             57: }
            
             58: 

            posted on 2010-08-31 07:46 Sephiroth Lee 閱讀(347) 評論(0)  編輯 收藏 引用 所屬分類: 信息奧賽

            free counters
            亚洲香蕉网久久综合影视| 精品国产乱码久久久久久1区2区| 99久久精品这里只有精品 | 99久久免费国产精品特黄| 亚洲综合熟女久久久30p| 久久久91精品国产一区二区三区 | 久久久久久人妻无码| 91久久精品国产91性色也| 色天使久久综合网天天| 国产精品久久网| 天堂久久天堂AV色综合| 久久久噜噜噜久久| 国内精品久久久久影院免费| 久久久噜噜噜久久中文字幕色伊伊| 国产亚洲美女精品久久久久狼| 一级做a爰片久久毛片免费陪| 成人亚洲欧美久久久久| 久久人人爽人人爽人人AV东京热| 久久99精品国产麻豆婷婷| 久久精品无码午夜福利理论片| 性做久久久久久久久久久| 99久久精品免费看国产| 国产精品一区二区久久不卡| 久久天天婷婷五月俺也去| 99精品国产综合久久久久五月天| 草草久久久无码国产专区| 国产成人精品久久免费动漫| 久久久久久国产精品无码超碰| 欧美成a人片免费看久久| 久久亚洲欧美日本精品| 97久久精品无码一区二区| 99久久夜色精品国产网站| 久久精品国产99国产精品亚洲| 欧美精品九九99久久在观看| 日韩十八禁一区二区久久 | 亚洲精品午夜国产VA久久成人| 久久久久国产一级毛片高清板| 久久久久国色AV免费观看| 精品久久久久久国产牛牛app| 久久久99精品成人片中文字幕| 丁香狠狠色婷婷久久综合|