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

Welcome to Leon's Blog  
日歷
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
統計
  • 隨筆 - 30
  • 文章 - 0
  • 評論 - 51
  • 引用 - 0

導航

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

ACM

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
       今天早上終于提交成功了!這道題做了有一個星期多了,老是找不到原因。今天在偶然間發現了,先將代碼貼出來,還請大家指正!感謝steven和一個匿名網友的建議,謝謝你們!但是程序運行的時間還是過長,希望大家能夠幫助修改。

  1#include <stdio.h>
  2#include <string.h>
  3#include <stdlib.h>
  4
  5
  6int result[4];
  7int reNumber, reCount, tie, reMax;        //result是最終客戶的郵票種類,reCount是客戶郵票總個數,reNumber是客戶不同郵票的個數
  8                                                    
  9int GetNumber(int *stamp, int *customer, int *stampNumber, int *customerNumber)        //獲取郵票 和 客戶信息。
 10{
 11    int i, n,count[100];    // count在這里起到一個優化的作用。
 12    n = 0;
 13    (*stampNumber) = 0;
 14    memset(count, 0 ,sizeof(int)*100);
 15    while(1)        //收集關于郵票的面值。
 16    {
 17        if(scanf("%d"&n) == EOF)
 18            return -1;
 19        if(n == 0)
 20            break;
 21        if(count[n]++ < 5)
 22            stamp[(*stampNumber)++= n;
 23    }

 24    //stampNumber--;
 25    (*customerNumber) = 0;
 26    while(1)
 27    {
 28        scanf("%d"&n);        //收集關于客戶需要郵票的總面值數。
 29        if(n == 0)
 30            break;
 31        customer[(*customerNumber)++= n;
 32    }

 33    return 1;
 34}

 35int NotSame(int *number,const int count, int *m,int *stamp)        //求不同一組郵票類別的個數和郵票的最大面值。
 36{
 37    int i,j, c,s;
 38    c = 0;
 39    *= stamp[number[0]];
 40    for(i = 0; i < count; i++)
 41    {
 42        if*< stamp[number[i]])        //求最大面值的郵票
 43            *= stamp[number[i]];
 44        s = 0;
 45        for(j = 0; j < i; j++)        //求不同面值郵票的個數
 46        {
 47            if(number[i] == number [j])
 48            {
 49                s = 1;
 50                break;
 51            }

 52        }

 53        if(0 == s)
 54            c++;
 55    }

 56    return c;
 57}

 58
 59
 60void Divide(int sum, int *number, int *stamp,int n, int *count, int same,int start)
 61{
 62    int i;
 63    int t;
 64    if*count > 4 ) 
 65            return;
 66    else if( sum == 0 && *count <= 4)        //郵票個數《=4的時候且保存在數組number中的郵票面值=sum的時候。    
 67    {
 68        same = NotSame(number, *count,&t, stamp);
 69        if( same > reNumber || same == reNumber && reCount > *count || same == reNumber && reCount == *count && reMax < t )//根據不同的條件來判斷。
 70        {
 71            reMax = t;
 72            reCount = *count;
 73            reNumber = same;
 74            for(i = 0; i < *count; i++)
 75                result[i] = number[i];
 76            tie = 0;
 77        }

 78        else if(same == reNumber && reCount == *count && reMax == t)//當郵票面值的最大值、郵票種類數,郵票個數相等時。
 79        {
 80            tie = 1;
 81        }

 82
 83        return;
 84    }

 85    for(i = start; i < n; i++)        //遞歸搜索
 86    {
 87        sum -= stamp[i];
 88        if(sum >= 0)
 89        {
 90            number[(*count)++= i;
 91            Divide(sum, number, stamp, n, count,same,i);
 92            (*count)--;
 93        }

 94        sum += stamp[i];
 95    }
    
 96}

 97
 98
 99int main(int argc, char* argv[])
100{
101    int stamp[100], customer[100];        //stamp保存郵票的面值,customer保存客戶需要郵票的總面值。
102    int number[5];        //臨時數據,記錄滿足條件的臨時結果。此前提交一直WA的原因是number分配的空間太小了!
103    int count,stampNumber = -1, customerNumber = -1;//stampNumber是郵票的個數,customerNumber是客戶個數 
104    int i,j;
105
106    do
107    {    
108        memset(stamp, 0100*sizeof(int));
109        memset(customer, 0100*sizeof(int));
110        memset(number, 0 ,4);
111        if(GetNumber(stamp, customer, &stampNumber, &customerNumber) == -1)
112            break;
113        for(i = 0; i < customerNumber; i++)
114        {
115            reMax = -1;        //對數據初始化。
116            memset(result, 04);
117            reNumber = -1;
118            count=0;
119            tie = 0;
120            Divide(customer[i], number,stamp, stampNumber/*+1*/,&count, -1,0);
121            if(reNumber != -1)        //打印。
122            {
123                if(tie == 0)        //找到滿足條件的結果。
124                {
125                    printf("%d (%d):", customer[i], reNumber);
126                    for(j = 0; j <  reCount; j++)
127                            printf(" %d",stamp[result[j]]);
128                    printf("\n");
129                }

130                else if( tie == 1)    //存在郵票面值的最大值、郵票種類數,郵票個數相同的答案
131                {
132                    printf("%d (%d): tie\n",customer[i], reNumber);
133                }

134            }

135            else        //不滿足條件
136            {
137                printf("%d ---- none\n",customer[i]);
138            }

139        }

140    }
while(1);
141    return 0;
142}

posted on 2008-07-01 09:56 Leon916 閱讀(1953) 評論(4)  編輯 收藏 引用
評論:
  • # re: acm pku 1010 程序  企業即時通訊 Posted @ 2008-07-01 12:43
    哈哈,寫的挺好的,加油哦。  回復  更多評論   

  • # re: acm pku 1010 程序[未登錄]  Leon Posted @ 2008-07-01 14:34
    謝謝企業即時通訊,謝謝你的鼓勵  回復  更多評論   

  • # re: acm pku 1010 程序   Posted @ 2008-07-01 15:23
    挺不錯的,兄弟一直在做acm嗎?  回復  更多評論   

  • # re: acm pku 1010 程序  qingzheng Posted @ 2010-07-06 19:02
    似乎沒有用到動態規劃  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © Leon916 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久最新视频| 在线成人www免费观看视频| 久久久亚洲一区| 欧美三区免费完整视频在线观看| 久久五月婷婷丁香社区| 欧美日韩一区二区精品| 欧美激情精品久久久久久蜜臀| 国产精品卡一卡二卡三| 亚洲精品久久7777| 亚洲国产成人tv| 久久精品国产99精品国产亚洲性色| 一区二区三区欧美亚洲| 蜜桃精品一区二区三区| 久久综合精品一区| 国产午夜精品在线观看| 亚洲一级片在线观看| 日韩午夜电影av| 欧美精品日韩精品| 亚洲欧洲视频| 亚洲最新中文字幕| 欧美精品在线免费播放| 亚洲福利视频网| 亚洲黄色毛片| 欧美va天堂va视频va在线| 蜜桃av噜噜一区二区三区| 黄色日韩在线| 久久久国产精品一区二区中文| 久久久水蜜桃av免费网站| 国产日韩欧美电影在线观看| 午夜久久久久| 久久久久国产精品人| 国产在线精品自拍| 久久久久久9999| 欧美激情一二区| 日韩视频一区二区在线观看 | 欧美激情一区二区三区| 亚洲第一综合天堂另类专| 亚洲人成网站777色婷婷| 欧美国产日韩精品| 艳女tv在线观看国产一区| 亚洲欧美国产精品专区久久| 国产精品久久久久久久久久免费看| 亚洲网址在线| 久久综合狠狠综合久久激情| 亚洲国产精品电影| 欧美日韩在线高清| 欧美一区二区三区视频在线观看 | 玖玖玖国产精品| 亚洲人成高清| 午夜精品在线观看| 一区在线免费观看| 欧美成黄导航| 亚洲女女做受ⅹxx高潮| 麻豆国产va免费精品高清在线| 亚洲精品影院在线观看| 国产精品成人一区二区三区夜夜夜 | 欧美精品在线免费播放| av成人动漫| 久久综合久色欧美综合狠狠| 亚洲欧洲另类| 国产乱码精品一区二区三区av| 久久精品国产在热久久 | 香蕉久久久久久久av网站| 免费影视亚洲| 亚洲欧美另类在线| 亚洲国产老妈| 国产精品入口| 欧美国产专区| 欧美一级淫片aaaaaaa视频| 亚洲国产高清视频| 欧美在线一区二区| 一区二区三区日韩精品视频| 国产欧美日韩视频一区二区| 你懂的视频一区二区| 亚洲在线观看免费| 亚洲精品极品| 免费一级欧美片在线观看| 亚洲一区免费网站| 亚洲精品小视频在线观看| 国产精品私房写真福利视频| 欧美成人高清| 久久久久久**毛片大全| 亚洲视频观看| 亚洲另类视频| 欧美激情中文不卡| 久久久久久一区二区| 亚洲一区二区精品视频| 亚洲人成网站777色婷婷| 国产一区二区在线观看免费播放 | 99热免费精品| 亚洲电影免费| 国语自产精品视频在线看抢先版结局 | 亚洲午夜精品17c| 亚洲乱码视频| 91久久国产综合久久| 黄色欧美成人| 尤物九九久久国产精品的特点| 国产视频精品网| 国产欧美精品| 国产情人综合久久777777| 国产精品久久久久久久免费软件| 欧美国产激情二区三区| 老鸭窝毛片一区二区三区| 久久天堂成人| 美女视频黄a大片欧美| 久久蜜桃资源一区二区老牛 | 女同性一区二区三区人了人一| 久久狠狠婷婷| 久久久久久久97| 久久一区二区三区超碰国产精品| 欧美一级视频| 久久成人免费网| 久久夜色精品一区| 欧美1区2区视频| 欧美国产日韩在线观看| 欧美剧在线观看| 欧美性猛交99久久久久99按摩| 欧美日韩在线高清| 国产精品视频免费| 狠狠v欧美v日韩v亚洲ⅴ| 精品av久久久久电影| 亚洲成在人线av| 亚洲美女视频网| 亚洲欧美国产日韩中文字幕| 欧美一区二区久久久| 久久免费高清| 亚洲第一综合天堂另类专| 亚洲人精品午夜在线观看| 99精品久久久| 欧美一级视频免费在线观看| 久久久久久尹人网香蕉| 欧美成人精品福利| 国产精品成人久久久久| 国产视频不卡| 亚洲毛片一区二区| 香蕉久久夜色精品国产| 久久综合色影院| 亚洲美女免费精品视频在线观看| 亚洲无线视频| 久久精品在线观看| 欧美日韩在线一区二区| 国产日韩精品在线观看| 亚洲欧洲日产国产综合网| 亚洲私人影院在线观看| 久久色中文字幕| 亚洲精品中文字幕女同| 午夜免费在线观看精品视频| 欧美成人精品在线| 国产欧美亚洲精品| 亚洲伦理网站| 久久久99精品免费观看不卡| 欧美国产一区视频在线观看| 亚洲视频第一页| 欧美成人精品在线视频| 国产精品丝袜xxxxxxx| 亚洲精品小视频| 久久婷婷综合激情| 一本高清dvd不卡在线观看| 久久精品国产亚洲高清剧情介绍| 欧美精品一区二区蜜臀亚洲| 国产日韩欧美在线播放不卡| 亚洲精品视频免费观看| 久久国产精品亚洲va麻豆| 亚洲日本黄色| 牛牛影视久久网| 狠狠色丁香久久婷婷综合_中| 亚洲一区二区三区四区在线观看| 欧美+日本+国产+在线a∨观看| 中文有码久久| 欧美日韩一区二区在线观看视频 | 欧美一区二区三区在线免费观看 | 亚洲高清一区二区三区| 欧美在线观看视频在线| 日韩午夜高潮| 欧美激情精品久久久久久| 黄色免费成人| 久久久噜噜噜久久狠狠50岁| a4yy欧美一区二区三区| 欧美日韩国产系列| 亚洲精品在线免费观看视频| 麻豆精品传媒视频| 久久精品国产一区二区三 | 国产精品国产自产拍高清av| 亚洲经典三级| 亚洲第一二三四五区| 久久九九有精品国产23| 国产三级欧美三级| 久久国产精品久久w女人spa| 亚洲午夜羞羞片| 国产女人18毛片水18精品| 亚洲一区免费视频| 亚洲一区三区视频在线观看| 欧美三级视频在线| 亚洲一区二区三区成人在线视频精品| 亚洲精品久久久久久久久久久| 欧美激情第二页| 一区二区三区毛片| 中文精品99久久国产香蕉| 国产精品成人观看视频免费| 亚洲永久免费观看|