2025 --【J+S 二十连测】-- 第四套 总结

总结

T1

考场上很快想出了正解,并打出了代码,没什么问题

T2

考场上很快就打出了正解,但是由于精度问题,导致失分

T3

考场上没有想到解法,打了个部分分,但是挂0

T4

考场上打了个部分分,哪全了

题解

T1

不难发现,修改的方式一定如下:

  1. 确定分界线
  2. 分界线以左的 B 改成 A
  3. 分界线以右的 A 改成 B

枚举分界线,预处理前缀 B 的个数,后缀 A 的个数即可

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=1e6+5;
int a[maxn],b[maxn];
signed main()
{freopen("string.in","r",stdin);freopen("string.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);string s;cin>>s;int n=s.size(),ans=inf;s=' '+s;for(int i=1;i<=n;i++) a[i]=a[i-1]+(s[i]=='B');for(int i=n;i>=1;i--) b[i]=b[i+1]+(s[i]=='A');for(int i=1;i<=n;i++) ans=min({ans,b[i]+a[i-1],a[i]+b[i+1]});cout<<ans;return 0;
}

T2

令我想骂人的题面

由于题面过于不是人看难懂,在重说一下:

\(n\) 个人,每个人有一个恒定的速度和初始位置,求让所有人到一个点时,到底最晚的人最早到的时间


考虑二分答案,二分最晚的人到的时间,那么每个人在规定的时间内跑的距离一定是一个区间(大不了原地等)看是否存在一个点,使得所有人都能到,有就往小找,并记录答案,没有就往大找即可

十年OI一场空,精度不够见祖宗

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=2e5+5;
const double eps=1e-6; 
int x[maxn],v[maxn],n;
double l[maxn],r[maxn];
bool check(double tmp)
{for(int i=1;i<=n;i++) l[i]=x[i]-v[i]*tmp*1.0,r[i]=x[i]+v[i]*tmp*1.0;double lt=0,rt=inf;for(int i=1;i<=n;i++) lt=max(lt,l[i]),rt=min(rt,r[i]);return rt-lt>=eps;
}
signed main()
{freopen("meeting.in","r",stdin);freopen("meeting.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cin>>n;for(int i=1;i<=n;i++) cin>>x[i];for(int i=1;i<=n;i++) cin>>v[i];double l=0,r=1e9,ans=inf;while(r-l>eps){double mid=(l+r)/2;if(check(mid)==0) l=mid;else ans=mid,r=mid;}printf("%.5lf",ans);return 0;
}

T3

考虑将题目弱化一下,变成不能建道路,那么此时就是先判连通性,即那个点能到那个点,在枚举一个点,看有那些点满足两个点能互相到的,统计后取最大即可

现在考虑原题,不难发现:如果我建了一条边的反边,那么就相当于将两点合起来,那么接下来同上即可

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=2000+5,maxm=40005;
vector<int> g[maxn];
int vis[maxn],ans=-inf,n,m,f[maxn][maxn],u[maxm],v[maxm];
void dfs(int x,int s)
{f[s][x]=1;for(auto to:g[x]) if(!f[s][to]) dfs(to,s);
}
signed main()
{freopen("travel.in","r",stdin);freopen("travel.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin>>n>>m;for(int i=1;i<=m;i++){cin>>u[i]>>v[i];g[u[i]].push_back(v[i]);}for(int i=1;i<=n;i++) dfs(i,i);for(int x=1;x<=m;x++){int i=u[x],j=v[x],sum=0;for(int k=1;k<=n;k++) if((f[i][k]||f[j][k])&&(f[k][j]||f[k][i])) sum++;ans=max(ans,sum);}if(!m) ans=1;cout<<ans;return 0;
}

T4

先考虑 \(O(t^4)\) 的做法:

对于一给正方形,只要三个信息就能得到,即:上边的位置和左,右边的位置

还有一个观察:题目求的正方形的左上角一定卡在障碍物或边界上

于是,在四个角加障碍物,枚举三边在判合法即可


\(O(t^3)\) 的做法

发现,其实我只要左,上边的位置即可,右,下边可以在判合法找到,于是枚举上,左边即可

代码(\(O(t^3)\)

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=2e5+5;
int x[maxn],y[maxn],dx[maxn],dy[maxn];
signed main()
{freopen("discover.in","r",stdin);freopen("discover.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,t,ans=0;cin>>n>>t;for(int i=1;i<=t;i++) cin>>dx[i]>>dy[i],x[++x[0]]=dx[i]+1,y[++y[0]]=dy[i]+1;x[++x[0]]=1,y[++y[0]]=1;for(int i=1;i<=x[0];i++){for(int j=1;j<=y[0];j++){int a=x[i],b=y[j],sum=min(n-a+1,n-b+1);for(int k=1;k<=t;k++){if(dx[k]>=a&&dy[k]>=b) sum=min(sum,max(dx[k]-a,dy[k]-b));}ans=max(ans,sum);}}cout<<ans;return 0;
}

T5

考虑40分的做法:

发现以前做过类似的题目,不难发现一个值的贡献是 \(C_a^b\) 的,又通过提示卢卡斯定理得 \(C_n^m \mod 2=(n\& m=m)\)

故求二进制子集即可


100分的做法

不难发现:如果知道了某一行,那么后面的行无需看第1行,直接看那一行即可,故预处理前512行即可,后续同上

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=1e5+5;
int a[512][maxn];
int f(int x,int y)
{if(x<512) return a[x][y];else{int len=1<<(int)log2(x);return f(x-len,y)^f(x-len,y+len);}
}
signed main()
{freopen("xor.in","r",stdin);freopen("xor.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,q;cin>>n>>q;for(int i=0;i<n;i++) cin>>a[0][i];for(int i=1;i<512;i++) for(int j=0;j<n-i;j++) a[i][j]=a[i-1][j]^a[i-1][j+1];while(q--){int x,y;cin>>x>>y;cout<<f(x,y)<<endl;}return 0;
}

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

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

相关文章

无锡市城乡和住房建设局网站wordpress ffmpeg

在手工测试阶段&#xff0c;针对项目输出了测试用例&#xff0c;如果这些测试用例需要在版本迭代的过程中&#xff0c;需要进行回归测试&#xff0c;通过手工重复地执行测试用例&#xff0c;将会耗费大量的人力。 为此应运而生就有了自动化测试&#xff0c;通过使用自动化工具…

深入解析:AI-调查研究-90-具身智能 机器人数据采集与通信中间件全面解析:ROS/ROS2、LCM 与工业总线对比

深入解析:AI-调查研究-90-具身智能 机器人数据采集与通信中间件全面解析:ROS/ROS2、LCM 与工业总线对比pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

函数-装饰器基础知识+推导式

装饰器:    在不改变原函数代码基础上,为原函数扩展功能装饰器格式: ##装饰器的编写(函数的嵌套,外城函数返回内城函数): def wrapper (funk):def inner (*args,**kwags):#自定义共能,根据功能在funk函数执行…

用ip访问没有备案的网站国内外知名市场调研公司

Redis&#xff0c;作为内存数据结构存储的佼佼者&#xff0c;其高性能表现一直备受赞誉。那么&#xff0c;Redis究竟是如何实现这一点的呢&#xff1f;接下来&#xff0c;我们将更深入地探讨其背后的关键技术&#xff0c;并提供进一步的优化策略。 一、内存存储与数据结构设计…

机器人产业学院 —— 教培机构 —— 职业发展 —— 全国性比赛

机器人产业学院 —— 教培机构 —— 职业发展 —— 全国性比赛本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,…

VUE - 实战 2

vue 项目 tailwindcss 安装 安装 命令 npm install -D tailwindcss@3 postcss autoprefixer现在 版本4.1 和vue集成有问题,所有用32 初始化配置文件: npx tailwindcss init -p3 修改 tailwind.config.js 配置: /** …

平面设计免费模板网站济南装修网

以下是百度统计的诊断&#xff0c;小弟万般无奈&#xff0c;html上的缓存以及图片处理技巧欠缺&#xff0c;希望各位大大帮帮忙支个招&#xff01; 以下元素可在不损失原信息量的前提下进行压缩&#xff1a; http://www.5atl.com/Style/main.css &#xff08;大小&#xff1a; …

QBXT2025S刷题 Day1

今天的题目 T1 \(90pts\)。 赛时树状数组写挂了。 发现没有特判第一个数是 \(0\)。 我的思路是,\(cnt[x]\) 表示对于所有的 \(h[i] \geq x\) 可以构成多少个区间。 先离散化。 对于当前 \(h[i]\),若 \(h[i - 1] <…

wordpress 仅显示标题seo会被取代吗

在当今快节奏的软件开发领域&#xff0c;提升开发效率是每个开发者都追求的目标。对于 Vue 前端开发而言&#xff0c;Visual Studio Code&#xff08;VSCode&#xff09;已经成为了众多开发者的首选编辑器。而随着人工智能技术的发展&#xff0c;各类 AI 编码扩展工具如雨后春笋…

2025多校冲刺CSP模拟赛1(螳臂复活祭)

写在前面:题解未动,废话先行: 这次的模拟赛,肝硬化竟取得了比它近三次校内模拟赛的总分之和还要高 \(5pts\) 的成绩!(虽然 \(rank~50\) ),兴奋异常(其实没有),遂写博文(其实是前几天没空写)。顺带一提,那…

龙岩做网站的公司网站开发资源网

1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的…

最新创建的网站网站建设及推广

一、MybatisPlus简介 MybatisPlus&#xff08;简称MP&#xff09;是一个流行的Java持久层框架&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生&#xff0c;旨在简化数据库操作和提高开发效率。MybatisPlus为开发者提供了一套方便的API和…

tar: Ignoring unknown extended header keyword LIBARCHIVE.xattr.com.apple.provenance

tar: Ignoring unknown extended header keyword LIBARCHIVE.xattr.com.apple.provenance这个警告信息是由于不同操作系统之间归档工具的兼容性问题导致的。 错误信息解释 关键词含义LIBARCHIVE.xattr.com.apple.prove…

短剧小程序核心专业的技术拆解:视频加载优化、用户留存与商业化落地​

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

上小学网站建设php网站开发技术背景

更新spring-boot jar包中的BOOT-INF/lib目录下的jar包 场景 需要更新lib目录下某个jar包的配置文件 失败的解决方法 用解压软件依次打开spring-boot jar包&#xff08;设为a.jar&#xff09;、BOOT-INF/lib目录下的jar包&#xff08;设为b.jar&#xff09;&#xff0c;然后修改…

电影网站推荐哪个网站好沧州网站艰涩很

点击菜单栏 File --> Project Structure 在弹出的窗口中点击选择左侧的 Facets&#xff0c;接着点击右边的 &#xff0c;弹出的菜单中选择 web 在弹出的 『Choose Module』窗口中选择要转为 web 的项目&#xff08;模块&#xff09;&#xff0c;然后点击 OK 选择好模块后…

做网站最好选什么语言南昌做企业网站

本篇内容包括&#xff1a;ArrayList 概述、ArrayList 的扩容机制&#xff08;包含源码部分&#xff09;、如何在遍历 ArrayList 时正确的移除一个元素、ArrayList 的构造方法及常用方法、关于 Array 与 ArrayList 的区别、关于 CopyOnWriteArrayList、关于 Fail Fast 与 Fail S…

完整教程:Apache Doris 入门与技术替代方案

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

网站数据库怎么做同步推广网站设计推广方案

过去从未仔细了解过使用 top 和 htop 等命令时显式的CPU信息&#xff0c;本文我们详解解读和标注一下各个数据项的含义&#xff0c;同时和 Ganglia 显式的数据做一个映射。开始前介绍一个小知识&#xff0c;很多查看CPU的命令行工具都是 cat /proc/stat 里的数据&#xff0c;所…

微信网站建设塞尼铁克it彩票网站建设维护工程师

摘要&#xff1a;AJAX是一个在前端的应用非常广泛技术&#xff0c;为什么还要谈它呢&#xff1f;么得办法之前学的不全面&#xff0c;再收拾收拾。水平有限&#xff0c;欢迎指正&#xff01; AJAX&#xff08;全称&#xff1a;Asynchronous JavaScript and XML&#xff09;是一…