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

差分約束系統詳解

 

差分約束系統

    在一個差分約束系統(system of difference constraints)中,線性規劃矩陣A的每一行包含一個1和一個-1A的其他所有元素都為0。因此,由Axb給出的約束條件是m個差分約束集合,其中包含n個未知量,對應的線性規劃矩陣Amn列。每個約束條件為如下形式的簡單線性不等式:xj-xibk。其中1i,jn1km

    例如,考慮這樣一個問題,尋找一個5維向量x=(xi)以滿足:

 

    這一問題等價于找出未知量xii=1,2,…,5,滿足下列8個差分約束條件:

x1-x20

x1-x5-1

x2-x51

x3-x15

x4-x14

x4-x3-1

x5-x3-3

x5-x4-3

    該問題的一個解為x=(-5,-3,0,-1,-4),另一個解y=(0,2,5,4,1),這2個解是有聯系的:y中的每個元素比x中相應的元素大5

 
引理:設x=(x1,x2,…,xn)是差分約束系統Axb的一個解,d為任意常數。則x+d=(x1+d,x2+d,…,xn+d)也是該系統Axb的一個解。

 

約束圖

   在一個差分約束系統Axb中,m X n的線性規劃矩陣A可被看做是n頂點,m條邊的圖的關聯矩陣。對于i=1,2,…,n,圖中的每一個頂點vi對應著n個未知量的一個xi。圖中的每個有向邊對應著關于兩個未知量的m個不等式中的一個。

   給定一個差分約束系統Axb,相應的約束圖是一個帶權有向圖G=(V,E),其中V={v0,v1,…,vn},而且E={ (vi,vj) : xj-xibk是一個約束}∪{ (v0,v1) , (v0,v2) , … , (v0,vn) }。引入附加頂點v0是為了保證其他每個頂點均從v0可達。因此,頂點集合V由對應于每個未知量xi的頂點vi和附加的頂點v0組成。邊的集合E由對應于每個差分約束條件的邊與對應于每個未知量xi的邊(v0,vi)構成。如果xj-xibk是一個差分約束,則邊(vi,vj)的權w(vi,vj)=bk(注意ij不能顛倒),v0出發的每條邊的權值均為0

  
定理:給定一差分約束系統Axb,設G=(V,E)為其相應的約束圖。如果G不包含負權回路,那么x=( d(v0,v1) , d(v0,v2) , … , d(v0,vn) )是此系統的一可行解,其中d(v0,vi)是約束圖中v0vi的最短路徑(i=1,2,…,n)。如果G包含負權回路,那么此系統不存在可行解。

 

差分約束問題的求解

   由上述定理可知,可以采用Bellman-Ford算法對差分約束問題求解。因為在約束圖中,從源點v0到其他所有頂點間均存在邊,因此約束圖中任何負權回路均從v0可達。如果Bellman-Ford算法返回TRUE,則最短路徑權給出了此系統的一個可行解;如果返回FALSE,則差分約束系統無可行解。

   關于n個未知量m個約束條件的一個差分約束系統產生出一個具有n+1個頂點和n+m條邊的約束圖。因此采用Bellman-Ford算法,可以再O((n+1)(n+m))=O(n^2+nm)時間內將系統解決。此外,可以用SPFA算法進行優化,復雜度為O(km),其中k 為常數。

http://acm.pku.edu.cn/JudgeOnline/problem?id=1364

Description

Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen prayed: ``If my child was a son and if only he was a sound king.'' After nine months her child was born, and indeed, she gave birth to a nice son.
Unfortunately, as it used to happen in royal families, the son was a little retarded. After many years of study he was able just to add integer numbers and to compare whether the result is greater or less than a given integer number. In addition, the numbers had to be written in a sequence and he was able to sum just continuous subsequences of the sequence.

The old king was very unhappy of his son. But he was ready to make everything to enable his son to govern the kingdom after his death. With regards to his son's skills he decided that every problem the king had to decide about had to be presented in a form of a finite sequence of integer numbers and the decision about it would be done by stating an integer constraint (i.e. an upper or lower limit) for the sum of that sequence. In this way there was at least some hope that his son would be able to make some decisions.

After the old king died, the young king began to reign. But very soon, a lot of people became very unsatisfied with his decisions and decided to dethrone him. They tried to do it by proving that his decisions were wrong.

Therefore some conspirators presented to the young king a set of problems that he had to decide about. The set of problems was in the form of subsequences Si = {aSi, aSi+1, ..., aSi+ni} of a sequence S = {a1, a2, ..., an}. The king thought a minute and then decided, i.e. he set for the sum aSi + aSi+1 + ... + aSi+ni of each subsequence Si an integer constraint ki (i.e. aSi + aSi+1 + ... + aSi+ni < ki or aSi + aSi+1 + ... + aSi+ni > ki resp.) and declared these constraints as his decisions.

