DAG訓練題 奧賽獎金

2021-07-14 14:17:03 字數 1159 閱讀 1220

【問題描述】

在2023年的noip複賽中,cqyz高2015級資訊學競賽班的同學們以超強的實力,力壓bs,nk,bz等學校。學校大老闆mr.lu心情很好,決定給每位學生發獎金。並按每個人競賽的成績高低計算他們得到獎金的多少,成績低的肯定要比成績高的少,但獎金最少為100元。

但mr.lu又是乙個很@的人,想發出的獎金盡量的少,這讓mr.he很生氣。決定給老闆出點難題,不將每個同學的成績直接給他,而是只告訴他:學生a的成績比學生b的成績高。這可難壞了財務室的那幾爺子!請你來幫助她們。

注意:每人得到的獎金必須是整數元。

【輸入格式】

第一行兩個整數n,m,n表示學生總數;以下m行,每行2個整數a,b,表示學生a的競賽成績學生b高。注意,輸入資訊中不會出現a比b高,b比c高,c又比a高的情況。

【輸出格式】

輸出乙個數表示最少總獎金。

【輸入樣例】

8 9

1 31 7

2 32 4

3 44 5

4 68 6

7 8

【輸出樣例】

812

【資料範圍】

80%的資料滿足n<=1000,m<=2000;

100%的資料滿足n<=10000,m<=100000。

根據給出的排序建立dag圖,找到分最低的學生一人100(好少!!!)。

分別找到剩餘的中分最低的學生,獲得指向他的人多1的獎金。

最後加起來。

#include

#include

#include

#include

#include

#include

#include

#include

#define maxn 10005

using namespace std;

int n,m,x,y,ans=0;

int rd[maxn]=,s[maxn];

vectorg[maxn];

vectortopo;

void ****() 

}for(int i=1;i<=n;i++)

ans+=s[i];

}int main()

****();

printf("%d",ans);}

細心的人會發現沒有retrun 0;

小學奧數思維訓練題(二)

同學和老師共16人去郊遊,有男同學 女同學 男老師 女老師。出發前,清點了一下人數,發現 學生比老師人數多 男老師比男同學人數多 男同學比女同學多 女同學比女老師多 問 女同學有多少人?分析 從題中可以得到以下資訊 男同學 女同學 男老師 女老師 老師人數 16 2 8 男老師 男同學 女同學 女老...

小學奧數思維訓練題(三)

甲 乙兩人分別從相距 300 公尺的 a b 兩地同時出發,相向而行,已知甲的速度為乙的 2 倍。那麼,甲 乙第一次相遇的地點距離 ab 中點 公尺。分析 相遇問題中比較基礎的典型問題。兩人同時出發,意味著 到相遇的時候,兩人行進的時間是相同的 而甲的速度是乙的 2 倍,意味著 甲行進的距離是乙的 ...

小學奧數思維訓練題(四)

有乙個雇主約定每年給工人 60 元錢和一件衣服,工人做到 7 個月的時候想要離開,雇主給了他 25 元錢和一件衣服。這件衣服值多少錢?分析 方法一 分數思路 一年 12 個月,要給 60 元錢和 一件衣服,就是說 每個月要給 錢 60 12 5 元 衣服 1 12 1 12 件 就是把衣服裁成 12...