模擬試題 困難重重

2022-05-20 08:42:16 字數 1814 閱讀 1625

比較容易看出這是個網路流,但是我太菜了不知道怎麼建邊。

首先如果\(a==b\),那麼就是乙個很簡單的拆邊網路流。先將圖黑白染色,\(s\)向白點連\(4\)條邊,第\(i\)條邊的流量為\(1\),代價為\((i-1)*a\);黑點向\(t\)連\(4\)條邊,流量和代價同理。相鄰的黑白點之間在連流量為\(1\)的邊。

然後考慮\(b\geq a\)的時候,相當於走了兩條橫邊或者兩條豎邊過後要額外付出\(b-a\)的代價。所以我們將乙個點再帶上兩個點分別表示橫邊和豎邊。每個點向乙個橫點連兩條邊,流量為\(1\),代價分別為\(0\)和\(b-a\)。乙個白點的橫點向它左右兩邊的黑點的橫點連邊,豎點同理。

遇到這種代價不同的題,一般的做法就是多拆點和建邊,將不同的代價的差值表示在邊權中。

**:

#include#define ll long long

#define n 155

using namespace std;

inline int get() while('0'<=ch&&ch<='9') return x*f;}

int n,m;

int a,b;

int q;

char mp[n][n];

struct road s[n*n*50];

int h[n*n*3],cnt=1;

int dx=,dy=;

int id[n][n];

void add(int i,int j,int f,int c) ;h[i]=cnt;

s[++cnt]=(road) ;h[j]=cnt;

}int s,t;

int dis[n*n*3];

int fr[n*n*3],e[n*n*3];

queueq;

bool in[n*n*3];

int ans;

bool spfa()

} }if(dis[t]>1e9) return 0;

for(int i=t;i;i=fr[i])

ans+=dis[t];

return 1;

}int main()

add(id[i][j],id[i][j]+tot,1,0);

add(id[i][j],id[i][j]+tot,1,b-a);

add(id[i][j],id[i][j]+2*tot,1,0);

add(id[i][j],id[i][j]+2*tot,1,b-a);

for(int k=0;k<4;k++)

} else

add(id[i][j]+tot,id[i][j],1,0);

add(id[i][j]+tot,id[i][j],1,b-a);

add(id[i][j]+2*tot,id[i][j],1,0);

add(id[i][j]+2*tot,id[i][j],1,b-a);

}} }

if(8<=type&&type<=12)

} else

} return 0;

}

售前解決方案秘訣,學會後寫方案不再困難重重!

一名售前攻城獅,絕大多數時間都在與word為友,漫漫長路是愛是狠各有感受!今天博主帶來乙份提公升書寫解決方案的訣竅 1.拿到需求第一件事,深刻解讀需求,腦海裡清楚方案的意圖,整體架構,資料邏輯等等。3.設計出解決方案的文字章節,通常章節為 建設背景 現狀 目標 原則 依據 功能 軟硬配置 實施計畫 ...

Toy Bricks(HZOI模擬試題)

ray又在npc問題了 這裡有乙個箱子,還有若干個玩具。我們可以假設玩具的數量是沒有上限的。我們還知道這個箱子是不規則的,或者可以說,他的外形比較像乙個矩形,但是內部卻有很多突起,這些突起很可惡,他可以一直突到玩具的頂蓋部。為了簡化這個npc問題,ray只保留了一種形狀的玩具。ps 玩具為 十 字形...

面試模擬試題2

一 前段時間,許多地方出台規定 機關和全額事業單位的在職職工,經批准自願離職到非公有制企業工作的,3年內原單位發給基本工資。3年期滿,繼續留在非公有制企業的,按規定辦理辭職手續,人事檔案和組織關係轉入人才交流中心管理 要求回原單位工作的,由原單位安排工作。這一舉措,倍受社會 矚目 成為大眾議論的焦點...