After a while he realized that some of his decisions were wrong. He could not revoke the declared constraints but trying to save himself he decided to fake the sequence that he was given. He ordered to his advisors to find such a sequence S that would satisfy the constraints he set. Help the advisors of the king and write a program that decides whether such a sequence exists or not.

Input

The input consists of blocks of lines. Each block except the last corresponds to one set of problems and king's decisions about them. In the first line of the block there are integers n, and m where 0 < n <= 100 is length of the sequence S and 0 < m <= 100 is the number of subsequences Si. Next m lines contain particular decisions coded in the form of quadruples si, ni, oi, ki, where oi represents operator > (coded as gt) or operator < (coded as lt) respectively. The symbols si, ni and ki have the meaning described above. The last block consists of just one line containing 0.

Output

The output contains the lines corresponding to the blocks in the input. A line contains text successful conspiracy when such a sequence does not exist. Otherwise it contains text lamentable kingdom. There is no line in the output corresponding to the last ``null'' block of the input.

Sample Input

4 2
1 2 gt 0
2 2 lt 2
1 2
1 0 gt 0
1 0 lt 0
0

Sample Output

lamentable kingdom
successful conspiracy

Source


很典型的差分約束,關鍵在于怎么構圖。
這里我們設Sum(i) = A1 + A2 + … + Ai-1
那么輸入的si ni oi ki
就可以轉換成如下的約束式:Sum(si+ni+1) - Sum(si) oi ki

#include <iostream>
using namespace std;

const int MAXN = 120;
const int inf = 0x7f;
struct node{
    
int s,e,v;
}
edge[MAXN];
int n,m,d[MAXN];

bool bellman_ford(){
    
int i,j;
    
for(i=0;i<=n+1;i++) d[i]=inf;
    
for(d[0]=0,i=1;i<=n+1;i++)
        
for(j=0;j<=(n+m);j++)
            
if(d[edge[j].s]+edge[j].v<d[edge[j].e])
                d[edge[j].e]
=d[edge[j].s]+edge[j].v;
    
for(i=0;i<=(n+m);i++)
        
if(d[edge[i].s]+edge[i].v<d[edge[i].e])
            
return false;
    
return true;
}

int main(){
    
char oi[5];
    
int si,ni,k,i,j;
    
while(scanf("%d",&n),n){
        scanf(
"%d",&m);
        
for(i=0;i<m;i++){
            scanf(
"%d %d\n",&si,&ni);
            scanf(
"%s %d",oi,&k);
            
if(oi[0]=='g')
                edge[i].s
=si,edge[i].e=si+ni+1,edge[i].v=-k-1;
            
else
                edge[i].s
=si+ni+1,edge[i].e=si,edge[i].v=k-1;
        }

        
for(i=1,j=m;i<=n+1;i++,j++)
            edge[j].s
=0,edge[j].e=i,edge[j].v=0;
        puts(bellman_ford()
?"lamentable kingdom":"successful conspiracy");
    }

    
return 0;
}

