牛客周赛 Round 57

news/2024/10/11 16:29:46

 

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.ryyt.cn/news/53519.html

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

相关文章

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调度…