(CCF CAT 训练二)2023-2024年中国计算机应用技术大赛- 全国算法精英大赛
温馨提示:这篇文章已超过390天没有更新,请注意相关的内容是否还可用!
Flower
反悔贪心,按照时间对花朵进行排序,从0到n-1遍历花朵,如果当前堆中元素小于当前花朵的绽放时间t,直接放入堆中,否则花朵金币数放入堆中并弹出堆中金币数最小值,最后如果堆中元素个数大于k,一直弹出堆中最小金币数直到元素个数等于k
#include
#include
#include
#include
using namespace std;
const int N=1e5+5;
int t[N], w[N];
int main()
{
int n, k;
cin>>n>>k;
for(int i=0;i
cin>t[i];
}
for(int i=0;i
cin>w[i];
}
vector v;
for(int i=0;i
v.push_back({t[i], w[i]});
}
priority_queue
return p1.first l:tmp->r;
}
tmp = new node(i);
if(pre->v > i){
pre->l = tmp;
}else{
pre->r = tmp;
}
}
}
int find(int i){
node* tmp = root;
int deep = 1;
while(tmp!=nullptr){
tmp = tmp->v>i? tmp->l:tmp->r;
deep++;
}
return deep;
}
int main()
{
int n;
cin>>n;
for(int i=0;i
int a;
cin>a;
insert(a);
}
for(int i=0;i
int a;
cin>a;
cout
int n, m;
cinnm;
for(int i=2;i
cin>t[i];
}
for(int i=1;i
cin>e[i];
}
for(int i=1;i
cin>d[i];
}
memset(dp, -1, sizeof dp);
dp[1][0] = 0;
for(int i=1;i
if(e[1] - d[1]*(i-1) =0 )
dp[1][i] = dp[1][i-1] + e[1] - d[1]*(i-1);
else{
dp[1][i] = dp[1][i-1];
}
// cout
// dp[i]
for(int j=0; j
// dp[i][j] = dp[i-1][j];
for(int k=0;k
if(dp[i-1][k]!=-1)
dp[i][j] = max(dp[i][j], dp[i-1][k] + (long long)e[i]*(j-k-t[i]) - (long long)(j-k-t[i])*(j-k-t[i] -1)*d[i]/ 2);
// cout
// ios_base::sync_with_stdio(false);
// cin.tie(NULL);
int n, m;
// cinnm;
scanf("%d%d", &n, &m);
t[1] = 0;
for (int i = 2; i
// cint[i];
scanf("%d", &t[i]);
}
for (int i = 1; i
// cine[i];
scanf("%d", &e[i]);
}
for (int i = 1; i
// cind[i];
scanf("%d", &d[i]);
}
std::vector
for (int j = 0; e[i] - j * d[i] 0 && j
p[i].emplace_back(e[i] - j * d[i]);
}
}
int ans = 0;
int travel = 0;
for (int i = 1; i
travel += t[i];
memset(pos, 0, sizeof pos);
int remain = m - travel;
if(remain //否则remain为负数会进入循环,一直没找到这个错误
int id = -1, mx = 0;
for (int j = 1; j
if(pos[j] == p[j].size())continue;
if (p[j][pos[j]] mx) {
id = j;
mx = p[j][pos[j]];
}
}
if (id != -1) {
tmp_ans += p[id][pos[id]];
pos[id] ++;
remain--;
}
else {
break;
}
}
ans = max(ans, tmp_ans);
}
printf("%d", ans);
}
int n;
cinn;
for(int i=1;i
cinarr[i][1] arr[i][2] arr[i][3];
}
memset(dp, -1, sizeof dp);
// dp[2][1][2] = arr[2][1] + arr[1][2];
// dp[2][1][3] = arr[2][1] + arr[1][3];
dp[2][2][1] = arr[2][2] + arr[1][1];
// dp[2][2][3] = arr[2][2] + arr[1][3];
dp[2][3][1] = arr[2][3] + arr[1][1];
// cout
dp[i][1][2] = dp[i-1][2][1] + arr[i][1];
dp[i][1][3] = max(dp[i-1][3][1], dp[i-1][3][2]) + arr[i][1];
dp[i][2][1] = max(dp[i-1][1][2], dp[i-1][1][3]) + arr[i][2];
dp[i][2][3] = max(dp[i-1][3][1], dp[i-1][3][2]) + arr[i][2];
// cout
dp[i][1][2] = dp[i-1][2][1] + arr[i][1];
dp[i][1][3] = max(dp[i-1][3][1], dp[i-1][3][2]) + arr[i][1];
dp[i][2][1] = max(dp[i-1][1][2], dp[i-1][1][3]) + arr[i][2];
dp[i][2][3] = max(dp[i-1][3][1], dp[i-1][3][2]) + arr[i][2];
dp[i][3][1] = max(dp[i-1][1][3], dp[i-1][1][2]) + arr[i][3];
dp[i][3][2] = dp[i-1][2][3] + arr[i][3];
}
ans = max(ans, max(max(max(dp[n][3][1], dp[n][3][2]), dp[n][1][2]), dp[n][1][3]));
// cout
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

