Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
A
B
C
給你N(N<=30)種水瓶每種水瓶有無限個(gè) 每個(gè)的體積是2^(i-1)價(jià)格是cost[i] 要求你花最少的錢弄出L體積的水
先從前到后掃一遍cost[i+1]=min(cost[i+1],cost[i]*2)? 再?gòu)暮笸皰咭槐閏ost[i]=min(cost[i],cost[i+1) 保證了價(jià)格的最優(yōu)化
然后從0開始到30 如果二進(jìn)制有當(dāng)前體積的就買 同時(shí)檢驗(yàn)一下anser=min(anser,cost[i+1])(意思是如果買當(dāng)前所有體積兩倍的水比買當(dāng)前的便宜就買當(dāng)前體積兩倍的)
#include <bits/stdc++.h> #include <cstdio> #include <algorithm> #include <vector> using namespace std; typedef long long ll; int n; ll L; ll cost[35]; int main() {cin >> n;cin >> L;for (int i = 1; i <= n; i++){cin >> cost[i];}for (int i = 1; i <= n - 1; i++){cost[i + 1] = min(cost[i + 1], cost[i] * 2);}for (int i = n - 1; i >= 1; i--){cost[i] = min(cost[i], cost[i + 1]);}for (int i = n + 1; i <= 33; i++){cost[i] = cost[i - 1] * 2;}ll anser = 0;for (int i = 0; i <= 30; i++){if (L & (1LL << i)){anser += cost[i + 1];}anser = min(anser, cost[i + 2]);}cout << anser << endl; } View CodeD
給你N個(gè)問題 T時(shí)間 每個(gè)問題有一個(gè)ai和ti 分別的意思是 總解決的問題如果不大于ai這個(gè)問題就有一個(gè)貢獻(xiàn)與問題所消耗的時(shí)間
要求你求出最大的貢獻(xiàn)值
可以二分也可以直接優(yōu)先隊(duì)列貪心 把a(bǔ)i ti i的問題 push進(jìn) pro[ai] make_pair(ti,i)
假設(shè)當(dāng)前最大值是i 從N開始 把pro[i]的全部壓入優(yōu)先隊(duì)列 如果問題數(shù)比i大就 pop掉最大的 直到遇到符合要求的或者i==0
#include <cstdio> #include <bits/stdc++.h> #include <algorithm> #include <vector> using namespace std; vector<pair<int, int> > ke[200005]; priority_queue<pair<int, int> > que; int main() {int n, T;cin >> n >> T;int where, t;for (int i = 1; i <= n; i++){scanf("%d %d", &where, &t);ke[where].push_back(make_pair(t, i));}int anser = 0;int sum = T;for (int i = n; i >= 0; i--){for (pair<int, int> ch : ke[i]){que.push(ch);sum -= ch.first;}while (que.size() > i){sum += que.top().first;que.pop();}if (que.size() == i && sum >= 0){cout << i << endl << i << endl;while (que.size()){cout << que.top().second << " ";que.pop();}cout << endl;return 0;}} } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/Aragaki/p/8711214.html
總結(jié)
以上是生活随笔為你收集整理的Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到桃花林盛开了好不好
- 下一篇: 梦到小老鼠爬到自己身上是什么意思