AtCoder Beginner Contest 373

news2024/11/22 20:40:54

D - Hidden Weights

题目:

思路:

代码:

#include <bits/stdc++.h>
#define fi first;
#define se second;

using namespace std;

typedef long long LL;
typedef pair<int,int> PII;

const int N=2e5+10;
const LL lnf=0x3f3f3f3f3f3f3f3f;

int n, m;
int h[N], e[N<<1] ,ne[N<<1], w[N<<1], idx;
LL res[N];

void add(int a,int b, int c)
{
    e[idx]=b,  ne[idx]=h[a], w[idx]=c, h[a]=idx++;
}

void dfs(int u)
{
    for(int i=h[u]; ~i; i=ne[i]){
        int v=e[i];
        if(res[v]!=lnf) continue;
        res[v]=res[u]+w[i];
        dfs(v);
    }
}

int main()
{
    memset(h,-1,sizeof h);
    cin>>n>>m;
    while(m--){
        int u, v, c;
        cin>>u>>v>>c;
        add(u, v, c), add(v, u, -c);
    }

    memset(res, 0x3f, sizeof res);
    for(int i=1; i<=n; i++){
        if(res[i]==lnf){
            res[i]=0;
            dfs(i);
        }
    }

    for(int i=1; i<=n; i++){
        cout<<res[i]<<" ";
    }

    cout<<"\n";

    return 0;

}

E - How to Win the Election 

题目:


思路:

二分这个人需要的票数x,现在这个人的票数now=a[i]+x,,二分找的小于等于这个票数的人的位置,如果不在后m个人中,则不能当选; 如果在,我们需要统计从这人开始到第m个人,选票大于now需要的票数,剩余票是否能满足,需要注意,如果,这人原本就在后m个,我们需要分讨,减去这个原本的票数。

