首页 > 其他分享 >2024.10.24 The 2021 ICPC Northwestern Russia Regional Contest

2024.10.24 The 2021 ICPC Northwestern Russia Regional Contest

时间:2024-10-29 21:44:52浏览次数:5  
标签:24 Northwestern 2024.10 val insert int len 重复 极小值

比赛链接

Solved:8/14

Penalty:909

Rank:23


前五道签到题 ABCHL。


K. Kaleidoscopic Route

题意

给一张带边权的图,求一条1到n的路径,使经过的边数最少的同时边的极差最大。

题解

求出最短路图,然后DAG上dp:f和g分别表示从1到这个点能经过的最大边权和最小边权。然后每转移一条边(x,y,z)就用g[x]-z和z-f[x]分别更新答案。输出方案就分别记一下f和g转移的前一个点就行。

经典说起来容易写起来难。。


D. Day Streak

题意

给一个数组 ${a_i}$,求 $t$ 使得 ${\lfloor\frac {a_i+t}m\rfloor}$的最长连续段最长。

题解

首先本质不同的 $t$ 只有 $m-a_i\bmod m$。

当 $t$ 增大的时候,有某些数从 $\lfloor\frac {a_i}m\rfloor$ 变为 $\lfloor\frac {a_i}m\rfloor+1$。

因此我们需要支持单点修改和维护最长连续段。

连续段可以用【珂朵莉树】来维护。即维护一个 set<pair<int,int>>,存储所有连续段。每次单点修改等于插入一个点和删除一个点,插入即合并左右两个连续段(如果有),删除即把它所在的连续段拆成两短。额外再维护一个set存所有连续段的长度。

int n,m,a[N];
map<int,vector<int>> mp;
map<int,int> val;
set<pii> s;
multiset<int> len;
void insert(int x){
    auto it=s.lower_bound(pii(x,x));
    int L=x,R=x;
    vector<pii> tmp;
    if(it!=s.end()&&it->first==x+1)R=it->second,tmp.push_back(*it);
    if(it!=s.begin()){
        --it;
        if(it->second==x-1)L=it->first,tmp.push_back(*it);
    }
    for(auto p:tmp)s.erase(p),len.erase(len.find(p.second-p.first+1));
    s.insert(pii(L,R)),len.insert(R-L+1);
}
void erase(int x){
    auto it=s.lower_bound(pii(x+1,-1));
    --it;
    int L=it->first,R=it->second;
    s.erase(it),len.erase(len.find(R-L+1));
    if(L<x)s.insert(pii(L,x-1)),len.insert(x-L);
    if(R>x)s.insert(pii(x+1,R)),len.insert(R-x);
}
void solve(){
    cin>>n>>m;
    mp.clear();
    val.clear();
    s.clear();
    len.clear();
    for(int i=1;i<=n;++i){
        cin>>a[i];
        if(a[i]%m)mp[m-a[i]%m].push_back(i);
        a[i]/=m;
        if(!val[a[i]])insert(a[i]);
        ++val[a[i]];
    }
    int ans=*len.rbegin(),anst=0;
    for(auto [x,e]:mp){
        for(int i:e){
            --val[a[i]];
            if(!val[a[i]])erase(a[i]);
            if(!val[a[i]+1])insert(a[i]+1);
            ++val[a[i]+1];
        }
        if(ans<*len.rbegin())ans=*len.rbegin(),anst=x;
    }
    cout<<ans<<' '<<anst<<'\n';
}

E. Extreme Problem

题意

给定函数在 $([-10,10]\cap \mathbb{Z})^2$ 上的性质:有/无极小值、有/无极大值,有/无平台,构造这个函数。

题解

玩数(值)分(析)玩的!

只有八种数据,直接手玩构造:

无重复极值,无平台:x+y

无重复极值,有平台:0

有重复极小值,无平台:令重复极小值为 (-1,0) 和 (1,0),为了让两个都是极小再加一个极值点 (0,0)。对x的偏导数是 $x3-x$。凑整数,$x4-2x2+y2$。

有重复极大值,无平台:上面的取负号。

有重复极小值,有平台:令重复极小值为 (-2,0) 和 (2,0),平台是 (0,0) 周围五个数。那么 x 方向需要有三个零点 -1,0,1,因此有因子 $x^3-x$。设函数表达式为 $(x3-x)(x2+a)$,代入 $x=2$ 解得 $a=\frac {40}7$。注意两位数不能直接写到表达式里(逆天题意)。y 方向和 x 方向一样的表达式,加起来就行。

有重复极大值,有平台:上面的取负号。

有重复极大极小值,无平台:令重复极值为 (-2,0),(-1,0),(1,0),(2,0),同上。结果是 $3x5-25x3+60x+y^2$。

