牛客周赛 Round 57

news/2024/11/16 16:47:09/文章来源:https://www.cnblogs.com/cmyg/p/18383130

 

B

可以直接统计每条边两个点的情况即可,不用DFS。

 

 

F

写法和这个差不多。可以用map、set、统计这些方法,计算动态的一个数组的最大数

可以直接用map统计就行,map已经自动给你排好序了(从小到大)。

  1 #include <bits/stdc++.h>
  2 using namespace std;
  3 #define LL long long
  4 #define ULL unsigned long long
  5 
  6 const LL mod_1=1e9+7;
  7 const LL mod_2=998244353;
  8 
  9 const double eps_1=1e-5;
 10 const double eps_2=1e-10;
 11 
 12 const int maxn=1e5+10;
 13 
 14 vector<int> vec[maxn];
 15 map<int,int> mp[maxn];
 16 set<int> st[maxn];
 17 int value[maxn*2], single_min[maxn];
 18 
 19 void build(int index, int l, int r)
 20 {
 21     if (l==r)
 22         value[index] = single_min[l];
 23     else
 24     {
 25         int mid = (l+r)/2;
 26         build(index*2,l,mid);
 27         build(index*2+1,mid+1,r);
 28 
 29         value[index] = min(value[index*2],value[index*2+1]);
 30     }
 31 }
 32 
 33 void modify(int index, int l, int r, int k)
 34 {
 35     if (l==r)
 36         value[index] = single_min[k];
 37     else
 38     {
 39         int mid = (l+r)/2;
 40         if (l<=k && k<=mid)
 41             modify(index*2,l,mid,k);
 42         if (mid+1<=k && k<=r)
 43             modify(index*2+1,mid+1,r,k);
 44 
 45         value[index] = min(value[index*2],value[index*2+1]);
 46     }
 47 }
 48 
 49 int getv(int index, int l, int r, int k)
 50 {
 51     if (r<=k)
 52         return value[index];
 53     else
 54     {
 55         int mid = (l+r)/2, result=INT_MAX;
 56         if (l<=k)
 57             result = min( result, getv(index*2,l,mid,k) );
 58         if (mid+1<=k)
 59             result = min( result, getv(index*2+1,mid+1,r,k) );
 60         return result;
 61     }
 62 }
 63 
 64 int main()
 65 {
 66     int n,m,i,j,k,q,t,x,x_old;
 67     scanf("%d",&n);
 68     for (i=1;i<=n;i++)
 69     {
 70         scanf("%d",&m);
 71         for (j=1;j<=m;j++)
 72         {
 73             scanf("%d",&k);
 74             vec[i].push_back(k);
 75             mp[i][k]++;
 76             st[i].insert(k);
 77         }
 78         single_min[i] = *st[i].begin();
 79     }
 80 
 81     build(1,1,n);
 82     
 83     scanf("%d",&q);
 84     while (q--)
 85     {
 86         scanf("%d",&t);
 87         if (t==1)
 88         {
 89             scanf("%d%d%d",&i,&j,&x);
 90             x_old=vec[i][j-1];
 91             if (mp[i][x_old]==1)
 92                 st[i].erase(x_old);
 93             mp[i][x_old]--;
 94             vec[i][j-1]=x;
 95             if (!mp[i][x])
 96                 st[i].insert(x);
 97             mp[i][x]++;
 98 
 99             single_min[i] = *st[i].begin();
100             modify(1,1,n,i);
101         }
102         else
103         {
104             scanf("%d",&i);
105             printf("%d\n",getv(1,1,n,i));
106         }
107     }
108 
109     return 0;
110 }

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RMQ

RMQ - OI Wiki (oi-wiki.org) 这么说构建和查询,时间复杂度最小的是线段树。最好写的是ST表,emmm,其实线段树也很好写,就是代码量相对多一点。

labelme标注后的数据根据面积过滤,把小面积的多边形改成另一种标签