posted on 2009-06-04 15:25 極限定律 閱讀(2212) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品视频精品| 欧美久久影院| 国内精品视频在线播放| 欧美专区18| 欧美一区成人| 在线精品视频一区二区| 亚洲第一视频| 欧美国产日韩一区二区在线观看| 亚洲裸体在线观看| 一区二区三区日韩欧美精品| 国产精品激情电影| 久久久久国色av免费看影院 | 最近中文字幕mv在线一区二区三区四区 | 欧美日韩国产色视频| 在线综合视频| 欧美一级黄色录像| 亚洲激情自拍| 一区二区三区视频观看| 国内精品模特av私拍在线观看| 欧美成人福利视频| 欧美三级电影精品| 久久精品日产第一区二区| 裸体女人亚洲精品一区| 亚洲一二三四区| 久久精品视频免费播放| 99精品欧美一区二区三区综合在线| 日韩小视频在线观看专区| 国产亚洲欧美一区二区| 亚洲成在线观看| 国产区亚洲区欧美区| 亚洲激情网址| 国产原创一区二区| 99av国产精品欲麻豆| 在线观看欧美视频| 亚洲一区亚洲| 99视频一区| 老司机免费视频一区二区三区| 亚洲午夜一二三区视频| 久久尤物视频| 欧美一区二区三区免费观看| 欧美刺激性大交免费视频| 久久精品一区蜜桃臀影院| 欧美色视频一区| 欧美激情片在线观看| 国产在线欧美| 亚洲永久在线观看| 在线视频欧美日韩精品| 久久在线视频在线| 久久免费视频网站| 国产精品户外野外| 日韩午夜免费| 日韩一级裸体免费视频| 久久婷婷色综合| 久久精品一区二区国产| 国产精品美女主播| 亚洲色无码播放| 一区二区三区精品视频| 欧美电影免费观看网站| 欧美高清在线精品一区| 亚洲第一精品夜夜躁人人爽| 久久国产黑丝| 久久蜜臀精品av| 国产伊人精品| 久久成人精品电影| 久久综合伊人| 亚洲高清不卡av| 免费日本视频一区| 最新精品在线| 一本色道久久综合亚洲精品按摩| 欧美电影免费观看网站| 亚洲精品国产精品国自产观看浪潮 | 国内精品伊人久久久久av影院 | 麻豆国产va免费精品高清在线| 国产视频一区二区三区在线观看| 午夜激情一区| 久久精品91久久香蕉加勒比| 国产伊人精品| 久久一区二区精品| 亚洲国产一区在线观看| 一区二区三区视频在线播放| 欧美日韩精品免费| 亚洲天堂男人| 久久久精品视频成人| 亚洲第一精品在线| 欧美人与性动交a欧美精品| 亚洲精品在线一区二区| 亚洲尤物视频在线| 国产在线拍偷自揄拍精品| 久久综合九色99| 日韩视频中文字幕| 欧美在线播放| 亚洲国产精品久久久久秋霞影院 | 久久亚洲美女| 亚洲欧洲综合| 性亚洲最疯狂xxxx高清| 激情婷婷欧美| 欧美日韩综合另类| 久久精品亚洲一区| 亚洲区第一页| 久久国产精品72免费观看| 亚洲国产欧美在线| 国产精品国产三级国产| 久久国产精品99国产精| 最近看过的日韩成人| 欧美中文字幕在线| 亚洲乱码久久| 国内精品**久久毛片app| 欧美福利网址| 久久精品官网| 一本色道久久加勒比88综合| 久久伊人亚洲| 亚洲综合不卡| 亚洲乱码国产乱码精品精天堂| 国产精品欧美一区二区三区奶水 | 一区二区三区你懂的| 玖玖国产精品视频| 亚洲影院免费观看| 亚洲高清视频一区| 国产一区视频网站| 欧美午夜视频网站| 欧美国产先锋| 国产精品青草久久| 欧美极品影院| 久久亚洲一区二区三区四区| 亚洲午夜视频在线| 99pao成人国产永久免费视频| 欧美风情在线| 久久五月激情| 久久成人综合视频| 午夜精品一区二区三区在线 | 国产九色精品成人porny| 欧美久久一区| 欧美高清一区| 女仆av观看一区| 蜜桃av噜噜一区二区三区| 久久精视频免费在线久久完整在线看| 亚洲手机视频| 亚洲香蕉成视频在线观看| 亚洲最新在线视频| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品视频一区| 亚洲激情婷婷| 亚洲精品永久免费精品| 亚洲人成网站777色婷婷| 亚洲国产视频一区| 亚洲欧洲日韩在线| 亚洲裸体在线观看| 一个色综合导航| 亚洲一区二区在线免费观看| 99国产精品久久久久久久| 一区二区三区国产在线| 亚洲系列中文字幕| 午夜视频精品| 久久乐国产精品| 免费观看亚洲视频大全| 欧美黄污视频| 欧美日韩在线精品| 国产精品久久久久毛片软件| 国产精品影片在线观看| 韩国v欧美v日本v亚洲v| 在线欧美不卡| 日韩性生活视频| 亚洲欧美日韩一区二区在线| 欧美一区网站| 欧美凹凸一区二区三区视频| 亚洲欧洲一区二区三区久久| 一区二区三区福利| 欧美一区综合| 麻豆精品在线视频| 国产精品九九| 黄色国产精品一区二区三区| 亚洲高清一区二| 亚洲图片你懂的| 久久久久国产精品麻豆ai换脸| 欧美国产日韩xxxxx| 99riav国产精品| 久久国产加勒比精品无码| 欧美激情精品久久久久久黑人 | 久久久久久夜| 欧美精品二区三区四区免费看视频| 欧美性jizz18性欧美| 狠狠爱成人网| 中文在线一区| 欧美 日韩 国产在线| 亚洲丝袜av一区| 久久久亚洲综合| 国产精品日韩在线播放| 亚洲精品免费在线观看| 久久国产精品一区二区三区四区| 欧美激情国产日韩| 香蕉视频成人在线观看 | 午夜在线精品偷拍| 欧美激情性爽国产精品17p| 国产亚洲综合在线| 在线亚洲免费视频| 欧美福利影院| 久久av资源网站| 国产精品视频精品视频| 夜夜嗨av色一区二区不卡| 美女久久一区|