Codeforces 1210 D Konrad and Company Evaluation —— 暴力

2023-11-10

This way

题意:

现在有n个人,第i个人的工资一开始是i,现在有一些人相互讨厌,然后如果第x个人和第y个人相互讨厌,并且x的工资比y高,那么x就会向y炫耀。
x,y,z这三个人的组合是危险的,当x会向y炫耀,y会向z炫耀。
每次修改一个人的工资为大于所有人,并且询问你此时有多少种三人组合是危险的

题解:

那么这道题就有一个很暴力的做法,我们通过样例解释可以发现,其实就是一张有向图,然后答案是每个点的入度*出度。之后的话就是修改每个点的入边为出边。如果每次输入暴力修改每个点的入边为出边的话,乍一看是 O ( n 2 ) O(n^2) O(n2)的,但是仔细思考可以发现,每一条边只连接了2个人,并且它会翻转当且仅当修改的是被指向的那个人。
也就是说,如果修改一个人的值会翻转n条边,那么只有在接下来修改n个人的值才能将所有边翻转回来。
所以我断定暴力修改的时间复杂度是O(n)的,然后用vector维护每条边的反边,在删除的时候是O(log)的,所以总的时间复杂度是 O ( n l o g n ) O(nlogn) O(nlogn)的。如果用map维护的话,时间复杂度是 O ( n ∗ q ∗ l o g n ) O(n*q*logn) O(nqlogn)

