Sep 28

只整理 T1, T2.
原题是 「ROI 2012 Day 1」密码 和 「ROI 2012 Day 2」剧院始于演员,可以与 LOJ 提交。

T1

考试的时候忘记 return 0, 导致一口气把所有答案都输出出来了,100->30,再次警示使用 break 的时候一定一定要看清楚能不能达到你想要的目的。

经过观察,对应区间处于第二个串中的长度绝对不会超过 6,我们从这里下手,枚举开始的位置,两个二分确定区间的左右位置,之后通过去掉区间的左右必须相等约束算出位置,hash判断就行了。

代码↓

点击查看代码
#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int MN=1e6+116;
const int P=1145141;
int sum[MN], n, m;
string a, b;
ull hasha[MN], hashb[MN], p[MN];
int query(int l, int r){return sum[r]-sum[l-1];
}
ull gethasha(int l, int r){return hasha[r]-hasha[l-1]*p[r-l+1];
}
ull gethashb(int l, int r){return hashb[r]-hashb[l-1]*p[r-l+1];
}
unordered_map <int,int> trans;
vector <pair<int,int>> ans;
int main(){//freopen("password.in","r",stdin);//freopen("password.out","w",stdout); ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>a>>b; n=a.size(), m=b.size(); a=' '+a, b=' '+b;p[0]=1; for(int i=1; i<=n; ++i) p[i]=p[i-1]*P;for(int i=0; i<=9; ++i) trans[i]=rand();for(int i=1; i<=n; ++i){hasha[i]=hasha[i-1]*P+trans[(a[i]-'0')];}for(int i=1; i<=m; ++i){hashb[i]=hashb[i-1]*P+trans[(b[i]-'0')];}if(a==b){cout<<1<<" "<<1<<'\n'; return 0;}for(int i=1; i<=n; ++i){sum[i]=sum[i-1]+(a[i]-'0');}for(int i=1; i<=m; ++i){if(a[i-1]!=b[i-1]) break;//前边必须相等 for(int len=1; len<=6&&i+len-1<=m; ++len){//枚举长度 int val=0;for(int j=i; j<=i+len-1; ++j){val=val*10+(b[j]-'0');}int l=i, r=n, resr=n;while(l<=r){//尽量大 int mid=(l+r)>>1;if(query(i,mid)<=val){resr=mid; l=mid+1;}else{r=mid-1;}}l=i, r=n; int resl=n;//尽量小 while(l<=r){int mid=(l+r)>>1;if(query(i,mid)>=val){resl=mid; r=mid-1;}else{l=mid+1;}}if(query(i,resr)!=val) continue;if(m-len>=n-(resr-i+1)&&m-len<=n-(resl-i+1)){//合法 int res=n+i-1-m+len;if(gethasha(res+1,n)==gethashb(i+len,m)){ans.push_back({i,res});}}}}sort(ans.begin(),ans.end());cout<<ans[ans.size()-1].first<<" "<<ans[ans.size()-1].second;return 0;
}
`

T2

考场上想的思路,现在实现对了。

我们考虑异或哈希,每个人初始为 0, 对于每次操作,我们随机一个权值,将所有涉及的异或上这个值,明显的,当一个值唯一对应一个人,那么我们就可以确定这个人了。

代码↓

#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int MN=1e6+116;
int n, m, ans[MN], at[MN];
ull hashed[MN];
map <ull,set<int>> man;
vector <ull> eraser;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
int main(){mt19937_64 rnd(time(0));ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);n=read(), m=read(); for(int i=1; i<=n; ++i) man[0].insert(i);for(int i=1,K; i<=m; ++i){K=read(); ull now=rnd();vector <ull> tmp; tmp.clear();for(int j=1,v; j<=K; ++j){at[j]=v=read();man[hashed[v]].erase(v);tmp.push_back(hashed[v]);hashed[v]^=now; man[hashed[v]].insert(v);}for(auto h:tmp){if(man[h].size()==1){if(!ans[*man[h].begin()]) ans[*man[h].begin()]=i;}}for(int j=1; j<=K; ++j){int x=at[j];if(!ans[x]&&man[hashed[x]].size()==1) ans[x]=i;}}for(int i=1; i<=n; ++i) cout<<ans[i]<<" ";return 0;
}

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

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

相关文章

图像采集卡:连接镜头与机器的“视觉神经”,释放工业智能核心动力

什么是图像采集卡? 身处机器视觉、智能制造、医疗影像等行业前沿的你,是否常听到“图像采集卡”这个词?它绝非简单的配件,而是现代工业应用中的关键“视觉神经”。简单来说,图像采集卡(又称视频采集卡或帧抓取器…

2025 年生态木厂商最新推荐榜单:TOP 前五企业实力解析及厂商选择指南生态木方通/户外地板/装饰线条/隔断/背景墙厂商推荐

在环保装饰材料需求持续攀升的当下,生态木(WPC)凭借环保、耐用等优势,成为家装与工装领域的热门选择,但市场乱象却让采购方陷入困境。一方面,大量中小品牌缺乏核心技术,产品在防水、防火、环保性上不达标,且同…

盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解

盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

C++ IO 库全方位解析:从基础到实战 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

解题报告-泥路(muddyroad.*)

泥路(muddyroad.*) 题目背景 yxr 热爱多级跳,而且他十分喜欢在泥路上练习多级跳。 不幸的是,有一天下雨了,yxr 穿着的却是一双新的鞋子。yxr 心疼自己的鞋子,但是又不舍得放弃练习多级跳,于是他决定先勘察泥路。 …

洛谷P10112 [GESP202312 八级] 奖品分配

传送门 原题 题目描述 班上有 \(N\) 名同学,学号从 \(0\) 到 \(N-1\)。有 \(M\) 种奖品要分给这些同学,其中,第 \(i\) 种奖品总共有 \(a_i\) 个 (\(i=0,1, \cdots ,M-1\))。 巧合的是,奖品的数量不多不少,每位同…

P10400 『STA - R5』消失的计算机

传送门 原题 题目描述 本题为提交答案题。 后台有一个正整数 \(n\)(你不知道 \(n\) 具体的值)。 你有 \(10^3\) 个变量 \(p_1,p_2,\cdots,p_{10^3}\),初始 \(p_1=n\),\(p_2=p_3=\cdots=p_{10^3}=0\)。 你需要写一个…

2025 地坪研磨机厂家推荐权威推荐排行榜:品牌深度解析及格力 / 宁德时代合作案例速递水磨石/遥控式/座驾式/小型地坪研磨机厂家推荐

伴随城市更新与智能制造升级,环氧地坪、固化混凝土等工程对研磨设备的精度、效率与稳定性提出严苛要求,地坪研磨机市场需求年均复合增长率达 3.5%。但市场中产品质量悬殊,动力不足、精度偏差、售后滞后等问题频发,…

太原网站建设 网站制作wordpress3.9主题

一、仅需实现在线预览&#xff0c;且文件地址公网可访问 &#xff08;一&#xff09;微软office免费预览&#xff08;推荐&#xff09; 支持doc/docx/xls/xlsx/ppt/pptx等多种office文件格式的免费预览 //示例代码//​在https://view.officeapps.live.com/op/view.aspx?src…

中国工信备案查询网站免费自动刷访客量

traceroute 是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关&#xff0c;然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。 通过traceroute我们可以知…

2025 年最新推荐铝塑膜源头厂家权威排行榜:聚焦 3000㎡厂房与完整产业链的优质企业盘点复合/防锈防潮/木箱包装/设备包装铝塑膜厂家推荐

在当前工业包装领域,铝塑膜因高阻隔、耐穿刺、密封性强等特性,已成为木箱包装、货运物流、化工储存等行业长途运输与长期保存货物的核心材料。但市场现状却不容乐观,大量厂家存在基材质量差、工艺精度低、定制能力弱…

2025 年真空袋生产厂家最新权威推荐排行榜:TOP 级企业工艺、服务及适配场景全景对比指南木箱/设备/海运防潮/铝塑/电柜真空袋厂家推荐

在工业产品仓储运输环节,包装防护失效引发的问题日益凸显 —— 潮湿导致精密部件锈蚀、穿刺造成化工原料泄漏、密封不佳引发货物变质,不仅带来直接经济损失,更严重影响供应链稳定性。当前市场上真空袋厂家工艺水平悬…

《码界飞升传II:数据星辰异界问道》

【第一卷大数据筑基】 第1章:HDFS剑阵!分布式存储定乾坤 第2章:YARN御兽!资源调度的万兽谱 第3章:MapReduce证道!分而治之的无上心法 第4章:Hive悟道!SQL化繁为简的通天梯 【第二卷NoSQL风云】 第5章:HBase觉…

Win FAQ

Win11 FAQ win11 在白色编辑区域鼠标光标消失不见 win+r调用命令窗口,输入control硬件和声音,点击鼠标鼠标属性->指针->文本选择,选择如图所示beam_r.cur,然后应用

结论(数学)

对于已知函数 \(f(x)\) 和已知直线 \(g(x)=kx+b\),当 \(f(x_0)-g(t_0)\) 取到最小值或最大值时存在 \(h(x)=kx+b_1\) 与 \(f(x)\) 相切于横坐标为 \(t\) 的点。

昆山做网站费用黄岩网站建设

java读取操作系统环境变量import java.util.*;import java.io.*;class SysProb{//返回当前系统变量的函数&#xff0c;结果放在一个Properties里边&#xff0c;这里只针对win2k以上的&#xff0c;其它系统可以自己改进public Properties getEnv() throws Exception{Properties …

网站推荐免费的创意logo一键生成器软件免费

[html] 怎样避免让用户看到长时间的白屏&#xff1f; 我觉得&#xff0c;实际解决办法需要结合用户体验和性能优化这两个指标来说&#xff1a;1、用户体验可以使用骨架屏来减少页面白屏&#xff0c;骨架屏也具有更好的loading效果。2、假如1个页面里面有很多很多网络请求&…

郴州网站设计欧美一级A做爰片成电影网站

随着 React 19 的发布即将到来&#xff0c;它承诺带来一些令人期待的新功能。这个版本不仅仅是又一个更新&#xff0c;而是被寄予厚望&#xff0c;将重新定义我们对待 React 代码的方式。承诺提供增强的速度、效率和更流畅的编码体验&#xff0c;React 19 正准备将 Web 开发提升…

检察网站建设请示wordpress 模板 设计

2.1.1 IoC是什么 Ioc—Inversion of Control&#xff0c;即“控制反转”&#xff0c;不是什么技术&#xff0c;而是一种设计思想。在Java开发中&#xff0c;Ioc意味着将你设计好的对象交给容器控制&#xff0c;而不是传统的在你的对象内部直接控制。如何理解好Ioc呢&#xff1…

loki收集容器日志

Loki介绍Loki 是 Grafana Labs 开源的日志聚合系统,常被称为 “日志界的 Prometheus”。它的设计理念是只索引元数据,不索引完整日志内容,结合 Promtail 和 Grafana,就能实现高效的日志采集、存储与可视化。与传统…