尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

2025多校冲刺CSP模拟赛7

2025多校冲刺CSP模拟赛7
📅 发布时间:2026/6/19 16:40:13

2025多校冲刺CSP模拟赛7

不是你怎么还有加赛?ys

A. gcd&xor (gcdxor)

转化为外层枚举 \(\gcd\),内层枚举 \(i,j\),打表即可。可以发现规律,是调和级数做法,时间复杂度大约 \(O(1.5 \times 10^8)\)。

Code:

#include<bits/stdc++.h>
#define int long longusing namespace std;const int Size=(1<<20)+1;
char buf[Size],*p1=buf,*p2=buf;
char buffer[Size];
int op1=-1;
const int op2=Size-1;
#define getchar()                                                              \
(tt == ss && (tt=(ss=In)+fread(In, 1, 1 << 20, stdin), ss == tt)     \? EOF                                                                 \: *ss++)
char In[1<<20],*ss=In,*tt=In;
inline int read()
{int x=0,c=getchar(),f=0;for(;c>'9'||c<'0';f=c=='-',c=getchar());for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);return f?-x:x;
}
inline void write(int x)
{if(x<0) x=-x,putchar('-');if(x>9)  write(x/10);putchar(x%10+'0');
}// #ifndef ONLINE_JUDGE
// #define ONLINE_JUDGE
// #endif// int logn[1<<20];
// vector<pair<int,int> > v[20][1<<16];signed main()
{// #ifndef ONLINE_JUDGEfreopen("gcdxor.in","r",stdin);freopen("gcdxor.out","w",stdout);int n;int ans=0;cin>>n;for(int i=1;i<=n;i++)for(int j=i;j<=n-i;j+=i)ans+=(j^(j+i))==i;cout<<ans;// for(int i=2;i<(1<<20);i++) logn[i]=logn[i>>1]+1;// for(int k=1;;k<<=1)// {// 	int L=1<<logn[k],R=min(n,(1ll<<(logn[k]+1))-1);// 	if(L>n) break;// 	cerr<<L<<" "<<R<<"\n";// 	for(int i=L;i<=R;i++)// 	for(int j=i+1;j<=R;j++)// 	{// 		if(__gcd(i,j)==(i^j))// 		{// 			v[logn[k]][i^j].push_back(make_pair(i,j));// 			// cout<<i<<" "<<j<<" "<<(i^j)<<"\n";// 			ans++;// 		}// 	}// 	// cerr<<"\n------------------\n\n";// }// for(int i=1;i<=n;i++)// {// 	bool f=0;// 	for(int k=1;k<=logn[n];k++)// 	{// 		if(v[k][i].empty()) continue;// 		f=1;// 		cout<<"\nxor="<<i<<"\nk="<<k<<"\n";// 		for(auto nw:v[k][i]) cout<<nw.first<<","<<nw.second<<"\n";// 	}// 	if(f) cout<<"\n-----------------------------------------\n";// }// cout<<ans;// #endif//mt19937_64 myrand(time(0));return 0;
}

B. 异或树 (xortree)

暴力写假两次,std 写假一次。

发现规律。加一次点后,只有加操作之前的那些叶子节点的子树 xor 值会更改。非叶子节点的子树 xor 值均固定。

又发现值域很小。所以直接暴力 dp 更改即可。复杂度小常数 \(O(nV)\),可以通过。

注意:有人 (HS_fu3) 使用 unordered_map 被卡常了。

Code:

#include<bits/stdc++.h>
#define int long longusing namespace std;const int Size=(1<<20)+1;
char buf[Size],*p1=buf,*p2=buf;
char buffer[Size];
int op1=-1;
const int op2=Size-1;
#define getchar()                                                              \
(tt == ss && (tt=(ss=In)+fread(In, 1, 1 << 20, stdin), ss == tt)     \? EOF                                                                 \: *ss++)
char In[1<<20],*ss=In,*tt=In;
inline int read()
{int x=0,c=getchar(),f=0;for(;c>'9'||c<'0';f=c=='-',c=getchar());for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);return f?-x:x;
}
inline void write(int x)
{if(x<0) x=-x,putchar('-');if(x>9)  write(x/10);putchar(x%10+'0');
}// #ifndef ONLINE_JUDGE
// #define ONLINE_JUDGE
// #endifint k0,q;
struct Node{int op,x;
}a[1<<20];vector<int> E[1<<20];
int val[1<<20];
int cnt[8193];
int sum[1<<22];
int tot=1;void dfs(int p,int x)
{// cerr<<p<<" "<<x<<" "<<E[p].size()<<"\n";// exit(0);if(!E[p].size()){E[p].push_back(++tot);E[p].push_back(++tot);val[tot-1]=val[p];val[tot]=val[p]^x;return;}dfs(E[p][0],x);dfs(E[p][1],x);
}void find(int p)
{sum[p]=val[p];for(int to:E[p]){find(to);sum[p]^=sum[to];}cnt[sum[p]]++;
}signed main()
{//xortree// #ifndef ONLINE_JUDGEfreopen("xortree.in","r",stdin);freopen("baoli.out","w",stdout);k0=read();q=read();val[1]=k0;cnt[k0]=1;for(int i=1;i<=q;i++){int op=read(),x=read();a[i]={op,x};if(op==1){memset(cnt,0,sizeof(cnt));memset(sum,0,sizeof(sum));dfs(1,x);find(1);}else{// dd(1);cout<<cnt[x]<<"\n";}}// #endif//mt19937_64 myrand(time(0));return 0;
}

C. 符文石 (stone)

困难题。

Code:


D. 彩色括号 (witch)

场上拿了 15 pts 部分分跑路了。

Code:



以下是博客签名,正文无关

本文来自博客园,作者:Wy_x,转载请在文首注明原文链接:https://www.cnblogs.com/Wy-x/p/19157934

版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC-BY-NC-SA 4.0 协议)进行许可。

相关新闻

  • redis 5.0单机部署
  • 2025 年最新推荐!国内污水处理设备优质厂家排行榜,助力企业精准选优质设备
  • Qoder 上线提示词增强功能,将开发者从“提示词”的负担中解放出来

最新新闻

  • 6个免费方法让你的手机视频秒变MP4 - 软件工具教程方法
  • Kali Linux实战:ARP欺骗攻击原理、环境搭建与Wireshark流量分析
  • 杭州靠谱品牌首饰回收排行,光谱验金透明称重全款现结 - 奢品小当家
  • 2026年安徽省合肥市合肥医药卫生学校招生简章官网发布:报名入口+报考指南 - cc江江
  • 武汉钻石回收怎么选?2026年实测合规机构名录 - 薛定谔的梨花猫
  • 机器学习模型上线后如何应对系统性风险与数据漂移

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号