最终时间复杂度:
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+5;
vector<int>mp[N];
int in[N],out[N];
int main()
{
    int n,m,x,y;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++){
        scanf("%d%d",&x,&y);
        if(x>y)swap(x,y);
        mp[x].push_back(y),in[x]++,out[y]++;
    }
    ll ans=0;
    for(int i=1;i<=n;i++)
        ans+=1ll*in[i]*out[i];
    printf("%lld\n",ans);
    int q;
    scanf("%d",&q);
    while(q--){
        scanf("%d",&x);
        ans-=1ll*in[x]*out[x];
        for(auto i:mp[x]){
            mp[i].push_back(x);
            ans+=1ll*(in[i]+1)*(out[i]-1)-1ll*in[i]*out[i];
            in[x]--,out[x]++,in[i]++,out[i]--;
        }
        mp[x].clear();
        printf("%lld\n",ans);
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeforces 1210 D Konrad and Company Evaluation —— 暴力 的相关文章

  • rem与mod的区别

    从老师提供的PPT中复制出来的 感觉还行直接用了 算是转载吧 rem与mod的区别不仔细区分的话 可把rem和mod都当作是求余数的命令 gt gt mod 3 2 ans 1 gt gt rem 3 2 ans 1这两个数的符号一致时的结
  • 4.1-真实世界的并发

    复习 并发编程的基本工具 线程库 互斥和同步 本次课回答的问题 Q 什么样的任务是需要并行 并发的 它们应该如何实现 本次课主要内容 高性能计算中的并发编程 数据中心里的并发编程 我们身边的并发编程 一 高性能计算中的并发编程 高性能计算程
  • 【GD32】F330 串口只能返回00的问题记录

    最开始借助正点原子的视频教程在STM32mini板上跑通了串口的字节收发 但在移植程序到GD32的过程中遇到了一个bug 在b站找了GD32的串口教程手敲代码 却跟演示效果不一致 在while 1 循环里给上位机发送数据 虽然PC能够接收到
  • 使用VScode 远程访问和编辑文件

    VSCode支持远程访问编辑文件 需安装一个插件 remote browser 直接搜索安装插件即可 配置远程 文件 首选项 设置 在设置搜索remoteBrowser connectionOptions 然后编辑下方的setting js
  • PM2.5 / PM10传感器读数:Python,MicroPython和Arduino-ESP32

    在本文中 让我们看一下如何使用ESP32板连接和编写程序 从PM2 5 PM10传感器模块读取值 我们将使用Python3 用于ESP32的MicroPython和Arduino分别以代码编写为例进行演示 演示顺序如下 第一阶段 了解硬件
  • MySQL5.7和MySQL8.0的区别是什么

    MySQL5 7和MySQL8 0的区别是什么 1 MySQL5 7和MySQL8的区别 MySQL 5 7和MySQL 8 0之间有以下几个主要区别 版本功能区别 MySQL 5 7版本已经是一个非常稳定的成熟的版本 主要是针对5 7以下
  • GitHub: Support for password authentication was removed on August 13, 2021

    GitHub Support for password authentication was removed on August 13 2021 1 Description yongqiang yongqiang yongqiang wor
  • Maven 项目的 `pom.xml` 文件 标签全解析

    之前开发用Maven都是大佬们配置好的 无需自己操心 但是到了自己来搭建的时候发现自己并不是特别明白各个标签的作用 只知道dependencies里面的内容 所以痛定思痛 一定要全部搞懂所有的标签及其所起到的作用 未来不管用什么 做什么都要
  • 单链表的基本操作代码实现(C语言版)

    目录 前言 单链表的基本操作 准备工作 头文件 各种宏定义以及结构体定义 一 较简单操作 1 单链表的初始化 2 判断单链表是否为空表 3 单链表的销毁 4 单链表的清空 5 求单链表的表长 二 较重要操作 1 单链表的取值 2 单链表元素
  • 【Windows64】JAVA项目部署,生产环境搭建

    目录 1 JDK1 8安装及环境配置 2 Redis 3 2 100安装 3 Mysql5 6数据库配置安装 4 Navicat Premium 11 2 7简体中文版 5 nginx 及设置开机自启动 6 Notepad 文本编辑器 7
  • ECharts社区 合集整理

    ECharts社区 合集整理 1 PPChart 2 YX Chartlib 3 isqqw 4 makeapie 5 Chart Top 1 PPChart 网址 http ppchart com 2 YX Chartlib 网址 htt
  • servlet:web.xml中使用entity引入其他xml文件时发生了错误-java.io.FileNotFoundException: Could not resolve XML

    参考原文 CSDN Tomcat运行报错 Could not resolve XML resource null with public ID null system ID https blog csdn net weixin 446514
  • 连接不到系统数据库服务器,连接不到系统数据库服务器

    连接不到系统数据库服务器 内容精选 换一换 云数据库RDS服务端可能出现的问题如下 请依次进行检测 连接方式有误 解决方法 检查连接方式 弹性云服务器与云数据库RDS实例必须处于同一虚拟私有云内 且只能通过弹性云服务器连接 解决方法 检查连
  • SQL注入之基于报错的注入

    目录 1 GET单引号字符型 2 GET数字型 3 GET单引号加括号字符型 4 GET双引号字符型 5 注入利用 5 1利用order by判断字段 5 2利用联合查询查找信息 1 GET单引号字符型 首先我们打开搭建好的sqli lab

随机推荐

  • 使用c语言实现队列(图解push和pop操作&&附完整代码)

    相关定义和图文解释 队列是一种只能从表的一端存数据另一端取数据且遵循先进先出原则的线性存储结构 在队列的一端只能插入元素 这一端叫做队尾 另一端只能删除元素 这一端叫作队首 在接下来我们使用链表来实现队列 其中我们主要看一下关于对队列的两种
  • win下查看 MySQL 数据文件存储位置

    一 在 MySQL 客户端输入以下命令 show global variables like datadir mysql数据文件存储位置定位如下图所示 二 直接到C盘路径下查找 如果查找不到 将隐藏的文件夹显示即可 另外附带 查看mysql
  • Qt之美(一):D指针/私有实现

    The English version is available at http xizhizhu blogspot com 2010 11 beauty of qt 1 d pointer private html 相信不少刚开始阅读Qt
  • 性能测试持续集成 CICD:JMeter+Jenkins+Ant+jmx

    Java JDK C Users Tommy gt java version java version 1 8 0 341 Java TM SE Runtime Environment build 1 8 0 341 b10 Java Ho
  • Ps如何制作动态图片

    制作动态图片 按操作慢慢来 下面是我们要使用的图片 0 首先我们新建文件 宽 500px 高 500px 1 之后我们简单的设计一下画面 美观一下 需要用的字也先一下 我的比较丑 2 之后重点来了 重点来了 重点来了 从菜单工具 gt 窗口
  • 大数据:频繁项集

    大数据 频繁项集 下面是我 下面是阅读 大数据 互联网大规模数据挖掘与分布式处理 一书第六章笔记 详细请见该书所述 1 购物篮数据 项与购物篮 多对多的关系 项存放于购物篮
  • Book I-IV of Power

    复杂度1 5 机密度3 5 最后更新2021 04 24 任何CPU都有自己的及相关的规范 这些规范用来协调跨公司的软硬件开发者 使用者 共同建设围绕该CPU的软硬件生态体系 Power CPU是IBM所有CPU最终集大成者 从最早的RIS
  • 线性代数(4)——特征值与二次型

  • Realtime_Multi-Person_Pose_Estimation训练问题

    https blog csdn net kkae8643150 article details 102711101 前言 最近在研究Realtime Multi Person Pose Estimation的训练和再训练的过程 参考 htt
  • element -ui table表格内容无限滚动 使用插件vue-seamless-scroll

    使用插件 一 安装组件依赖 npm install vue seamless scroll 二 引入组件 import vueSeamlessScroll from vue seamless scroll components vueSea
  • csdn积分获取攻略

    下载积分攻略 1 个人设置里进行手机绑定CSDN账户 奖励50分 右上角设置 账户安全 手机绑定 2 完成任务送若干分积分 http task csdn net 3 上传有效资源获取积分 上传非法 广告资源用户 将被扣除一定积分 严重者封号
  • matplotlib 画图总结

    1 图片基本设置 import matplotlib pyplot as plt 图片尺寸 plt figure width height 方式1 plt rcParams figure figuresize width height 方式
  • 导入spacy时报错OSError: [E050] Can‘t find model ‘en‘. It doesn‘t seem to be a shortcut link,

    报错如下 File home muli local lib python3 6 site packages spacy util py line 175 in load model raise IOError Errors E050 for
  • element-UI使用el-select做字典映射时label值不显示问题

    问题描述 在使用elementUI的el select组件时做了字典影射 但是在选择option选项后选择框内并没有选中的值出现 这是通过调试发现被绑定的值已经改变 进行别的操作更新完dom后发现选项更新 操作 点击选择test选项 此处是
  • 简单了解YOLOv8

    简单介绍YOLOv8 这里主要关注模型的backbone和后处理的过程 并通过对比YOLOv5的架构来更深入的了解YOLOv8 模型框架 YOLOv5中的C3替换为更精简的C2f 即增加了更多的跳跃连接和split操作 Backbone 中
  • uniapp 自定义标题情况下,让标题和右侧胶囊对齐

    实现效果 无论手机类型怎么切换 自定义标题始终跟胶囊平齐 实现 在pages json文件中配置标题自定义 在index vue页面 编写自定义的标题内容 在onLoad里可以计算高度
  • 【深度学习】入门理解ResNet和他的小姨子们(三)---ResNeXt

    文章名称 Aggregated Residual Transformations for Deep Neural Networks 文章链接 https arxiv org abs 1611 05431 其实ResNeXt这个网络结构严格说
  • 大规模流量下的云边端一体化流量调度体系

    火山引擎是字节跳动旗下的云服务平台 将字节跳动快速发展过程中积累的增长方法 技术能力和工具开放给外部企业 提供云基础 视频与内容分发 数智平台VeDI 人工智能 开发与运维等服务 帮助企业在数字化升级中实现持续增长 LiveVideoSta
  • 构建领域驱动的Java应用

    引言 在现代软件开发中 设计和构建复杂的应用程序是一项充满挑战的任务 为了更好地满足业务需求和提供可维护的代码 软件开发者需要采用一些强大的工具和技术 领域驱动设计 Domain Driven Design 简称DDD 是一种优秀的方法 它
  • Codeforces 1210 D Konrad and Company Evaluation —— 暴力

    This way 题意 现在有n个人 第i个人的工资一开始是i 现在有一些人相互讨厌 然后如果第x个人和第y个人相互讨厌 并且x的工资比y高 那么x就会向y炫耀 x y z这三个人的组合是危险的 当x会向y炫耀 y会向z炫耀 每次修改一个人