1 条题解
-
0
大根堆做法
#include <bits/stdc++.h> using namespace std; const int N=105; priority_queue<int>pq;//定义大根堆 int candles[N]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>candles[i]; for(int i=1;i<=n;i++)pq.push(candles[i]); int i=0;//天数 while(pq.size()>=i+1){//一定是i+1,不能写i i++; vector<int>now;//点燃的蜡烛 bool f=1; for(int j=1;j<=i;j++){ if(pq.top()-1!=0)now.push_back(pq.top()-1);//现在的蜡烛长度 if(!pq.empty())pq.pop();//晶石后任:if(!pq.empty())是必写的,不写会溢出 } // for(auto x:now)cout<<x<<' '; for(auto x:now)pq.push(x); // cout<<" "<<pq.size()<<endl; } cout<<i;//输出 return 0; }
信息
- ID
- 1143
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 3
- 上传者