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

隨筆 - 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 英雄哪里出來 閱讀(1298) 評論(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>
            91久久在线播放| 亚洲美女中文字幕| 亚洲精品久久久久中文字幕欢迎你 | 久久噜噜噜精品国产亚洲综合| 激情综合色综合久久| 国产日韩精品电影| 国产一区二区精品久久| 一区二区三区在线观看欧美| 国产丝袜一区二区三区| 精品电影在线观看| 亚洲国产精品嫩草影院| 日韩系列欧美系列| 亚洲欧美成人一区二区在线电影| 亚洲免费一区二区| 午夜伦欧美伦电影理论片| 欧美一区日韩一区| 蜜臀av性久久久久蜜臀aⅴ| 欧美国产大片| 亚洲精品一线二线三线无人区| 一区二区精品在线| 久久精品国产精品| 欧美日本免费| 国产午夜亚洲精品羞羞网站| 亚洲国产成人精品视频| 亚洲在线国产日韩欧美| 欧美+亚洲+精品+三区| 日韩午夜电影av| 欧美在线一级视频| 欧美日韩另类视频| 一区二区三区在线免费视频| 亚洲午夜精品| 欧美国产一区二区在线观看| aaa亚洲精品一二三区| 久久久综合网| 国产精品你懂的在线| 亚洲日本欧美| 久久久欧美一区二区| 亚洲精选久久| 久久综合国产精品| 国产精品自拍一区| 在线一区观看| 亚洲国产欧洲综合997久久| 亚洲免费播放| 狼人社综合社区| 国产小视频国产精品| 亚洲一区二区三区欧美| 亚洲国产精品传媒在线观看 | 亚洲欧美综合精品久久成人 | 久久久久五月天| 99国产精品久久久久久久| 狼人社综合社区| 伊人成年综合电影网| 欧美一区二视频在线免费观看| 亚洲精品系列| 欧美成人精品在线观看| 永久域名在线精品| 久久婷婷久久一区二区三区| 亚洲欧美在线观看| 国产精品一区二区三区乱码| 亚洲综合国产| 一本色道久久加勒比88综合| 欧美日韩精品一区二区| 日韩亚洲不卡在线| 亚洲精品123区| 欧美激情一级片一区二区| 亚洲人成网在线播放| 亚洲国产精品尤物yw在线观看 | 亚洲色图自拍| 欧美日本高清| 99精品欧美一区二区三区| 欧美韩日一区二区| 欧美高清在线一区| 9i看片成人免费高清| 亚洲欧洲日夜超级视频| 欧美精品国产精品| 在线亚洲国产精品网站| 中日韩视频在线观看| 国产美女精品人人做人人爽| 久久精品综合网| 久久青青草原一区二区| 亚洲日本va午夜在线影院| 日韩视频免费| 国产乱码精品一区二区三区忘忧草| 久久狠狠一本精品综合网| 久久爱另类一区二区小说| 亚洲国产成人久久| 日韩一级精品视频在线观看| 国产精品久久777777毛茸茸| 久久久99国产精品免费| 免费成人性网站| 国产精品99久久99久久久二8| 亚洲图片欧洲图片av| 狠狠色丁香久久婷婷综合丁香 | 亚洲美女在线视频| 99国产精品久久久久老师| 国产麻豆一精品一av一免费| 欧美a级理论片| 欧美视频精品在线| 久久在线免费| 欧美三级视频在线观看| 卡通动漫国产精品| 欧美日韩综合视频| 久久久久久9| 欧美日韩mv| 美女久久一区| 国产精品国产三级国产专播品爱网| 久久一综合视频| 欧美三级小说| 欧美黑人一区二区三区| 国产视频丨精品|在线观看| 亚洲黄色在线| 极品少妇一区二区三区精品视频| 亚洲精品一区二区三区99| 好吊日精品视频| 亚洲一区不卡| 中文欧美日韩| 欧美激情综合| 六月丁香综合| 国产欧美日韩在线视频| 亚洲国产网站| 亚洲国产精品一区二区三区| 亚洲欧美综合精品久久成人| 一区二区精品| 男人的天堂亚洲| 猛干欧美女孩| 国产一区二区三区四区在线观看| 一区二区高清在线观看| 久久久久久久高潮| 先锋影音久久久| 欧美亚州在线观看| 亚洲免费成人av| 一区二区三区欧美成人| 欧美α欧美αv大片| 每日更新成人在线视频| 国产在线乱码一区二区三区| 亚洲男人的天堂在线观看| 亚洲欧美日韩精品| 欧美精品在欧美一区二区少妇| 欧美国产精品中文字幕| 亚洲第一精品夜夜躁人人躁| 久久免费视频在线观看| 六十路精品视频| 在线观看欧美日韩国产| 久久欧美中文字幕| 欧美成人国产| 日韩一级二级三级| 欧美人与性动交a欧美精品| 亚洲国产综合在线| 日韩视频一区二区在线观看 | 午夜精品亚洲一区二区三区嫩草| 亚洲免费在线播放| 国产精品狼人久久影院观看方式| 一本久久a久久精品亚洲| 亚洲一区激情| 国产欧美一区二区三区另类精品 | 激情六月婷婷综合| 久久午夜色播影院免费高清| 欧美成人激情视频| 日韩视频二区| 欧美午夜精品理论片a级按摩 | 久久精品日韩欧美| 欧美成人精品影院| 日韩视频免费观看高清在线视频| 欧美精品自拍| 午夜精品福利一区二区三区av | 一区二区三区www| 国产精品v欧美精品∨日韩| 亚洲一级在线观看| 免费人成网站在线观看欧美高清| 亚洲黄色成人久久久| 欧美视频四区| 欧美一级视频精品观看| 免费成人美女女| 一区二区三区四区五区视频| 国产三级欧美三级日产三级99| 久久综合久久综合久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美一区二区三区男人的天堂| 亚洲欧美久久| 亚洲高清色综合| 国产精品激情偷乱一区二区∴| 性色av香蕉一区二区| 91久久在线| 久久久亚洲国产美女国产盗摄| 亚洲精品久久久蜜桃| 国产精品揄拍500视频| 欧美1区2区| 欧美亚洲一级片| 99成人精品| 欧美成人精品1314www| 欧美亚洲一级片| 亚洲精品无人区| 国产综合久久| 国产精品美女午夜av| 欧美国产三级| 久久影院午夜论| 午夜精品久久久99热福利| 亚洲精品网址在线观看| 亚洲二区视频在线| 免费观看成人网|