青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 7,comments - 3,trackbacks - 0

Bigger is Better

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 559    Accepted Submission(s): 155


Problem Description
Bob has n matches. He wants to compose numbers using the following scheme (that is, digit 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 needs 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 matches):

Write a program to make a non-negative integer which is a multiple of m. The integer should be as big as possible.
 

Input
The input consists of several test cases. Each case is described by two positive integers n (n ≤ 100) and m (m ≤ 3000), as described above. The last test case is followed by a single zero, which should not be processed.
 

Output
For each test case, print the case number and the biggest number that can be made. If there is no solution, output -1.Note that Bob don't have to use all his matches.
 

Sample Input
6 3 5 6 0
 

Sample Output
Case 1: 111 Case 2: -1
 

Source
 

Recommend
lcy
 
06年區域賽,西安賽區的B題,佳哥出的,犀利的DP。
一開始看此題,認為是數學方法加構造答案,推了一會就放棄了,之后看了同場那道網絡流的題,不過鑒于我對于那道網絡流思路相當惡心,就返回繼續思考這道題。
之后,發現這道題可以套用我昨天那道DP的轉移方程。
dp[i][j] = max{dp[i][j],  dp[i + a[k]][(j * 10 + k) % m]},其中,i表示用了i個木棍,j表示i個木棍構成的數mod m后是j,dp[i][j]表示構成這個最大數的長度。(因為是求mod,可以想到取mod后的狀態,這樣可以有效的減少狀態數目。)
說一下佳哥題解,也是讓我WA了無數次的坑。
關于那個dp[i][j]的轉移,我們可以看出每次轉移的時候,添加數字k是添加在了末尾一位,但我一開是dp是添加在了首位,佳哥說添加首位是錯誤的,但沒有給出證明,我找到了反例:11 6,應該是774,但我一開是得的是747,不過為什么錯,我無法證明了.....
在獲得上述轉移狀態后,我們可以用d數組記錄相應狀態下,最優解的最后一位,這樣我們輸出答案就可以從第一位遞歸尋找了。
至于無解的情況,只要n>=6都會有解,因為0是六根火柴......
其他思路:dp[i][j]記錄最優答案,這樣會涉及到大數運算。
代碼:
#include <iostream>
#include 
<cstdio>
#include 
<cstring>
using namespace std;

