最新要闻
- 焦点关注:什么是牙周炎及症状_什么是牙周炎
- SE终于承认《Forspoken》失败:但仍有可取之处
- 世界短讯!广西:全面实现高速服务区充电桩100%全覆盖
- 环球动态:鲜嫩如蛋挞 多鲜岩烧乳酪吐司1斤14.9元
- 世界滚动:Win10极限精简版系统Tiny10更新:加入远程桌面等实用功能
- Intel中国特供i5-13490F闪电降价!这性价比 没治了
- 当前简讯:女子沙漠种树16年让县城免于消失 11年前美国预言翻车
- 每日短讯:掀起汽车降价狂潮之后 湖北再投放5亿元消费券
- 全球讯息:突破142万人!《CS:GO》同时在线数达10年来最高点
- 2.8K OLED高刷屏!华硕灵耀14 2023轻薄本图赏
- 女子试驾比亚迪汉撞树:碗口粗的树都弯了 A柱完好无损
- 环球关注:面向 DevOps 的 Kubernetes 最佳安全实践
- 明明不缺钱 为什么总有人喜欢在家收集垃圾?
- 大众ID.家族新能源汽车跟进降价 最高优惠4万元
- 每日头条!一小时发电量超七万千瓦时!首台国产F级50兆瓦重型燃气轮机下线
- 单机身10499元:佳能入门全画幅微单EOS R8正式上架
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Codeforces Round #857 Div.1 1801 E F 题解
(相关资料图)
点我看题
1801 E. Gasoline prices
先来看这样一道题:一个长为n的字符串,每个字符都是一个英文小写字母。有q个限制,每个限制形如\(x\ y\ len\),表示从位置x与从位置y开始的长度为len的子串相同。要求出满足所有限制的字符串的数量。这题和本题1801E是很像的,只是1801E要对所有限制的每个前缀都求答案,且问题移到了树上。
来看看这个字符串题的做法。先对这个串建立st表,\(f_{i,j}\)表示左端点在i,长度为\(2^j\)的子串。我们对st表的每层(\(f_{*,j}\)为一层)维护一个并查集,如果\(f_{a,j}\)与\(f_{b,j}\)在第j层的并查集中被连接,就表示从a开始和从b开始的长度为\(2^j\)的子串必须相等。对于每条限制,令\(lev=\lfloor lg(len) \rfloor\),在第lev层的并查集中把\(f_{x,lev}与f_{y,lev}\)连接,把\(f_{x+len-2^{lev},lev}与f_{y+len-2^{lev},lev}\)连接。处理完所有的限制后,从大到小枚举所有j,然后枚举i,令\(f_{i,j}\)在第j层并查集中的根为\(f_{k,j}\),那么就在第j-1层中连接\(f_{i,j-1}和f_{k,j-1}\),以及\(f_{i+2^{j-1},j-1}和f_{k+2^{j-1},j-1}\)。这样就把所有限制信息都像线段树一样pushdown到了第0层,只要检查第0层的并查集连通块个数就知道有多少个等价类了。答案是\(26^{等价类个数}\)。
然后这个字符串题如果要对q个限制的每个前缀都求答案的话也是很容易的,可以每次添加一个限制后直接不断pushdown到第0层,并在修改第0层时维护连通块个数。每一层的并查集最多被修改n次(如果发现并查集中当前要连接的两个位置已经连通,就直接退出,不继续pushdown),如果并查集复杂度算\(logn\)的话,总复杂度\(O(nlog^2n)\)。
再回到原问题。其实可以直接把上面的st表搬到树上,\(f_{i,j}\)表示从点i向祖先方向的前\(2^j\)个点构成的链,\(g_{i,j}\)表示从点i向祖先方向的前\(2^j\)个点构成的链reverse后的结果,第j层的并查集中包含\(f_{*,j}\)和\(g_{*,j}\)中的所有元素(其中第0层只包括\(f_{*,0}\)中的元素),可以给它们从1到2n编个号。对于一个限制,我们要求两条链上的点的值一一对应相等,仍然是在并查集中直接合并,只是这里要以两条链的LCA为分界分成3部分,其中一部分是把一个\(f_{*,*}和一个g_{*,*}\)合并,还有两部分是把两个f合并。并查集中的每一层最多被合并\(2n\)次,所以总复杂度仍然是\(O(nlog^2n)\)(有点卡常)。如果不仔细想无脑写的话很容易写得很烦,下面的代码参考了platelet的写法。
点击查看代码
#include #define rep(i,n) for(int i=0;i0){if(a&1) (ret*=res)%=MOD;a>>=1;(res*=res)%=MOD;}return ret;}LL n,q,par[200010][20],l[200010],r[200010],dep[200010];LL ans=1;vector g[200010];void dfs(LL pos,LL d){ dep[pos]=d; rep(i,g[pos].size()) dfs(g[pos][i],d+1);}LL getLCA(LL x,LL y){ for(int i=18;i>=0;--i) if(par[x][i]>0&&dep[par[x][i]]>=dep[y]) x=par[x][i]; for(int i=18;i>=0;--i) if(par[y][i]>0&&dep[par[y][i]]>=dep[x]) y=par[y][i]; if(x==y) return x; for(int i=18;i>=0;--i) if(par[x][i]!=par[y][i]) x=par[x][i],y=par[y][i]; return par[x][0];}LL getAnces(LL x,LL y){rep(i,19) if(y&(1<>n; for(int i=2;i<=n;++i) scanf("%lld",&par[i][0]),g[par[i][0]].pb(i); rep(i,19) repn(j,n) par[j][i+1]=par[par[j][i]][i]; repn(i,n) scanf("%lld %lld",&l[i],&r[i]),(ans*=(r[i]-l[i]+1))%=MOD; dfs(1,0); cin>>q; rep(qn,q) { LL a,b,c,d,ab,cd; scanf("%lld%lld%lld%lld",&a,&b,&c,&d); if(ans==0) { puts("0"); continue; } ab=getLCA(a,b);cd=getLCA(c,d); if(dep[a]-dep[ab]
1801 F. Another n-dimensional chocolate bar
\(k\le 1e7\),所以可能会想到去枚举把b从小到大排序,然后去掉所有1之后得到的那个序列(最多有\(logk\)个元素)。但在这些枚举出的序列中并不是所有都可能成为最优的,如果我们可以把其中的一个数-1,使得序列所有元素的乘积仍然\(\ge k\),那它就肯定不是最优的。这样一来就大大减少了可能序列的个数。
进一步看看能不能枚举一些更简单的东西。假设当前要求\(\prod b_i\ge k"\),我们看看\(b_1\)可能的取值有哪些。令枚举出的\(b_1\)的值为\(v\),\(v"=\lceil \frac {k"}v \rceil\)。则必须满足\(\lceil \frac {k"}{v"} \rceil=v\),否则把v减1,此时的\(v和v"\)仍然满足条件,显然更优。在枚举v时,只要枚举所有满足\(v\le v"\)的v就能找到所有可能的\((v,v")\)了,因为\(v和v"\)也可以交换。我们用暴搜预处理所有可能出现的\(k"\)及其对应的可能出现的\((v,v")\),方法为先对输入的k搜索可能的\(v和v"\),然后再把\(v和v"\)作为可能的\(k"\)继续搜索递归下去(需要记忆化),具体实现方法见代码。搜出来后会发现可能的\(k"\)只有7000种左右,可能的\((v,v")\)总数则不超过\(10^6\)个。令\(s_i\)表示当i作为上面的\(k"\)时,所有\((v,v")\)的集合。
所以可以令\(f_{i,j}\)表示处理到a中的第i个数,要求\(\prod_{p=i}^n b_p\ge j\)时的最优答案。对\(f_{i,j}\)进行主动转移时只要枚举\(s_j\)中的所有元素就行了。发现这个数组的第一维完全没用,可以删掉,所以空间也没问题了。
时间复杂度\(O(10^6n)\)左右。
点击查看代码
#include #define rep(i,n) for(int i=0;i#define fi first#define se second#define pb push_back#define mpr make_pairvoid fileio(){ #ifdef LGS freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif}void termin(){ #ifdef LGS std::cout<<"\n\nEXECUTION TERMINATED"; #endif exit(0);}using namespace std;LL n,k,a[110];bool vis[10000010];vector possi;vector > trans;double dp[10000010],mul[10000010];void dfs(LL x){ if(vis[x]) return; possi.pb(x);vis[x]=true; for(LL dv=1;;++dv) { LL res=(x+dv-1)/dv; if(dv>res) break; dfs(dv);dfs(res); if((x+res-1)/res!=dv) continue; if(dv>1) trans.pb(mpr(x,mpr(dv,res))); if(dv!=res&&res>1) trans.pb(mpr(x,mpr(res,dv))); }}int main(){ fileio(); cin>>n>>k; dfs(k); LL mx=1; rep(i,n) scanf("%lld",&a[i]),mx=min(mx*a[i],(LL)1e11); if(mx
关键词:
-
Codeforces Round #857 Div.1 1801 E F 题解
点我看题1801E Gasolineprices先来看这样一道题:一个长为n的字符串,每个字符都是一个英文小写字母。...
来源: Codeforces Round #857 Div.1 1801 E F 题解
打开MASA Blazor的正确姿势6:表单验证
看点:C#中定义自己的消费队列(下)
焦点关注:什么是牙周炎及症状_什么是牙周炎
SE终于承认《Forspoken》失败:但仍有可取之处
焦点速看:前端设计模式——适配器模式
世界短讯!广西:全面实现高速服务区充电桩100%全覆盖
环球动态:鲜嫩如蛋挞 多鲜岩烧乳酪吐司1斤14.9元
世界滚动:Win10极限精简版系统Tiny10更新:加入远程桌面等实用功能
Intel中国特供i5-13490F闪电降价!这性价比 没治了
计应212小组讨论junit成果
当前简讯:女子沙漠种树16年让县城免于消失 11年前美国预言翻车
每日短讯:掀起汽车降价狂潮之后 湖北再投放5亿元消费券
全球讯息:突破142万人!《CS:GO》同时在线数达10年来最高点
【世界时快讯】ELF 文件
环球快资讯丨表数据量大优化方案设计
2.8K OLED高刷屏!华硕灵耀14 2023轻薄本图赏
女子试驾比亚迪汉撞树:碗口粗的树都弯了 A柱完好无损
环球关注:面向 DevOps 的 Kubernetes 最佳安全实践
焦点速递!9.3.3输入的符号2
明明不缺钱 为什么总有人喜欢在家收集垃圾?
大众ID.家族新能源汽车跟进降价 最高优惠4万元
每日头条!一小时发电量超七万千瓦时!首台国产F级50兆瓦重型燃气轮机下线
Windows10免费激活专业版亲测有效无需安装软件,附:Windows10停止自动更新教程正解版
单机身10499元:佳能入门全画幅微单EOS R8正式上架
中国2月动力电池装车量:宁德时代、比亚迪拿下超7成市场份额
环球要闻:13日明早将现寒潮过程最低气温:上班记得多穿点
承诺捐款1100万未兑现被母校起诉 校友回应:自己会像罗永浩一样
寻味北京 | 文化活动·北京城市副中心 公共文化服务
最资讯丨Python 中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,R
世界新动态:秒杀面试题!JS中this指向的理解和运用
环球精选!.NET、.NET Framework 和 .NET Core
在Linux中如何注销其他 SSH 用户
资讯推荐:补贴9万后12万买C6 博主揭雪铁龙套路玩的深!低配比高配还贵
1TB存储影像机皇!小米13 Ultra或5月发布:同步小米平板6/小米手环8
焦点速看:洛谷 P1015 回文数
世界滚动:曾称花40万买燃油车很悲催!智己CEO:智己LS7近一半车主来自BBA
世界实时:《你好李焕英》后二次合作:贾玲第二部导演作品有张小斐
全球看热讯:EntityFramworkCore7笔记
【天天时快讯】董明珠谈“35岁职场危机”:不理解 人们要到60岁才退休
宏任务&微处理
主龙骨图片_主龙骨
一次看过瘾!《流浪地球》系列两部电影下周连映:时长5小时
焦点热门:读Java性能权威指南(第2版)笔记14_垃圾回收A
环球热门:全球第15!小米13 Pro DXO音频140分:险胜iPhone 13 Pro Max
今日最新!有六百万人 沉迷在B站上看“抓小偷”
天天报道:不退休不会卖股票!董明珠:格力没实现6000亿营收目标 有遗憾
怎么利用异步设计提升系统性能?
【天天新要闻】500km续航纯电MPV!李想首曝网约车D1 Plus:项目被叫停太遗憾
全球观焦点:Go 面向对象
全球快播:Vue——Vue初始化【三】
吕钱浩:苹果2026年可能会推真全面屏iPhone 那个时候中兴已是第7代了
焦点快报!博主阿秋准备坐地铁游香港:晒证件自证是90后
环球快资讯:手机换号伤不起!当代人换手机号的成本有多高?
百事通!iPhone 17 Pro将是最完美iPhone!果粉还要等两年时间
苦是一种享受!董明珠回应仍做手机:格力一些部件必靠进口 国产质量不达标
冷水江市气象局发布大风蓝色预警【Ⅳ级/一般】
自称从清华退学考北大博主删除视频:此前收获50万点赞 快速涨粉
世界热议:PMP项目变更管理及变更流程总结
利用CSS使博客园图片自动居中,而文字保持居左
天天热文:量化交易基础 - 012 - 检验中的假设条件
全球新资讯:2999元国产显卡抢疯了 Steam游戏实测能玩 老黄旧将打造
当前快看:实拍成都6-7级大风来袭:狂风呼啸树折腰 行人雨伞秒被吹翻
邹磊委员:推进“风光水火储”多能互补综合能源供给体系建设
Log4j 配置
每日速递:flink入门-流处理
全球消息!汉诺塔问题——分而治之(引入递归,解决重复子问题)
世界球精选!Java基础入门-数组练习
国内已超越GPS 北斗卫星今年再发三颗星:下一代已在路上
世界观点:称根据身体来划分性别比较好 女星桥本爱被LGBT攻击
【独家】女生月薪两万辞职考研八次失败:次次铩羽而归
全球新资讯:第128篇:浏览器存储(cookie、webStorage、 IndexedDB)
世界简讯:关于使用python脚本将同级的其他目录下的所有文件根据年份移动到当脚本位置的年份目录
环球今热点:SSD比机械硬盘更容易坏?实测来了:跟想象中不一样
全球观天下!2月轿车销量排名:两“逸”同病相怜、秦汉一马平川
通讯!姚劲波代表:高学历干家政可能会越发普遍
《庆余年2》冲上热搜榜:网曝郭麒麟演的角色范思辙换人了
资讯:shiro-550反序列化漏洞分析
资讯:64.异常
世界热文:[新媒体运营]新媒体运营概述
9名初中生花18元点18串里脊庆生 网友看哭:回不去的年华
今日报丨金钱豹回拜游客 动物园回应:没人教、第一次见
世界今日报丨隅田川进口胶囊咖啡液8杯到手10.9元:更鲜更好喝
有赞一面:还有任务没执行,线程池被关闭怎么办?
全球快看点丨注解与反射
java基础二-面向对象的三大特性
全球最资讯丨A卡有能力跟RTX 4090正面刚 AMD:不做是因为太贵、功耗高
微头条丨深山红烛 照亮希望
环球新消息丨Redis 深度学习
环球快资讯:前端设计模式——策略模式
新消息丨MySQL学习笔记-SQL实践1
每日快报!安全性不行 Win7系统真的别用了 又一个游戏《堡垒之夜》放弃支持
每日快播:童年回来了!《灌篮高手》发布流川枫角色海报
每日报道:使用web client对 vcenter 进行补丁升级
有监督学习——梯度下降
全球百事通!聪明的燕姿
当前视点!Oracle数据库中没有scott账户的方法
今日热闻!光速破发?iPhone 14黄色版还未开售便降价600元
华硕发布ROG Strix Impact III鼠标:双手通用、可更换微动插槽
真香!重庆购买HUAWEI问界M7直补3万:起售仅25.98万