Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
A
B
C
给你N(N<=30)种水瓶每种水瓶有无限个 每个的体积是2^(i-1)价格是cost[i] 要求你花最少的钱弄出L体积的水
先从前到后扫一遍cost[i+1]=min(cost[i+1],cost[i]*2) 再从后往前扫一遍cost[i]=min(cost[i],cost[i+1) 保证了价格的最优化
然后从0开始到30 如果二进制有当前体积的就买 同时检验一下anser=min(anser,cost[i+1])(意思是如果买当前所有体积两倍的水比买当前的便宜就买当前体积两倍的)
#include <bits/stdc++.h>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
int n;
ll L;
ll cost[];
int main()
{
cin >> n;
cin >> L;
for (int i = ; i <= n; i++)
{
cin >> cost[i];
}
for (int i = ; i <= n - ; i++)
{
cost[i + ] = min(cost[i + ], cost[i] * );
}
for (int i = n - ; i >= ; i--)
{
cost[i] = min(cost[i], cost[i + ]);
}
for (int i = n + ; i <= ; i++)
{
cost[i] = cost[i - ] * ;
}
ll anser = ;
for (int i = ; i <= ; i++)
{
if (L & (1LL << i))
{
anser += cost[i + ];
}
anser = min(anser, cost[i + ]);
}
cout << anser << endl;
}
D
给你N个问题 T时间 每个问题有一个ai和ti 分别的意思是 总解决的问题如果不大于ai这个问题就有一个贡献与问题所消耗的时间
要求你求出最大的贡献值
可以二分也可以直接优先队列贪心 把ai ti i的问题 push进 pro[ai] make_pair(ti,i)
假设当前最大值是i 从N开始 把pro[i]的全部压入优先队列 如果问题数比i大就 pop掉最大的 直到遇到符合要求的或者i==0
#include <cstdio>
#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
using namespace std;
vector<pair<int, int> > ke[];
priority_queue<pair<int, int> > que;
int main()
{
int n, T;
cin >> n >> T;
int where, t;
for (int i = ; i <= n; i++)
{
scanf("%d %d", &where, &t);
ke[where].push_back(make_pair(t, i));
}
int anser = ;
int sum = T;
for (int i = n; i >= ; 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 >= )
{
cout << i << endl << i << endl;
while (que.size())
{
cout << que.top().second << " ";
que.pop();
}
cout << endl;
return ;
}
}
}
Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)的更多相关文章
- Codeforces 734C [水][暴力][贪心]
题意: 要生产n个物品,每个花费时间为x. 有两种魔法,每种最多使用1个. 其中第一种魔法可以使每个物品生产的花费时间变为ai,相应的花费是bi;第二种魔法可以减少ci个物品,相应的花费是di,并且保 ...
- CodeForces 719B Anatoly and Cockroaches (水题贪心)
题意:给定一个序列,让你用最少的操作把它变成交替的,操作有两种,任意交换两种,再就是把一种变成另一种. 析:贪心,策略是分别从br开始和rb开始然后取最优,先交换,交换是最优的,不行再变色. 代码如下 ...
- Codeforces Round #503 (by SIS, Div. 2) C. Elections (暴力+贪心)
[题目描述] Elections are coming. You know the number of voters and the number of parties — n and m respe ...
- LeetCode 860. 柠檬水找零 (贪心)
在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给 ...
- 0-1背包的动态规划算法,部分背包的贪心算法和DP算法------算法导论
一.问题描述 0-1背包问题,部分背包问题.分别实现0-1背包的DP算法,部分背包的贪心算法和DP算法. 二.算法原理 (1)0-1背包的DP算法 0-1背包问题:有n件物品和一个容量为W的背包.第i ...
- 【LeetCode】860. 柠檬水找零
860. 柠檬水找零 知识点:贪心 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 ...
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05 最后更新: 2017年2月21日 20:06 时间限制: 1000ms 内存限制: 128M 描述 传说喵哈哈村有三种神 ...
- [Swift]LeetCode860. 柠檬水找零 | Lemonade Change
At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you, and ...
- Leetcode 860. 柠檬水找零
860. 柠檬水找零 显示英文描述 我的提交返回竞赛 用户通过次数187 用户尝试次数211 通过次数195 提交次数437 题目难度Easy 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾 ...
随机推荐
- POJ 1625 Censored ( Trie图 && DP && 高精度 )
题意 : 给出 n 个单词组成的字符集 以及 p 个非法串,问你用字符集里面的单词构造长度为 m 的单词的方案数有多少种? 分析 :先构造出 Trie 图方便进行状态转移,这与在 POJ 2278 中 ...
- 后盾网lavarel视频项目---1、数据迁移
后盾网lavarel视频项目---1.数据迁移 一.总结 一句话总结: 1.lavarel的数据迁移比较简单,就是用php来创建数据表 2.创建迁移文件:php artisan make:migrat ...
- [论文笔记] Improving Head Pose Estimation with a Combined Loss and Bounding Box Margin Adjustment
Improving Head Pose Estimation with a Combined Loss and Bounding Box Margin Adjustment 简介 本文提出了一种网络结 ...
- Failed to find data source: kafka
缺少包,在spark-submit 中指定 packages 如下: --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.1.0
- 为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台
为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台 是因为vmware虚拟机的快捷键: ctrl+alt也用到了 因为vmware本身的hot keys也用到了ctrl+alt: ...
- kubernets监控
Weave Scope 容器地图 创建 Kubernetes 集群并部署容器化应用只是第一步.一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求.Kub ...
- CentOS 6.5 编译安装Apache2.4
一. httpd 2.4的新特 1) MPM支持运行时装载 --enable-mpms-shared=all --with-mpm=prefork|worker|event2) 支持event MPM ...
- laravel 5.6 使用RabbitMQ作为消息中间件
1.Composer安装laravel-queue-rabbitmqcomposer require vladimir-yuldashev/laravel-queue-rabbitmq2.在confi ...
- python 爬虫入门1 爬取代理服务器网址
刚学,只会一点正则,还只能爬1页..以后还会加入测试 #coding:utf-8 import urllib import urllib2 import re #抓取代理服务器地址 Key = 1 u ...
- Mac020--常用插件
Google浏览器常用插件 1.github插件octotree 2.掘金Chrome网上应用商店 2-1.掘金/老司机的神兵利器 2-2.好用的Google插件:来自掘金 3.Gliffy Diag ...