最近做了幾個用優先佇列進行貪心的題目,這裡寫下來,以免忘了。
1、cf 799 b
每次選最便宜的衣服,沒什麼好說的,一發過
**:
#include
#include
#include
#include
#include
#define n 6005
#define inf 0x3f3f3f3f
#include
#include
#include
#include
#include
#define mod 1000000007
double pi=acos(-1.0);
typedef long long ll;
using namespace std;
typedef pairint> pr;
priority_queue,greater> q[4];
ll p[200050],a[200050],b[200050];
int vis[200050];
intm,c,n;
int main()
for(int i=0;i"%d",&a[i]);
}for(int i=0;i"%d",&b[i]);
}for(int i=0;iq[a[i]].push(make_pair(p[i],i));
q[b[i]].push(make_pair(p[i],i));
}cin>>m;
for(int i=0;i}
if(!flag)
pr temp=q[c].top();
printf("%i64d ",temp.first);
q[c].pop();
vis[temp.second]=1;
}return
0;}
2、cf 3d d. least cost bracket sequence
把所有的『?』都換成右括號,放進佇列,當不滿足對稱時選cost最小的就可以了
**:
#include
#include
#include
#include
#include
#define n 6005
#define inf 0x3f3f3f3f
#include
#include
#include
#include
#include
#define mod 1000000007
double pi=acos(-1.0);
typedef
long
long ll;
using
namespace
std;
char s[50050];
int a,b;
typedef pair p;
int main()
priority_queueq;
for(int i=0;iif(s[i]=='(') zuo++;
else
if(s[i]==')') zuo--;
else
if(zuo<0)
p temp=q.top();
q.pop();
zuo+=2;
ans-=temp.first;
s[temp.second]='(';}}
if(zuo>0)
else
printf("%i64d\n%s\n",ans,s);
return
0;}
3、zoj 3699
經典的加油問題
**:
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 200005;
const int inf = 1111111111;
long long q[maxn],head,tail,cost[maxn];
long long p[maxn];
int main()
if(flag == 0)
head = tail = 0;
long long ans = 0;
long long gas=0;
for(int i = 1; i <= n; i++)
else
} }
cout0;
}
貪心加優先佇列
消滅兔子 李陶冶 命題人 基準時間限制 1 秒 空間限制 131072 kb 分值 40 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子...
Meteor Flow(貪心 優先佇列)
meteor flow 貪心 優先佇列 ac code 1 既然只要發射一次,就可以打掉,那麼就要打掉那個耗費經歷最多的,以保留更多的精力 所以用優先佇列,先彈出耗費經歷最多的 2 其次,只要有能力打就先不發射 所以先入棧 34 include 5 include 6 include 7 inclu...
合併果子 貪心 優先佇列
c 合併果子 crawling in process.crawling failed time limit 1000msmemory limit 131072kb64bit io format lld llu submit status description 現在有n堆果子,第i堆有ai個果子。現...