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

隨筆 - 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>
            欧美不卡激情三级在线观看| 久久久久久网站| 欧美少妇一区| 亚洲欧美电影在线观看| 亚洲一区二区毛片| 国产亚洲精品v| 久久综合一区| 欧美成人黄色小视频| av不卡在线看| 亚洲欧美不卡| 在线播放日韩专区| 亚洲欧洲一区| 国产精品嫩草99a| 久久久久国产精品www| 毛片av中文字幕一区二区| 亚洲精品在线观| 亚洲无玛一区| 在线精品视频免费观看| 亚洲人成网站精品片在线观看| 欧美日韩另类一区| 久久精品国产99国产精品| 久热re这里精品视频在线6| 亚洲精品乱码视频| 亚洲午夜久久久久久久久电影院| 国内视频一区| 一区二区av在线| 国产曰批免费观看久久久| 亚洲人午夜精品免费| 国产日韩久久| 日韩视频在线观看免费| 国产真实乱偷精品视频免| 亚洲美女一区| 在线观看国产一区二区| 一二三四社区欧美黄| 一区二区三区亚洲| 国产精品99久久久久久有的能看| 韩曰欧美视频免费观看| 一区二区三区高清| 91久久精品一区二区别| 欧美一级大片在线观看| 亚洲一区二区成人| 免费黄网站欧美| 久久久欧美精品| 国产精品毛片大码女人| 亚洲国产日韩美| 亚洲成色www久久网站| 亚洲一区二区三区精品视频| 亚洲毛片网站| 免费不卡欧美自拍视频| 久久久777| 国产欧美三级| 亚洲一区在线播放| 亚洲一区二区不卡免费| 欧美乱大交xxxxx| 欧美freesex8一10精品| 激情亚洲成人| 久久久亚洲成人| 久久夜色精品国产欧美乱| 国产日韩精品视频一区| 亚洲欧美电影在线观看| 亚洲深夜av| 欧美三级日本三级少妇99| 亚洲精品欧美极品| 亚洲裸体在线观看| 欧美精品一区三区| 亚洲精品一区二| 一区二区三区欧美成人| 欧美精品久久久久久久久老牛影院| 欧美成人精品影院| 亚洲成在人线av| 欧美成人久久| 亚洲精品资源| 亚洲综合国产精品| 国产精品爽黄69| 欧美一级精品大片| 久久久久久一区二区三区| 国产一区日韩欧美| 久久这里只有| 最新成人在线| 亚洲自拍偷拍麻豆| 国产丝袜一区二区| 久久亚洲精品视频| 亚洲精品久久7777| 亚洲综合三区| 狠狠色丁香婷婷综合久久片| 蜜桃av一区| 99精品福利视频| 欧美一区二区三区四区视频| 在线不卡欧美| 欧美全黄视频| 午夜精品免费视频| 欧美大片在线观看一区二区| 亚洲色图自拍| 国语自产偷拍精品视频偷| 欧美 日韩 国产一区二区在线视频| 亚洲精品国产精品国自产在线| 亚洲综合色在线| 一区二区亚洲精品国产| 欧美精品日韩一本| 欧美一级夜夜爽| 亚洲激情综合| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲欧美日韩视频一区| 国产午夜精品视频免费不卡69堂| 久久夜色精品国产欧美乱| 亚洲每日更新| 蜜桃av一区二区在线观看| 一区二区三区你懂的| 国内外成人免费激情在线视频网站| 欧美不卡视频一区| 欧美一级欧美一级在线播放| 亚洲国产日韩欧美一区二区三区| 小处雏高清一区二区三区| 亚洲国产日韩在线一区模特| 国产精品视频免费在线观看| 欧美xx69| 久久精品91久久久久久再现| 在线视频精品| 亚洲人成网站影音先锋播放| 久久久青草婷婷精品综合日韩 | 亚洲欧美视频在线| 亚洲精品一区二区三区福利| 国产一区二区三区成人欧美日韩在线观看| 欧美激情一区二区三区蜜桃视频| 欧美专区亚洲专区| 亚洲一区二区成人在线观看| 亚洲乱码国产乱码精品精98午夜| 欧美mv日韩mv亚洲| 久久久久久久91| 欧美亚洲免费电影| 亚洲影院色在线观看免费| 9i看片成人免费高清| 亚洲三级国产| 亚洲黄色成人| 亚洲黄色在线看| 亚洲国产老妈| 亚洲国产一区二区视频| 亚洲第一页在线| 在线看片第一页欧美| 伊人久久男人天堂| 激情成人亚洲| 1024国产精品| 在线看一区二区| 亚洲高清一区二| 亚洲福利视频一区二区| 亚洲欧洲综合另类在线| 亚洲人成人一区二区在线观看| 亚洲国产精品久久久久婷婷老年 | 欧美多人爱爱视频网站| 免费久久99精品国产| 欧美成年人视频网站欧美| 欧美大片91| 欧美日韩专区| 国产精品色网| 激情伊人五月天久久综合| 在线欧美不卡| 日韩一级在线观看| 在线一区日本视频| 香蕉久久精品日日躁夜夜躁| 欧美一级理论性理论a| 久久久免费精品| 欧美激情第二页| 亚洲精品永久免费| 亚洲视频在线观看一区| 午夜精品影院在线观看| 久久久噜噜噜| 欧美日韩国产一级片| 国产精品久久久久久久久久久久久久| 国产精品婷婷| 在线观看欧美| 一区二区三区视频在线播放| 欧美在线免费观看亚洲| 免费高清在线视频一区·| 亚洲国产精品精华液2区45| 一本大道久久a久久精品综合| 亚洲自拍高清| 鲁大师成人一区二区三区| 欧美日韩你懂的| 国内精品99| 亚洲美女av在线播放| 性8sex亚洲区入口| 欧美激情视频网站| 亚洲一区二区毛片| 欧美丰满少妇xxxbbb| 国产美女精品人人做人人爽| 亚洲精品韩国| 久久久久国产一区二区三区四区| 亚洲精品日日夜夜| 久久亚洲精品一区二区| 国产精品久久久久久一区二区三区| 在线观看中文字幕不卡| 午夜精品一区二区三区在线播放| 欧美激情亚洲综合一区| 新67194成人永久网站| 欧美日韩国产区一| 亚洲第一狼人社区| 久久精品盗摄| 亚洲一区二区三区免费观看| 欧美夫妇交换俱乐部在线观看| 国产日韩欧美二区|