const int maxn = 101;
const int maxm = 3001;
const int used[10= {6255456376};

typedef 
long long LL;

LL f[maxn][maxm], g[maxn][maxm];
LL n, m, i, j, k, u, v, Len, task;

LL max(LL i, LL j)
{
    
if (i > j) return i;
    
return j;
}

void printf(LL x, LL y)
{
    LL u, v;
    
while (g[x][y] != 10)
    {
        u 
= x + used[g[x][y]];
        v 
= (y * 10 + g[x][y]) % m;
        cout 
<< g[x][y];
        x 
= u;
        y 
= v;
    }
    cout 
<< endl;
}

int main()
{
    task 
= 0;
    
while (cin >> n && n)
    {
        cin 
>> m;
        printf(
"Case %d: "++task);
        memset(f, 
-1sizeof(f));
        Len 
= 0;
        f[
0][0= 0;
        
for (i = 0; i <= n; ++i)
        {
            
for (j = 0; j <= m - 1++j)
            {
                
if (f[i][j] >= 0)
                {
                    
for (k = 0; k <= 9++k)
                    {
                        
if (i + used[k] <= n)
                        {
                            
if (i == 0 && k == 0continue;
                            u 
= i + used[k];
                            v 
= (j * 10 + k) % m;
                            f[u][v] 
= max(f[u][v], f[i][j] + 1);
                            
if (v == 0) Len = max(Len, f[u][v]);
                        }
                    }
                }
            }
        }
        memset(g, 
-1sizeof(g));
        
for (i = n; i >= 0--i)
        {
            
for (j = 0; j <= m - 1++j)
            {
                
if (f[i][j] >= 0)
                {
                    
if (f[i][j] == Len && j == 0)
                    {
                        g[i][j] 
= 10;
                        
continue;
                    }
                    
for (k = 9; k >= 0--k)
                    {
                        
if (i + used[k] <= n)
                        {
                            u 
= i + used[k];
                            v 
= (j * 10 + k) % m;
                            
if (f[u][v] == f[i][j] + 1 && g[u][v] >= 0)
                            {
                                g[i][j] 
= k;
                                
break;
                            }
                        }
                    }
                }
            }
        }
        
if (g[0][0> 0 && g[0][0!= 10) printf(00);
        
else
        
if (n >= 6) cout << 0 << endl;
        
else
        cout 
<< -1 << endl;
    }
    
return 0;
}
posted on 2011-10-15 22:14 LLawliet 閱讀(308) 評論(1)  編輯 收藏 引用 所屬分類: 動態規劃

FeedBack:
# re: HDU2929:Bigger is Better[未登錄]
2013-08-19 14:47 | 1
uvalive3782 是wa啊  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲美女视频在线观看| 亚洲精品乱码久久久久久| 性欧美8khd高清极品| 亚洲欧美激情一区| 韩国精品在线观看| 欧美大片91| 欧美日韩视频专区在线播放 | 久久久久国产精品一区三寸| 樱桃视频在线观看一区| 亚洲国产天堂久久综合网| 欧美精品一区在线播放| 午夜欧美精品久久久久久久| 久久超碰97人人做人人爱| 亚洲国产天堂久久综合| 亚洲视频一区二区| 黄色精品一区| 一区二区日韩欧美| 黄色精品在线看| 日韩亚洲欧美中文三级| 国内偷自视频区视频综合| 最新国产乱人伦偷精品免费网站 | 久久精品一本久久99精品| 日韩午夜激情电影| 欧美制服丝袜| 亚洲自拍偷拍一区| 蜜臀99久久精品久久久久久软件| 亚洲尤物在线| 欧美大片在线看| 久久久久青草大香线综合精品| 欧美α欧美αv大片| 久久久噜久噜久久综合| 欧美网站在线观看| 蜜桃视频一区| 国产一区深夜福利| 亚洲一区二区在| 一区二区三区四区五区精品| 久久免费一区| 久久精品五月| 国产精品一区二区欧美| 亚洲美女精品久久| 亚洲性人人天天夜夜摸| 亚洲精品欧洲| 美女日韩欧美| 久热爱精品视频线路一| 国产精品一卡二| 夜夜嗨av一区二区三区网页| 亚洲美女黄色| 欧美freesex8一10精品| 欧美成va人片在线观看| 激情五月***国产精品| 亚洲欧美日韩在线播放| 亚洲欧美一区二区视频| 欧美视频一区二区三区四区| 亚洲欧洲一二三| 亚洲乱码国产乱码精品精98午夜| 美国成人毛片| 亚洲国产精品一区二区www在线| 好吊视频一区二区三区四区 | 夜夜嗨av一区二区三区网站四季av| 亚洲国产精品久久人人爱蜜臀| 久久福利影视| 欧美1区2区视频| 亚洲国产欧美不卡在线观看| 麻豆国产va免费精品高清在线| 嫩草伊人久久精品少妇av杨幂| 一区在线电影| 欧美 亚欧 日韩视频在线| 亚洲国产精品va| 亚洲最新视频在线播放| 欧美午夜电影完整版| 一区二区三区**美女毛片| 校园春色国产精品| 国语自产在线不卡| 免费看亚洲片| 亚洲美女av电影| 欧美一区二区福利在线| 黄色国产精品| 欧美精品一区二区视频| 亚洲视频axxx| 久热精品在线| 一级日韩一区在线观看| 国产精品夜夜夜一区二区三区尤| 久久99伊人| 亚洲娇小video精品| 亚洲欧美日本伦理| 亚洲国产精品福利| 欧美视频二区36p| 久久精品一区二区三区不卡牛牛| 欧美激情va永久在线播放| 日韩亚洲欧美中文三级| 国产伦理一区| 欧美成人69av| 亚洲一区图片| 亚洲高清资源| 久久成人一区| 99天天综合性| 一区在线视频| 国产精品久久久久久av下载红粉| 久久精品国产99国产精品| 亚洲精品国产精品国产自| 欧美中文日韩| 亚洲午夜电影| 亚洲大黄网站| 国产伦精品一区二区三区在线观看| 午夜精品久久久久久久久久久| 亚洲成人在线| 国产精品制服诱惑| 欧美日韩精品在线| 久久全国免费视频| 午夜精品在线看| 一本色道精品久久一区二区三区| 裸体一区二区三区| 欧美在线免费观看| 亚洲一区二区三区视频| 91久久精品一区| 狠狠综合久久| 国产麻豆日韩| 国产精品www网站| 欧美另类亚洲| 欧美成人激情视频免费观看| 久久精品一级爱片| 欧美主播一区二区三区| 亚洲自拍偷拍视频| 一区二区久久久久| 日韩视频一区二区在线观看 | 午夜精品理论片| 一区电影在线观看| 日韩视频在线观看国产| 亚洲人人精品| 亚洲国产一区二区三区在线播| 黄色成人av在线| 今天的高清视频免费播放成人 | 红桃视频一区| 精品999成人| 国产中文一区二区| 激情久久影院| 影音先锋日韩资源| 在线成人国产| 亚洲精品久久久久| 亚洲美女电影在线| 亚洲视频在线一区| 亚洲一区免费观看| 亚洲女与黑人做爰| 欧美在线视频网站| 老司机精品导航| 欧美成人一品| 亚洲精品资源美女情侣酒店| 一区二区三区**美女毛片| 亚洲淫片在线视频| 久久国产乱子精品免费女 | 久久gogo国模啪啪人体图| 久久精品中文字幕免费mv| 久久一区视频| 欧美区二区三区| 国产精品嫩草影院一区二区| 国产三级精品三级| 在线精品国产欧美| 日韩亚洲国产精品| 欧美一区免费| 欧美激情免费观看| 一区二区三区视频在线 | 亚洲黄色在线看| 洋洋av久久久久久久一区| 亚洲在线免费观看| 久久天天躁狠狠躁夜夜爽蜜月 | 久久久中精品2020中文| 欧美精品导航| 国产日韩欧美精品一区| 亚洲欧洲另类国产综合| 亚洲欧美日韩在线| 嫩草伊人久久精品少妇av杨幂| 在线观看欧美视频| 宅男噜噜噜66一区二区| 久久久久久国产精品mv| 91久久久久久久久久久久久| 亚洲男人的天堂在线aⅴ视频| 久久综合一区| 国产精品每日更新| 亚洲人午夜精品免费| 欧美一区深夜视频| 亚洲激情不卡| 久久久久久婷| 国产精品视频精品| 99热免费精品在线观看| 美女日韩在线中文字幕| 亚洲亚洲精品在线观看| 欧美成人伊人久久综合网| 国产午夜精品美女视频明星a级 | 精品动漫3d一区二区三区免费| 亚洲亚洲精品三区日韩精品在线视频| 久久久久久一区二区三区| 日韩亚洲欧美成人| 欧美14一18处毛片| 在线成人性视频| 久久国产精品久久久久久电车| 99国产精品国产精品毛片| 男人天堂欧美日韩| **欧美日韩vr在线| 久色成人在线| 久久精品国产77777蜜臀 |