修改前代码:点击查看代码 import cv2 import numpy as np import json def remove_specific_labels(json_file):# 读取JSON文件with open(json_file, r) as f:data = json.load(f)data_small=dataif"shapes" in data:new_shapes=[]new_shapes_small=[]# 提取闭合区域…

压缩流使用

压缩流场景:需要将一些数据,以及这些数据关联的附件压缩下载,数据导出为一个Excel,附件导出到一个文件夹中 这里使用easyexcel 导出excel 从华为云 obs 下载附件 并交给浏览器public void downloadAllEliminate(HttpServletResponse response) throws IOException {// 响应…

快来领取迅雷加速器7天会员,让你的《黑神话悟空》更新速度嗖嗖嗖!⚡️

嘿,各位《黑神话悟空》的小伙伴们!😆 最近大家肯定都在Steam上体验这款国产3A大作吧?游戏的画质、玩法是不是让你眼前一亮?😍 但是!😫 大家有没有发现,游戏加载和更新时总是龟速,让人望穿秋水?原来是Steam的下载速度太慢啦!🐌 别急别急,今天就给大家安利一个…

Nginx 记录POST记录并设置日志只允许追加

之前想融入到默认配置中。但是还是有一些会出现疑问。只能以文章的形式来配置 之前想过异步的存储日志的方式。但是udp 的方式也是挺消耗性能的无果 一、Nginx 的默认日志文件如下:#设定日志格式,main是默认的格式 log_format main $remote_addr - $remote_user [$time_loca…

pygame手搓贪吃蛇

代码:#coding=utf-8import os,sys,re,time import pygame import random from win32api import GetSystemMetrics import copypygame.init() pygame.display.set_caption("贪吃蛇")percent = 0.6 screen_width = GetSystemMetrics(0) screen_height = GetSystemMetr…

AI创新,DataOps聚能 | 白鲸开源DTCC共话DataOps新篇章

近日,由IT168联合旗下ITPUB、ChinaUnix两大技术社区主办的第15届中国数据库技术大会(DTCC 2024)隆重召开。大会以“自研创新 数智未来”为主题,吸引了数百位行业专家和广大数据领域从业者共聚这场年度数据库技术交流盛宴,共同探讨新时代下数据库的技术动态和应用实践。作为…

Android taskset用法详解

一、简介taskset 命令用于设置或者获取一直指定的 PID 对于 CPU 核的运行依赖关系。通过 taskset 命令可将某个进程与某个CPU核心绑定,使得其仅在与之绑定的CPU核心上运行 关于绑核的解释绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。设定以后,Linux调度…

Builder 模式在 Go 语言中的应用

Builder 模式在 Go 语言中的应用 江湖十年 Go编程世界2024年08月27日 07:21 浙江Builder 模式是一种创建型模式,即用来创建对象。 Builder 模式,中文翻译不太统一,有时候被翻译为建造者模式或构建者模式,有时候也被翻译为生成器模式。为了不给读者造成困扰,我还是直接叫它…

.NET Core 处理 WebAPI JSON 返回烦人的null为空

前言项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都为null,前台对应字段赋值需要做null值判断,怎么才能全局把null替换为空。本文分享…

软工第一次作业

这个作业属于哪个课程 2024软工这个作业要求在哪里 第一次作业要求这个作业的目标 熟悉markdown,github,博客园自我介绍 我是来自广州本地的学生。爱好听音乐,看视频,看有关编程的书籍。 五个问题如何保证开发人员所了解的,就是客户想要的? 软件即将完成,全方面碾压的新…

mysql磁盘碎片整理

背景 数据结转过程中经常进行 delete 操作,产生空白空间,如果进行新的插入操作,MySQL将尝试利用这些留空的区域,但仍然无法将其彻底占用,于是造成了数据的存储位置不连续,以及物理存储顺序与理论上的排序顺序不同,久而久之就产生了碎片。 碎片治理思路 根据线上处理经验总…