首页 > 其他分享 >2025多校冲刺省选模拟赛3

2025多校冲刺省选模拟赛3

时间:2025-01-09 19:44:25浏览次数:1  
标签:2000010 省选 ll 多校 2025 int freopen Isaac mod

2025多校冲刺省选模拟赛3

\(T1\) A. 等差 \(100pts/100pts\)

  • 考虑哈希,每 \(k\) 个作为一组与上一组统一计算。

    • 取 \(Base>\) 值域时用高精度来存储并判断的正确性显然。
  • 观察到可行的最小的 \(k\) 单调不降,不妨直接枚举答案。

  • 暴力实现时间复杂度为 \(O(n^{2})\) ,精细实现记录极长匹配结尾后时间复杂度为 \(O(n \log n)\) 。

    点击查看代码
    const ll mod=1000003579,base=998244353;
    ll a[2000010],pos[2000010];
    ll hsh[2000010],jc[2000010];
    ll ask_hash(ll l,ll r)
    {
    	return (hsh[r]-(__int128_t)hsh[l-1]*jc[r-l+1]%mod+mod)%mod;
    }
    int main()
    {
    #define Isaac
    #ifdef Isaac
    	freopen("arithmetic.in","r",stdin);
    	freopen("arithmetic.out","w",stdout);
    #endif
    	ll n,i,j,k,ans,flag;
    	ll last;
    	scanf("%lld",&n);
    	jc[0]=1;
    	for(i=1;i<=n;i++)
    	{
    		jc[i]=jc[i-1]*base%mod;
    		pos[i]=2*i;
    	}
    	for(i=1,k=1;i<=n;i++)
    	{
    		scanf("%lld",&a[i]);
    		hsh[i]=(hsh[i-1]*base%mod+a[i])%mod;
    		ans=0;
    		for(;2*k+1<=i;k++)
    		{
    			last=(ask_hash(k+1,2*k)-ask_hash(1,k)+mod)%mod;
    			flag=1;
    			for(j=pos[k];j+k<=i&&flag==1;j+=k)
    			{
    				flag&=((ask_hash(j+1,j+k)-ask_hash(j-k+1,j)+mod)%mod==last);
    				pos[k]=(((ask_hash(j+1,j+k)-ask_hash(j-k+1,j)+mod)%mod==last)?j:pos[k]);
    			}
    			if(j!=i&&flag==1)
    			{
    				flag&=((ask_hash(j+1,i)-ask_hash(j-k+1,i-k)+mod)%mod==(ask_hash(1+k,k+i-j)-ask_hash(1,i-j)+mod)%mod);
    			}
    			if(flag==1)
    			{
    				ans=1;
    				break;
    			}
    		}
    		printf("%lld",ans);
    	}
    	return 0;
    }
    

\(T2\) B. 叉积 \(0pts/0pts\)

  • 等价于最大化 \(\sum\limits_{i=l}^{r}x'y_{i}-yx_{i}'\) 。

  • 部分分

    • \(48pts\) :暴力。
    点击查看代码
    pair<ll,ll>a[100010];
    int main()
    {
    #define Isaac
    #ifdef Isaac
    	freopen("cross.in","r",stdin);
    	freopen("cross.out","w",stdout);
    #endif
    	ll n,m,x,y,ans=0,minn,sum,i,j;
    	scanf("%lld%lld",&n,&m);
    	for(i=1;i<=n;i++)
    	{
    		scanf("%lld%lld",&a[i].first,&a[i].second);
    	}
    	for(j=1;j<=m;j++)
    	{
    		scanf("%lld%lld",&x,&y);
    		ans=sum=minn=0;
    		for(i=1;i<=n;i++)
    		{
    			sum+=x*a[i].second-y*a[i].first;
    			ans=max(ans,sum-minn);
    			minn=min(minn,sum);
    		}
    		printf("%lld\n",ans);
    	}
    	return 0;
    }
    
  • 正解