代码:

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int main()
{
    LL n,m,k;
    cin>>n>>m>>k;

    vector<LL> a(n+1),b(n+1),pre(n+1);
    for(int i=1; i<=n; i++){
        cin>>a[i];
        b[i]=a[i];
    }

    if(n==1){
        cout<<0<<'\n';
        return 0;
    }
    if(n==m){
        for(int i=1; i<=n; i++){
            cout<<0<<' ';
        }
        cout<<'\n';
        return 0;
    }
    sort(b.begin(), b.end());

    for(int i=1; i<=n; i++){
        pre[i]=pre[i-1]+b[i];
    }
    
    LL sum=pre[n];

    for(int i=1; i<=n; i++){
        auto check = [&](LL x)-> bool{
            LL now=a[i]+x, rest=k-sum-x, pos=upper_bound(b.begin(),b.end(), now)-b.begin()-1;
            if(a[i]<b[n-m+1]){
                if(pos<n-m+1) return false;
                return (pos-(n-m))*(now+1)- (pre[pos]-pre[n-m])> rest;
            } else {
                return (pos-n+m)*(now+1)-(pre[pos]-pre[max(0LL ,n-m-1)]-a[i]) > rest;
            }
        };
        LL l=0, r=k-sum, res=-1;
        while(l<=r){
            LL mid=l+r>>1;
            if(check(mid)) r=mid-1, res=mid;
            else l=mid+1;
        }
        cout<<res<<' ';

    }
    cout<<'\n';

    return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】【多线程】Thread类讲解

目录 Thread构造方法Thread 的常见属性创建一个线程获取当前线程引用终止一个线程使用标志位使用自带的标志位 等待一个线程线程休眠线程状态线程安全线程不安全原因总结解决由先前线程不安全问题例子 Thread构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用…

WPS Office从路径穿越到远程代码执行漏洞(CVE-2024-7262)分析与复现

漏洞概述 WPS Office程序promecefpluginhost.exe存在不当路径验证问题&#xff0c;允许攻击者在Windows上加载任意Windows库文件。该漏洞已被APT-C-60攻击者利用&#xff0c;当用户打开MHTML格式的文档时&#xff0c;只需单击一个恶意制作的超链接&#xff0c;即可执行攻击者指…

【C++】map详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

如何实现小红点

文章目录 1. 概念介绍2. 实现方法3 示例代码我们在上一章回中介绍了WebView组件相关的内容,本章回中将介绍如何在图标旁边添加小红点.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 在实际项目中有时候需要在图标旁边显示小红点,而且小红点内还有数字,比如购物车图标显…

Android阶段学习思维导图

前言 记录下自己做的一个对Android原生应用层的思维导图&#xff0c;方便个人记忆扩展&#xff1b;这里只露出二级标题。 后语 虽然有些内容只是初步了解&#xff0c;但还是记录了下来&#xff1b;算是对过去一段学习的告别。

全体起立!CEEMDAN-Kmeans-VMD-CNN-Attention双重分解+卷积神经网络注意力机制多元时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CEEMDAN-Kmeans-VMD-CNN-Attentionr融合K均值聚类的数据双重分解卷积神经网络注意力机制多元时间序列预测&#xff08;完整源码和数据&#xff09; 2.CEEMDAN分解&#xff0c;计算样本熵&#xff0c;根据…

Arduino UNO R3自学笔记23 之 Arduino如何使用4511控制数码管?

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。 前言:因为7段数码管控制需要用到7个IO,这会严重占用Arduino的IO口,因此我们采用现有IC来节省Arduino的IO口。 1.CD4511介绍 CD4511是一款用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器。它…

机器学习-支撑向量机SVM

Support Vector Machine 离分类样本尽可能远 Soft Margin SVM scikit-learn中的SVM 和kNN一样&#xff0c;要做数据标准化处理&#xff01; 涉及距离&#xff01; 加载数据集 import numpy as np import matplotlib.pyplot as plt from sklearn import datasetsiris datas…

CentOS7 虚拟机操作系统安装及相关配置教程

1、安装虚拟机 在VMware《主页》界面中点击《创建新的虚拟机》按钮&#xff1a; 选择你准备好的ISO文件&#xff0c;点击下一步&#xff1a; 然后填写虚拟机的名称以及虚拟机将来保存的位置&#xff1a; 再次下一步&#xff0c;填写虚拟机磁盘大小&#xff1a; 继续下一步&…

ES postman操作全量修改,局部修改,删除

全量修改 修改需要调用的url 地址是http://192.168.1.108:9200/shopping/_doc/1001&#xff0c;调用方法使用put 只修改指定的需求的内容的请求方式 post方式就是局部修改 http://192.168.1.108:9200/shopping/_update/1001&#xff0c;请求方式post 上图是只修改id 为1001数…

sqli-labs less-18 http头user-agent注入

HTTP头注入 常见的HTTP注入点产生位置为【Referer】、【X-Forwarded-For】、【Cookie】、【X-Real-IP】、【Accept-Language】、【Authorization】 HTTP Referer是header头的一部分&#xff0c;从哪个网页了链接过来的 X-Forwarded-For 简称XXF头&#xff0c;代表客户端&#…

【计算机网络】Tcp/IP五层协议,Udp报文组成,Udp与Tcp的区别

Tcp/IP五层协议 TCP/IP模型是计算机网络的核心协议之一&#xff0c;通常被分为五层&#xff0c;每一层都有其独特的功能和作用。以下是TCP/IP模型的五层协议的简要描述&#xff1a; 物理层&#xff1a;这一层涉及实际的物理连接&#xff0c;定义了硬件传输介质的特性&#xff…

网络安全现在的前景是如何的?_网络安全技术研究生可否从事大数据工作

从当前的人才培养体系来看&#xff0c;网络安全人才的培养既有本科教育和专科教育&#xff0c;同时也有研究生教育&#xff0c;所以要想成为网络安全人才&#xff0c;途径还是比较多的&#xff0c;可以根据自身的实际情况来选择不同的教育方式。对于当前的职场人来说&#xff0…

C++ STL容器(五) —— priority_queue 底层剖析

这篇来讲下 priority_queue&#xff0c;其属于 STL 的容器适配器&#xff0c;容器适配器是在已有容器的基础上修改活泼限制某些数据接口以适应更特定的需求&#xff0c;比如 stack 栈使数据满足后进先出&#xff0c;queue 队列使数据满足先进先出&#xff0c;其都是在已有容器上…

【重学 MySQL】六十一、数据完整性与约束的分类

【重学 MySQL】六十一、数据完整性与约束的分类 数据完整性什么是约束约束的分类如何查看、添加和删除约束查看约束添加约束删除约束 在MySQL中&#xff0c;数据完整性是确保数据库中数据的准确性和一致性的关键。为了实现数据完整性&#xff0c;MySQL提供了多种约束类型&#…

【Qt】窗口预览(1)—— 菜单栏

窗口预览&#xff08;1&#xff09; 1. QMainWindow2. QMenuBar——菜单栏2.1 创建菜单栏/将菜单栏添加到widget中2.2 addMenu——在菜单栏中添加菜单2.3 在菜单中添加选项2.4 添加快捷键2.5 支持嵌套添加菜单2.6 添加信号2.7 添加分割线 1. QMainWindow Qt窗口是通过QMainWin…

插件-发送邮件通知

有时候通过python运行程序&#xff0c;在出现异常时&#xff0c;需要进行邮件通知&#xff0c;可能还需要截图。比如对浏览器进行控制时出现了异常&#xff0c;则需要进行截图分析。 email-validator 2.0.0.post2 import asyncio import logging import smtpli…

C++基础面试题 | C++中野指针和悬挂指针的区别?

文章目录 回答重点&#xff1a;1. 野指针&#xff08;Wild Pointer&#xff09;&#xff1a;2. 悬挂指针&#xff08;Dangling Pointer&#xff09;&#xff1a; 拓展知识&#xff1a;如何避免这些问题野指针和悬挂指针 回答重点&#xff1a; 在C中&#xff0c;野指针是指未初…

职场上的人情世故,你知多少?这五点一定要了解

职场是一个由人组成的复杂社交网络&#xff0c;人情世故在其中起着至关重要的作用。良好的人际关系可以帮助我们更好地融入团队&#xff0c;提升工作效率&#xff0c;甚至影响职业发展。在职场中&#xff0c;我们需要了解一些关键要素&#xff0c;以更好地处理人际关系&#xf…