首页 > 其他分享 >2023.6.21 每日一题

2023.6.21 每日一题

时间:2023-06-21 16:22:59浏览次数:50  
标签:21 idx int 每日 long 商品 2023.6 Div include

原题链接

A: Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) - F

B: Codeforces Round 727 (Div. 2) - D

B. PriceFixed - 1600

题目大意

商店里有 \(n\) 个商品,价格为 \(2\),至少要买第 \(i\) 件商品 \(a_i\) 个,同时如果我们总共买了超过 \(b_i\) 件商品,那么第 \(i\) 件商品打五折。问至少要花多少钱。

解题思路

直接贪心,将商品按照 \(b_i\) 从大到小排序。不考虑打折来买就是我们钱数的上界 \(2 \times n\),我们考虑什么时候可以节省一部分钱,就是我们对一件商品花钱花到打折的时候,这件商品能打折并且总共花的钱少于我们不打折不多买花的钱。注意要按照我们对 \(b_i\) 排序的顺序,\(b_i\) 大的先考虑,才能保证贪心成立。

AC Code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#define endl '\n'
#define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;

const int N = 4e5 + 10;
const int MOD = 1e9 + 7;

pair<LL, LL> p[N];
int idx[N];

bool cmp(int x, int y) {
    return p[x].second > p[y].second;
}

void solve() {
    int n;
    cin >> n;
    LL sum = 0;
    for (int i = 1; i <= n; ++i) {
        LL x, y;
        cin >> x >> y;
        p[i] = {x, y};
        sum += x;
        idx[i] = i;
    }
    sort(idx + 1, idx + n + 1, cmp);
    LL res = sum << 1;
    for (int i = 1; i <= n; ++i) {
        int id = idx[i];
        LL max_ = max(0ll, min(sum - p[id].second, p[id].first));
        res -= max_;
        sum -= max_;
    }
    cout << res << endl;
}

signed main() {
    ios;
    int T = 1;
//    cin >> T;
    while (T--) {
        solve();
    }
}

标签:21,idx,int,每日,long,商品,2023.6,Div,include
From: https://www.cnblogs.com/SanCai-Newbie/p/17496555.html

相关文章

  • 低功耗国产蓝牙芯片 HS6621系列 支持蓝牙5.1
    HS6621CxC是一个功耗优化的蓝牙低功耗和专有的2.4ghz应用真正的芯片上系统(SOC)解决方案。它集成了一个具有蓝牙基带和丰富外设的低功耗射频收发器I0扩展。HS6621CxC还集成了电源管理,提供高效率电源管理。它的目标是2.4G蓝牙低功耗系统,人机界面设备(键盘、鼠标和遥控器),运动及休......
  • 2023-06-21 vue 变量赋值失败
    直接看代码://获取屏幕高度uni.getSystemInfo({success:function(res){this.screHeight=res.screenHeight;}});这个变量screHeight没有被赋值,拿到的还是我设置的初始值。原因:this指向的作用域并不是Vue实例本身,所以就无法赋值。解决方案:在最外一层绑......
  • 西门子S7-1200PLC 四轴定位控制程序(自动螺丝机) 程序是基于S7-1200 PLC (CPU 1214C ),
    西门子S7-1200PLC四轴定位控制程序(自动螺丝机)程序是基于S7-1200PLC(CPU1214C),博途V13SP1编写。程序中利用TOAXIS运动控制指令编写4轴定位程序,利用易福门相机视觉专用功能块(FB1FB2SCL高级语言)与PLC以太网通信,采集相机坐标位置参数。ID:1635602376517476......
  • 小宾短视频监控宝v1.21发布,支持抖音作者的实时监控和自动下载
     随着互联网的发展,短视频已经成为了人们生活中不可或缺的一部分。无论是个人还是企业,都可以通过短视频来展示自己的才华和产品。然而,随之而来的是短视频内容的监管问题。为了帮助工会组织和个人主播更好地管理和监控短视频内容,我们推出了一款名为小宾短视频监控宝的软件工具。......
  • 2023.6.20 每日一题
    原题链接A:EducationalCodeforcesRound115(RatedforDiv.2)-EB:CodeforcesRound698(Div.2)-CA.Staircases-2100题目大意给定一个\(n\timesm\)的网格,每个格子为自由或者锁定,初始时所有格子均为自由的。定义满足如下条件的路径为楼梯:起点和终点均为......
  • 每日一题力扣 1262 https://leetcode.cn/problems/greatest-sum-divisible-by-three/
    、 题解这道题目核心就算是要知道如果x%3=2的话,应该要去拿%3=1的数字,这样子才能满足%3=0贪心sum不够%3的时候,就减去余数为1的或者余数为2的需要注意两个余数为1会变成余数为2的,所以可能减去2个余数为1核心代码如下publicintmaxSumDivThreeOther(int[]nums){​  ......
  • Windows 2008服务器多界面和IIS的安装教程 140.210.16.x
    当你在使用服务器时是否有遇到这样一个问题?当你正在服务器里进行工作时,突然一个小伙伴在没有告知你的情况下进入了服务器里,导致你服务器失去连接了,这种情况是非常常见的现象。主要原因就是因为服务器没有安装多界面,服务器多开界面是占用的同一台服务器的资源,服务器多开数量没有限制......
  • vue学习第21天 移动WEB开发 --- flex布局(弹性布局)
    学习目标1、flex盒子的布局原理2、flex布局的常用属性3、独立完成某个移动端首页案例 目录1、flex布局体验2、flex布局原理3、flex布局父项常见属性4、flex布局子项常见属性5、案例制作  ......
  • 「NOI2021」庆典
    首先可以注意到题面中的这个条件:对于三座城市\(x\),\(y\),\(z\),若\(x\Rightarrowz\)且\(y\Rightarrowz\),那么有\(x\Rightarrowy\)或\(y\Rightarrowx\)。这就代表着如果存在边\(x\rightarrowz\)和\(y\rightarrowz\),假设存在\(x\Rightarrowy\)那么删去边\(x\r......
  • CS5211:EDP转LVDS屏转接板方案芯片设计
    大多数液晶显示屏及便携屏都有LVDS接口,若是电脑或投屏设备为EDP接口的话,就需要中间做一个EDP转LVDS屏转接板。那么如何能设计一块低成本的EDP转LVDS转接板呢?了解资料CS5211是一个eDP到LVDS转换器,配置灵活,适用于低成本显示系统。CS5211总功率小于300mW,供电网络设计可以简化。下图......