\(T3\) C. 序列变换 \(29pts/9pts\)

  • 部分分

    • \(29pts/9pts\) :爆搜。
    点击查看代码
    const ll p=998244353;
    int a[50],b[50],ans=0;
    bitset<210>s;
    void dfs(int n)
    {
    	int flag=1;
    	for(int i=1;i<=n;i++)
    	{
    		flag&=(a[i]==b[i]);
    	}
    	if(flag==1)
    	{
    		ans=(ans+1)%p;
    		return;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=i+1;j<=n;j++)
    		{
    			if(a[i]+1<=b[i]&&a[j]+1<=b[j])
    			{
    				s[a[i]]=s[a[j]]=0;
    				if(s[a[i]+1]==0&&s[a[j+1]]==0)
    				{
    					a[i]++;
    					a[j]++;
    					s[a[i]]=s[a[j]]=1;
    					dfs(n);
    					s[a[i]]=s[a[j]]=0;
    					a[i]--;
    					a[j]--;
    				}
    				s[a[i]]=s[a[j]]=1;
    			}
    		}
    	}
    }
    int main()
    {
    #define Isaac
    #ifdef Isaac
    	freopen("transform.in","r",stdin);
    	freopen("transform.out","w",stdout);
    #endif
    	int n,i;
    	cin>>n;
    	for(i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		s[a[i]]=1;
    	}
    	for(i=1;i<=n;i++)
    	{
    		cin>>b[i];
    	}
    	dfs(n);
    	cout<<ans<<endl;
    	return 0;
    }
    
    
  • 正解

总结

  • 因不会叉积基本概念,打完 \(T1,T3\) 后直接去学向量了。

后记

  • 因是 \(IOI\) 赛制,学校 \(OJ\) 可以下载第一个非 \(AC\) 测试点。

标签:2000010,省选,ll,多校,2025,int,freopen,Isaac,mod
From: https://www.cnblogs.com/The-Shadow-Dragon/p/18662796

相关文章

  • 2025,谁会成为 AI Agent 的新入口?|播客《编码人声》
      「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。 2024年末,一群来自Android、ChromeOS、Oculus等操作系统的开发元老联合创业,推出AIAgent操作系统/dev/agen......
  • 高级java每日一道面试题-2025年01月06日-并发篇- 什么是Daemon线程?它有什么意义?
    如果有遗漏,评论区告诉我进行补充面试官:什么是Daemon线程?它有什么意义?我回答:在Java高级面试中,Daemon线程是一个重要的并发编程概念。以下是对Daemon线程的详细解释及其意义:一、Daemon线程的定义Daemon线程,也称为守护线程,是Java中一种特殊类型的线程。它主要在后台......
  • 高级java每日一道面试题-2025年01月07日-事务篇-事务三要素是什么 ?
    如果有遗漏,评论区告诉我进行补充面试官:事务三要素是什么?我回答:在Java高级面试中,当提到“事务三要素”时,通常是指数据库事务的三个核心属性,即:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)。这三个属性加上持久性(Durability)共同构成了ACID属性,这是确保......
  • 基于SpringBoot+Vue实现的车辆充电桩系统设计与实现(2024-2025毕设项目,原创项目)
    文章目录系统演示录像系统实际运行效果图技术框架SpringBoot-后端开发框架Vue-前端开发框架前后端分离的开发流程可行性分析系统测试系统测试的目的系统功能测试数据库表设计(供参考)1.用户表(t_user)2.角色表(t_role)3.权限表(t_permission)4.用户-角色关联表(t_user_r......
  • 基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(2024-2025毕业项目,原创项目)
    文章目录系统演示录像系统实际运行效果图技术框架SpringBoot-后端开发框架Vue-前端开发框架前后端分离的开发流程可行性分析系统测试系统测试的目的系统功能测试数据库表设计(供参考)1.用户表(t_user)2.角色表(t_role)3.权限表(t_permission)4.用户-角色关联表(t_user_r......
  • 2025最新Python安装教程+PyCharm安装教程(超详细!)看这一篇全都搞定!
    Python安装1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。(免下载直接安装......
  • 2025年销售攻略
    随着2024年的落幕,我们迎来了全新的2025年,新一轮的业绩争夺战已经悄然打响。面对新的挑战与机遇,我们该如何在销售领域脱颖而出,实现业绩的稳步增长呢?一、明确目标,勇往直前销售工作离不开明确的目标。设定清晰、可行的销售目标,并将其分解为具体的时间节点和任务,是我们迈向成功的第......
  • Temu2025开年新规:又有多少卖家后悔少开店了?
    1月3日,Temu官方发布消息,宣布自2025年1月1日起,每个公司主体在Temu平台上最多只能运营两个店铺,即一个非半托管店铺和一个半托管店铺。此前,Temu曾允许公司主体开设多达20个子店铺。这一政策的出台,无疑给卖家群体带来了巨大冲击,尤其是那些原本依赖多店铺运营策略的商家,更是陷入焦虑......
  • 2025毕设ssm企业员工管理程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今企业运营管理的大环境下,随着企业规模的不断扩大和管理复杂度的提升,传统的员工管理模式面临诸多挑战。一方面,员工数量增多使得员工信息管理......
  • 2025毕设ssm社区养老综合服务平台程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的发展,人口老龄化现象日益严重,传统的养老模式面临诸多挑战。家庭养老功能逐渐弱化,而机构养老又存在资源有限、成本较高等问题。社区养老......