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

隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
數據加載中……

PKU 3492 Knapsack II

題目鏈接:http://poj.org/problem?id=3492
/*
題意:
    給出n(n <= 500)個數ai(ai <= 5000),求他們的最大不能組合數。

解法:
數論 + 最短路

思路:
    經典的組合問題Change Making Problem,這個題目有一個限制就是給
定的數小于等于5000,題目的意思很清楚,就是求一個數S,使得它不能被
任何ai的倍數所組合出來,并且它的值最大。
    那么如果這n個數的gcd不為1,必然找不到這樣的S,因為如果S不能被
它們的gcd整除,永遠不可能組合出來,這樣S就可以很大,自然也就沒有最
大的S了。
    現在討論所有ai的gcd為1的情況。對于任意的整數A,如果A能被以上的
ai組合出來,那么 B = A + k*a0 必然能被組合(只要加上k個a0即可)。于
是我們可以吧所有整數劃分成a0個等價類,等價類中的數模a0的值相同,舉
個例子,a0=3,我們可以將0,1,2,3,4,5,6劃分成(0,3,6)(1,4)(2,5)這三個
等價類,如果相同等價類中的某個數能被組合,那么比它大的所有在該等價
類中的數必然能被組合出來。所以現在只要求出每個等價類中的最小的能被
組合出來的數,然后取所有等價類中最小數的最大值L,L-a[0]就是問題的
答案(原因很簡單,因為L能被組合出來,比L大的并且在同一等價類中的數
必然能通過加上若干個a[0]來求得,于是L-a[0]就成了最大不能組合數)。
    于是問題就轉化成了如何在相同等價類中找到最小的那個能被ai組合出
來的數。可以利用最短路來求,最短路的key信息就是它本身值的大小,如果
兩個數x,y, (x + ai) % a0 == y % a0,那么我們就在x和y之前連上一條權
值為ai的邊,構圖完成后就可以從0這個點開始搜了,最后遍歷0到a[0]-1找
到最大的那個數L即可。
*/


#include 
<iostream>
#include 
<algorithm>
#include 
<queue>
using namespace std;

#define maxn 5010
#define inf 200000000

int a[500];

struct Point {
    
int val;
    
int mod_val;
    
int dis;
    Point(
int _v, int _mv, int _d) {
        val 
= _v;
        mod_val 
= _mv;
        dis 
= _d;
    }

    friend 
bool operator < (Point a, Point b) {
        
return a.dis > b.dis;
    }

}
;

int dis[maxn], nv[maxn];
priority_queue 
< Point > Q;



int gcd(int a, int b) {
    
if(b == 0)
        
return a;
    
return gcd(b, a%b);
}


