照例化簡題意:
0點n個任務,每個任務有乙個權值和乙個消失時間,要在消失之前完成才會獲得價值,求最大值
solution:
蒟蒻一開始居然往dp上想。。。
集訓的東西,我卻忘了,看來還沒消化完啊。。。
最後歪歪出來乙個類似正解的東西但是我搞崩掉了....
首先,在每個點完成消失的東西,然後在空閒的點找最大的完成。
貌似是對的.....(至少hack date都過了)
然後正解:
用課件的話來講,就是:
這就很好理解了。。
先排序然後往大根堆裡面塞乙個最大值(如果不超過消失時間的話)
如果超過了當前時間,找之前的乙個不超過時間的最大值塞進大根堆裡
然後最後統計答案。
#includeusing(完)namespace
std;
const
int maxn=1e6+10
;inline
intread()
while(s<='
9'&&s>='0')
return x*f;
}struct
node
a[maxn];
bool
operator
int n,now=0
,ans;
priority_queue
< int , vector < int > , greater < int > >q;
intmain()
for(int i=1;i<=n;i++)
sort(a+1,a+n+1
);
for(int i=1;i<=n;i++)
else}}
printf("%d
",ans);
return0;
}
打地鼠遊戲
題目描述 輸入輸入包含3行,第一行包含乙個整數n 1 n 100000 表示有n個地鼠從地上冒出來,第二行n個用空格分隔的整數表示每個地鼠冒出後停留的時間 maxt 50000 第三行n個用空格分隔的整數表示每個地鼠被敲擊後會增加的分值v v 1000 每行中第i個數都表示第i個地鼠的資訊。輸出輸出...
打地鼠遊戲
時間限制 1 sec 記憶體限制 128 mb 題目描述 輸入輸入包含3行,第一行包含乙個整數n 1 n 100000 表示有n個地鼠從地上冒出來,第二行n個用空格分隔的整數表示每個地鼠冒出後停留的時間 maxt 50000 第三行n個用空格分隔的整數表示每個地鼠被敲擊後會增加的分值v v 1000...
地鼠遊戲 貪心
題目描寫敘述 description 王鋼是一名學習成績優異的學生,在平時的學習中,他總能利用一切時間認真高效地學習,他不但學習刻苦,並且善於常常總結 完好自己的學習方法,所以他總能在每次考試中得到優異的分數,這一切非常大程度上是因為他是乙個追求效率的人。但王鋼也是乙個喜歡玩的人,平時在學校學習他努...