首页 > 其他分享 >牛客周赛 Round 57

牛客周赛 Round 57

时间:2024-08-27 17:05:56浏览次数:14  
标签:index const int 57 value 牛客 maxn long Round

 

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 }

 

 

 

标签:index,const,int,57,value,牛客,maxn,long,Round
From: https://www.cnblogs.com/cmyg/p/18383130

相关文章

  • Codeforces Round 962 (Div. 3)
    A.Legs若只判断题,根据模4意义下分类即可。B.Scale模拟题,缩小同值矩阵即可。C.Sort对每个字母求前缀数量和,答案就是两端点的差。constintN=2e5+5;intT,n,q;chara[N],b[N];intc[N][26],d[N][26];signedmain(void){ for(read(T);T;T--){ read(......
  • P5776
    耳:若\(G\)种一条简单路径或简单环\(x_1\cdotsx_p\)有\(x_1\inG',x_{p}\inG',x_2\not\inG',x_3\not\inG'\cdotsx_{p-1}\not\inG'\),则称该路径为关于\(G'\)的耳。简单路径称为开耳。强连通图和存在耳分解充要。边双连通图和存在耳分解充要。构造:无向图,\(G_0\)直......
  • 283:vue+openlayers 4326和3857坐标系下的分辨率区别
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第283个示例文章目录一......
  • springboot零食购物系统-计算机毕业设计源码43357
    基于Web零食购物系统的设计与实现摘要本项目旨在设计和实现一个基于Web的零食购物系统,旨在满足用户对零食购物的便捷性和个性化需求。通过整合现代Web开发技术,包括前端界面设计和后端逻辑开发,系统将实现用户注册登录、商品浏览、购物车管理、订单结算等功能,旨在为用户提供......
  • P5788 【模板】单调栈
    P5788【模板】单调栈传送门题目描述给出项数为\(n\)的整数数列\(a_{1\dotsn}\)。定义函数\(f(i)\)代表数列中第\(i\)个元素之后第一个大于\(a_i\)的元素的下标,即\(f(i)=\min_{i<j\leqn,a_j>a_i}\{j\}\)。若不存在,则\(f(i)=0\)。试求出\(f(1\dotsn)\)。......
  • springboot云南特色民宿预约系统-计算机毕业设计源码81574
    目 录第1章引 言1.1选题背景1.2选题目的1.3论文结构安排第2章系统的需求分析2.1系统可行性分析2.1.1技术方面可行性分析2.1.2经济方面可行性分析2.1.3法律方面可行性分析2.1.4操作方面可行性分析2.2系统功能需求分析2.3系统性需......
  • Codeforces Round 968 (Div. 2)
    A.TurtleandGoodStrings题意:确定是否存在一种方案使得\(s=t_1+t_2+\cdots+t_m\),满足\(m>1\)且任意\(i<j\),\(t_i\)的第一个字母不等于\(t_j\)的最后一个字母。\(s_1\)和\(s_n\)一定不属于一个子串,因此\(s_1\nes_n\)是条件非法的必要条件。那么反......
  • 057 Project Setup & First Methods
    示例index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>VueBa......
  • 算法的学习笔记—字符串的排列(牛客JZ38)
    ......
  • Codeforces Round 968 (Div. 2)
    A.TurtleandGoodStrings思路:题意大致为把一个字符串分成若干段,要求每两段,前一段的首字符不能等于后的一段的尾字符,给你一个字符串,能不能构造出合法方案。观察到,分的段数越小,越有助于我们判断。所以,不妨分成两段,问题转化为判断首尾字符是否相等。代码:#include<bits/stdc++.......