首页 > 其他分享 >P3745 [六省联考 2017] 期末考试

P3745 [六省联考 2017] 期末考试

时间:2024-04-08 13:55:59浏览次数:26  
标签:ix 六省 ll long 联考 P3745 else 2017

原题链接

题解

令 \(f(x)\) 代表所有课的发布时间都小于等于x时的不愉快值之和,x越小,AB消耗越大,x越大,C消耗越大,所以感性的想象 \(f(x)\) 是一个下凹函数
然后就可以快乐三分了

code

#define ll unsigned long long
#include<bits/stdc++.h>
using namespace std;

inline void read(ll &x) {
	x = 0;
	ll flag = 1;
	char c = getchar();
    while(c < '0' || c > '9'){
        if(c == '-')flag = -1;
        c = getchar();
    }
	while(c >= '0' && c <= '9') {
		x = (x << 3) + (x << 1) + (c ^ 48);
		c = getchar();
	}
	x *= flag;
}

inline void write(ll x)
{
    if(x < 0){
    	putchar('-');
		x = -x;
	}
    if(x > 9)
		write(x / 10);
    putchar(x % 10 + '0');
}

ll t[100005];
ll b[100005];
ll A,B,C;
ll n,m;

ll f(ll x)
{
    ll sum=0;
    for(ll i=1;i<=n;i++) if(t[i]<x) sum+=C*(x-t[i]);

    if(A>B)
    {
        for(ll i=1;i<=m;i++) if(b[i]>x) sum+=B*(b[i]-x);
    }
    else
    {
        ll extra=0,need=0;

        for(ll i=1;i<=m;i++)
        {
            if(b[i]>x) need+=b[i]-x;//这里对AB的处理太巧妙了,学着点
            else if(b[i]<x) extra+=x-b[i];
        }
        if(need<=extra) sum+=A*need;
        else sum+=A*extra+B*(need-extra);
    }

    return sum;
}

int main()
{
    read(A); read(B); read(C);
    read(n); read(m);
    for(ll i=1;i<=n;i++) read(t[i]);
    for(ll i=1;i<=m;i++) read(b[i]);

    ll l=1,r=100000;
    while(l+10<=r)
    {
        ll midl=l+(r-l)/3;
        ll midr=r-(r-l)/3;

        if(f(midl)>f(midr)) l=midl;
        else r=midr;
    }

    ll ans=1e19;
    for(ll i=l;i<=r;i++) ans=min(ans,f(i));
    write(ans); putchar('\n');
    return 0;
}

标签:ix,六省,ll,long,联考,P3745,else,2017
From: https://www.cnblogs.com/pure4knowledge/p/18120978

相关文章

  • 蓝桥杯嵌入式2017年第八届省赛主观题解析
    1 题目2  代码/*USERCODEENDHeader*//*Includes------------------------------------------------------------------*/#include"main.h"#include"rtc.h"#include"tim.h"#include"gpio.h"/*Privateincludes--......
  • P3956 [NOIP2017 普及组] 棋盘
    原题链接题解dijkstra算法的应用。相同颜色权值为0;不同颜色权值为1;有颜色到无颜色权值为2。其中不能连续两步走无颜色结点,即该情况需要特别考虑。code #include<bits/stdc++.h>usingnamespacestd;constintMAX=1e9;inta[105][105],dis[105][105],vis[105][105];int......
  • 2017省赛蓝桥杯B组
    2017省赛蓝桥杯B组5.购物单查看代码查看代码 #include<iostream>usingnamespacestd;intmain(){//请在此输入您的代码doublesum=180.90*0.88+10.25*0.65+56.14*0.9+104.65*0.9+100.30*0.88+297.15*0.5+26.75*0.65+130.62*0.5+240.28*0.58+270.62*0.8+115.8......
  • P3756 [CQOI2017] 老C的方块
    原题链接感觉挺有意思的。先简化一下不合法的状况,实际上是如果特殊边两侧都有点,且那两个点的另外三个联通方向上也有至少一个点,就是坏的。相当于是四个限制只要有一个不满足就可以了。于是就可以转化成最小割。按四种限制将点分成四类。特殊边两侧分别是\(1\)类点和\(2\)类......
  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);//读取输入的整数n和kintn=sc.nextInt();//数组长度intk=sc.nextInt();//取模的值......
  • NASA数据集——2014 年、2015 年和 2017 年北美地区土壤地球物理属性值(源层厚度 (ALT)
    ABoVE:AirSWOTColor-InfraredImageryOverAlaskaandCanada,2017简介文件修订日期:2019-04-25数据集版本:1摘要本数据集提供了根据2014年、2015年和2017年8月和10月在阿拉斯加北部12个研究地点(除个别地点外)采集的机载次冠层和次表层微波观测站(AirMOSS)P......
  • 3.31 联考
    3.31补题A\(5pts\)\(n=2\)时,\(\fracn2=1\),即为nim游戏。\(30pts\)对于\((a_1,a_2,a_3,a_4,a_5,a_6)\)这样的六元组,至多有\(10^6\)个。记忆化搜索他们的SG值即可。可能需要若干剪枝,因为复杂度其实是\(10^6\times6^3\)的。\(100pts\)首先观察样例2,合理猜测......
  • 管理类联考–复试–管理类知识–口诀
    口诀管理活动尝试汇成一句:紫色的二重性。西施(在门口)(微)笑(迎)人,下馆子时,鸡汁会调制好。人(下定)决心,人(只求)钙剂,原来(是会被)西施笑人,(人)下馆子时,鸡汁会调制好。管理的二重性:自然生产很必要;社会关系是目的;/紫色【自然、社会属性】管理者的角色:三大类角色――人信决,人决心(人际角色:......
  • COMP2017 9017 多类型链表数据结构
    COMP20179017课业2到期时间:2024年3月28日23:59这项任务相当于你最终评估的10%任务描述您的任务是创建一个多类型链表数据结构和与之交互的程序任务分为三个任务,必须按顺序完成。第一部分是链表的基本命令语法、创建、删除、查看等。第二部分是通过插入和删除元素来修改现有的列......
  • 2017天梯赛总决赛:L1-8 矩阵A乘以B
    题目描述给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列,B有Rb​行、Cb​列,则只有Ca​与Rb​相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R......