有重复极大极小值,有平台:令重复极值为 (-3,0),(-2,0),(2,0),(3,0),同上。结果是 $(x3-x)(239x4-4211x2+18360)+(y3-y)(239y4-4211y2+18360)$。注意这里 $239\times 107>2$ 会爆,所以直接近似一下,用 $x4-18x2+75$,这样极值点偏了 0.1 左右,不过题意要求是离散的,所以差不多就行。

7 发罚时有一半都是被前缀表达式格式偷袭的。。。偷懒不写表达式转换器是这样的。

标签:24,Northwestern,2024.10,val,insert,int,len,重复,极小值
From: https://www.cnblogs.com/EssentialSingularity/p/18514552

相关文章

  • NewStar2024-week4-Crypto
    Crypto圣石匕首sage直接运行脚本就有了importgmpy2beta=0.37delta=0.01n=round((1-2*beta-2*delta)/((1-beta)^2-2*delta-beta),6)e=3668637434348843171145584606519031375027610199908169273169275927238735031431533260375377791001464799116453803408104076615710166......
  • 2024.10.4 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest
    比赛链接Solved:7/11Penalty:914Rank:1/74Rank(vp):63/1k+Dirt:22%G答案是4*纯色块数+5。考虑怎么维护这个纯色块数。这道题的修改保证了一个块纯色当且仅当其行列都纯色。因此对行列分别维护一棵线段树,维护每一层分别有多少个纯色节点,按层乘起来相加就行。K1操作的增加量......
  • 2024.10.3 2022-2023 ICPC Brazil Subregional Programming Contest
    比赛链接Solved:12/14Rank:5/1k+Rank(vp):49/2k+Penalty:1619Dirt:45%前10个题都比较简单/套路。L做法很好想。但是……因为不会写启发式合并卡了40min,警钟长鸣!intsum[N];map<int,int>col[N];intsz[N];llnow[N],ans[N];voidmrg(intx,inty){x=find(x),y=fi......
  • P9994 [Ynoi Easy Round 2024] TEST_132
    题意给定平面上\(n\)个点,保证两两横纵坐标不同:对于所有横坐标为\(x\)的点,权值\(v_i=v_i^2\)。询问所有纵坐标为\(y\)的点的权值之和。\(n\le10^6\)。Sol根号分治,考虑对于所有横坐标相同的点分组。对于修改操作,若当前修改的组大小\(\leB\),那么直接暴力修......
  • 2024.10.26 2024 CCPC哈尔滨站
    Solved:6/13Penalty:635Rank:72Rank(ucup):170打到后面困了(而且不会L心态爆炸)睡觉去了,不然还能多做个E题(被L单防了啊。。CGKM:签到,不放了。J.NewEnergyVehicle$n$种汽油,$m$个加油站,每个加油站只能加一种油,每种油都是一单位能走一公里,求最远能走多少公里。$n,m\leq......
  • [CSP-S 2024] 超速检测——模拟、贪心
    [CSP-S2024]超速检测(民间数据)题目描述小D新入职了某国的交管部门,他的第一个任务是负责国家的一条长度为\(L\)的南北主干道的车辆超速检测。为了考考小D,上司首先需要他解决一个简化的场景。这个周末,主干道上预计出现\(n\)辆车,其中第\(i\)辆车从主干道上距离最南端\(......
  • [题解][CSP-S2024]擂台游戏
    题意[CSP-S2024]擂台游戏(民间数据)题目描述小S想要举办一场擂台游戏,如果共有\(2^k\)名选手参加,那么游戏分为\(k\)轮进行:第一轮编号为\(1,2\)的选手进行一次对局,编号为\(3,4\)的选手进行一次对局,以此类推,编号为\(2^k-1,2^k\)的选手进行一次对局。第二轮在......
  • ctfshow-web入门-爆破(24)
    1.根据题目提示:参考PHP随机数的伪随机数mt_srand(seed);函数播种MersenneTwister随机数生成器。seed,可选。从PHP4.2.0开始,随机数生成器自动播种,因此没有必要使用该函数因此不需要播种,并且如果设置了seed参数生成的随机数就是伪随机数,意思就是每次生成的随机数是一......
  • 2024/10/29 HTML --》关于HTML的快速入门与标签
    以下为快速入门部分点击查看代码--HTML--什么是HTML?--·HTML是一门语言,所有的网页都是用HTML这门语言编写出来的.--·HTML(HyperTextMarkupLanguage):超文本标记语言---->超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内......
  • 题目解析_2024_申论_行政执法
    题目解析:材料1进入桃李镇清池村,通往村头停车场的路是一条环形路。据了解,这是为了绕开村头的两棵百年老树,不打破原有的自然风貌。在冯教授团队看来,树是主,人是客,人要心存敬畏,尊重自然。2020年6月,G市业大学组建城乡艺术建设研究所,冯教授任所长。2021年1月,在有关方面的牵线搭桥下,冯......