int main() {
    
int n;
    
int i;
    
while(scanf("%d"&n) != EOF) {
        
int G = 0;
        
for(i = 0; i < n; i++{
            scanf(
"%d"&a[i]);
            
if(!i)
                G 
= a[0];
            
else
                G 
= gcd(G, a[i]);
        }

        
if(G != 1{
            printf(
"INF\n");
            
continue;
        }


        sort(a, a 
+ n);
        
for(i = 0; i < a[0]; i++{
            dis[i] 
= inf;
        }

        dis[
0= 0;
        nv[
0= 0;
        
while(!Q.empty()) {
            Q.pop();
        }

        Q.push(Point(
000));

        
while(!Q.empty()) {
            Point id 
= Q.top();
            Q.pop();
            
for(i = 0; i < n; i++{
                
int nex = (id.mod_val + a[i]) % a[0];
                
if(id.dis + a[i] < dis[nex]) {
                    dis[nex] 
= id.dis + a[i];
                    nv[nex] 
= id.val + a[i];
                    Q.push(Point(nv[nex], nex, dis[nex]));
                }

            }

        }

        
int Max = 0;
        
for(i = 0; i < a[0]; i++{
            
if(dis[i] != inf && nv[i] > Max) {
                Max 
= nv[i];
            }

        }

        printf(
"%d\n", Max - a[0]);
    }

    
return 0;
}

posted on 2011-04-05 19:01 英雄哪里出來 閱讀(1302) 評論(0)  編輯 收藏 引用 所屬分類: 數學

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品一区久久久| 久久久综合网站| 久久久久国产一区二区三区| 亚洲午夜国产成人av电影男同| 久久香蕉国产线看观看av| 欧美一区永久视频免费观看| 欧美日韩国产成人在线观看| 欧美激情在线有限公司| 在线日韩中文字幕| 欧美在线亚洲综合一区| 欧美在线免费观看| 国产精品私房写真福利视频| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久九九99视频| 欧美一级夜夜爽| 国产精品久久一区二区三区| 99视频超级精品| 在线视频欧美日韩| 欧美日韩亚洲另类| 一区二区三区日韩在线观看| 宅男噜噜噜66一区二区66| 欧美日韩国产亚洲一区| 亚洲国产一区二区视频| 亚洲日韩欧美视频一区| 欧美阿v一级看视频| 亚洲国产精品一区| 在线一区欧美| 国产精品家庭影院| 午夜精品在线| 久久综合久久美利坚合众国| 极品中文字幕一区| 蜜桃av噜噜一区| 亚洲欧洲在线一区| 亚洲天堂免费观看| 国产精品一区久久| 久久精品夜色噜噜亚洲aⅴ| 免费在线视频一区| 9久re热视频在线精品| 欧美日韩国产综合一区二区 | 欧美成人免费全部观看天天性色| 亚洲二区在线观看| 欧美激情在线免费观看| 亚洲一区在线视频| 裸体一区二区| 亚洲最快最全在线视频| 国产精品日韩专区| 久久婷婷国产综合精品青草| 91久久夜色精品国产九色| 亚洲在线不卡| 一区二区三区在线看| 欧美精品久久久久久| 午夜精品一区二区三区在线视| 欧美1区2区3区| 亚洲一区二区三区高清不卡| 国产一区二区三区四区在线观看 | 亚洲第一天堂无码专区| 欧美日韩国产系列| 欧美一区二区三区视频免费播放| 免费不卡在线观看| 亚洲免费婷婷| 亚洲黄网站黄| 国产精品一区二区女厕厕| 久久综合久久美利坚合众国| 日韩亚洲不卡在线| 每日更新成人在线视频| 亚洲香蕉网站| 亚洲国产精品ⅴa在线观看| 国产精品免费区二区三区观看| 久久一区精品| 欧美一区日韩一区| 日韩一级不卡| 欧美激情一区二区三区成人| 欧美在线免费| 亚洲——在线| 99视频精品全国免费| 在线观看日韩| 国产午夜精品在线| 国产精品久久久久9999吃药| 欧美大片免费观看在线观看网站推荐| 亚洲一区美女视频在线观看免费| 亚洲黄色在线看| 开心色5月久久精品| 欧美一区在线看| 亚洲婷婷在线| 日韩一区二区免费高清| 亚洲国产视频一区二区| 伊人春色精品| 国产专区综合网| 国产性做久久久久久| 国产精品毛片va一区二区三区| 欧美区国产区| 欧美激情视频在线免费观看 欧美视频免费一 | 国产一二三精品| 国产九九精品视频| 国产精品va在线| 欧美婷婷久久| 欧美天天影院| 欧美视频一区二区三区四区| 欧美人与禽猛交乱配视频| 欧美国产激情| 欧美—级a级欧美特级ar全黄| 免费一级欧美片在线观看| 久久久噜噜噜久久狠狠50岁| 久久精品日韩欧美| 久久国内精品视频| 久久久久久999| 久久久成人精品| 快射av在线播放一区| 久久久久综合网| 麻豆freexxxx性91精品| 欧美大片一区二区三区| 欧美激情视频一区二区三区免费| 欧美国产免费| 欧美色图天堂网| 国产精品日韩| 红桃av永久久久| 亚洲激情视频网| 一区二区精品在线观看| 亚洲欧美成人在线| 久久九九免费| 欧美成人精品| 亚洲精品美女在线| 亚洲一区二区三区色| 欧美一区二区三区精品| 久久久www成人免费无遮挡大片| 久久综合九色九九| 欧美精品播放| 国产欧美一区二区三区视频| 国语自产精品视频在线看8查询8| 亚洲高清一二三区| 亚洲一区二区不卡免费| 久久久精彩视频| 亚洲国产婷婷| 亚洲欧美视频| 你懂的网址国产 欧美| 欧美亚洲不卡| 激情久久综合| 亚洲一区观看| 麻豆国产精品777777在线| 最新国产成人在线观看| 亚洲女优在线| 欧美极品色图| 国产一区清纯| 中文高清一区| 欧美va亚洲va日韩∨a综合色| 日韩一区二区精品| 久久久久在线观看| 国产精品久久久久久久第一福利| 精品1区2区| 亚洲欧美日韩区| 亚洲高清av在线| 亚洲欧美一区二区原创| 欧美大片在线观看一区二区| 国产欧美日韩在线观看| 亚洲剧情一区二区| 久久先锋影音av| 亚洲一区二区免费看| 欧美激情精品| 亚洲电影免费观看高清完整版在线| 亚洲永久精品国产| 亚洲国产日韩欧美在线图片 | 久久综合伊人77777| 国产精品美女一区二区| 日韩视频精品在线| 欧美1区2区3区| 午夜日韩在线观看| 欧美日韩综合不卡| 亚洲美女免费视频| 欧美xxx成人| 久久精品国产免费看久久精品| 国产精品久久久久免费a∨ | 亚洲一区二区免费视频| 欧美激情偷拍| 久久视频精品在线| 韩日精品视频| 久久精品成人| 亚洲欧美中文另类| 国产伦精品免费视频| 亚洲在线成人| 在线亚洲精品| 欧美性一区二区| 亚洲午夜一二三区视频| 亚洲九九精品| 欧美理论视频| 日韩视频在线永久播放| 欧美好骚综合网| 欧美va亚洲va香蕉在线| 亚洲精品日本| 亚洲欧洲精品一区二区三区波多野1战4 | 国产婷婷精品| 久久久亚洲成人| 久久久久在线| 亚洲第一福利在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲第一黄色网| 亚洲缚视频在线观看| 欧美激情一区二区三区四区| 日韩午夜在线| 一区二区三区高清视频在线观看| 国产精品高精视频免费|