SDOJ 2726 食堂(差分約束系統)

2021-08-21 21:50:10 字數 942 閱讀 2000

【問題描述】

在sd食堂,所有的座位是一行一行的排列。現在有n個座位排成一行,依次編號1,2,…,n,每個座位只能坐乙個人,現在l想數一下有多少個人坐著,乙個乙個數太慢了,l決定只選擇m段連續的座位,對每段分別數出人數。由於食堂噪音十分嘈雜,l無法專心,可能有輸錯了。但是l認為沒有數漏,最多是重複計數導致的。現在他把得到的資料給你,希望你幫他算出,一共最多有多少人。

【輸入格式】

第一行2個整數n,m,分別是座位數量,和l分成m段。

接下來m行,每行3個整數,l,r,k,表示l數了l到r這一段的座位,他數出的結果是k。

【輸出格式】

數出一行乙個整數表示答案。

【輸入樣例】

4 21 2 1 

2 4 2

【輸出樣例】

這道題就是很裸的一道差分約束,對於每乙個l,r,k,在圖上建一條l-1-r的邊權為k的邊,最後跑一遍spfa即可。

貼**:

#includeusing namespace std;

const int maxn=1e5+1;

const int maxm=5e5+1;

const int inf=0x3f3f3f3f;

int dis[maxn];

int head[maxm],nxt[maxm],to[maxm],w[maxm],vis[maxn];

int n,m,k,cnt,st;

queueq;

int read() //讀入優化,不加會神奇的被卡掉

void add(int a,int b,int c)

void spfa()

}} }

}int main()

spfa();

cout《小結:memset這個函式感覺會耗用較長時間,一開始我將head和nxt賦為-1,結果爆tle,去掉就過了……emmm,下次注意

SDOJ 小鑫吃糖果

問題及 檔名稱 sdoj.cpp 作 者 李楠 完成日期 2015年2月5日 版 本 號 v1.0 問題描述 小鑫是個吃貨,媽媽給他買了好多的糖果,但是小鑫想吃糖果是有條件的,小鑫要答對媽媽提的問題才能吃到相應數量的糖果。媽媽會進行n次提問,每次給出乙個數字m,要求小鑫答出1到m之間素數的個數,如果...

提高專案27 2解密

任務和 小麗請你寫乙個程式,在看小明的情書時,讓程式幫著 解密 因為有同學知道了他們倆人的 加密 手段,決定紙條由人傳,加密數字 1 9 用兩人約好的手勢傳,所以解密時,需要將加密數字作為程式輸入。例,輸入m pszi y 回車 4,輸出i love 檔名 main.c 完成日期 2016.7.7 ...

2 7 2 找鞍點 20 分

2 7 2 找鞍點 20 分 乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的...