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

CSP-S模拟30

CSP-S模拟30
📅 发布时间:2026/6/21 10:29:40

CSP-S模拟30

垃圾场

A. 灯若辰星 (light)

打表题。

题意就是求第一类、第二类斯特林数 \(\mod 2\) 意义下的值。

Code:

#include<bits/stdc++.h>
#define int long long using 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');
}int q;
int op,n,m;inline int f(int n,int m)
{int a=n/2,b=m-(n+1)/2;if((!n*m)||m>n) return 0;if(b<0||b>a) return 0;return ((a&b)==b);
}
inline int g(int n,int m)
{int a=n-1-m/2,b=n-m;if((!n*m)||m>n) return 0;if(b<0||b>a) return 0;return ((a&b)==b);
}inline void solve()
{op=read();n=read();m=read();if(n==0&&m==0) cout<<"1";else if(op==1) cout<<f(n,m);else cout<<g(n,m);
}signed main()
{freopen("light.in","r",stdin);freopen("light.out","w",stdout);q=read();while(q--) solve();
}

B. 彻天之火 (fire)

异或哈希。

答案 \(= n − 1−\) 交集的最大值。

对于每条边 \(i\),假设覆盖它的路径集合是 \(S_i\),那么出现次数最多的 \(S_i\) 的出现次数就是交集的最大值。

给每条路径随机一个 \([0, 2^63)\) 内的权值,每条边的权值取成覆盖它的路径权值的异或和,就可以大概率表示出不同的覆盖集合。

异或差分甚至不需要求出 lca,复杂度 \(O(n + m)\)。

证明是对的很难。但手模发现这样做可以覆盖所有情况。

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');
}int n,m;
const int N=1<<20;
vector<int> E[1<<20];
int u[N],v[N];// int bcj[1<<20];
// int f[1<<20];
// int dep[1<<20];
// int find(int x)
// {
// 	if(x==bcj[x]) return x;
// 	return bcj[x]=find(bcj[x]);
// }int cntt;
mt19937_64 rnd(time(0));
// int val[N];
int pval[N];unordered_map<int,int> mp;void dfs(int p,int fa)
{// int nw=0;for(int to:E[p]){if(to==fa) continue;dfs(to,p);pval[p]^=pval[to];}if(p==1) return;// cout<<p<<" "<<pval[p]<<"\n";// mp[pval[p]]++;// cntt=max(cntt,mp[pval[p]]);// nw^=pval[p];mp[pval[p]]++;cntt=max(cntt,mp[pval[p]]);// pval[p]=nw;// f[p]=fa;// dep[p]=dep[fa]+1;// for(int to:E[p])// {// 	if(to==fa) continue;// 	dfs(to,p);// }
}// void init()
// {
// 	for(int i=1;i<=n;i++) bcj[i]=i;
// 	dfs(1,0);
// }// int Lca(int u,int v)
// {
// 	int cnt=0;
// 	while(bcj[u]!=bcj[v])
// 	{
// 		if(dep[u]<dep[v]) swap(u,v);
// 		cnt++;
// 		int top=find(u);
// 		bcj[top]=find(f[top]);
// 		u=bcj[top];
// 	}
// 	return cnt;
// }int solve1()
{return 0;// init();// int cnt=0;// for(int i=1;i<=m;i++)// {// 	cnt+=Lca(u[i],v[i]);// }// return cnt;
}int solve2()
{for(int i=1;i<=m;i++){int nw=(rnd()>>1);// cout<<nw<<"\n";pval[u[i]]^=nw;pval[v[i]]^=nw;}dfs(1,0);// cout<<cntt<<"\n";return cntt;
}signed main()
{// #ifndef ONLINE_JUDGEfreopen("fire.in","r",stdin);freopen("fire.out","w",stdout);n=read();m=read();for(int i=1;i<n;i++){int u=read(),v=read();E[u].push_back(v);E[v].push_back(u);}for(int i=1;i<=m;i++){u[i]=read();v[i]=read();// if(u[i]==v[i]) { i--,m--; }}int ans=max(solve1(),solve2());cout<<max(0ll,n-1-ans)<<"\n";// #endif//mt19937_64 myrand(time(0));return 0;
}

C. 完美记忆 (perfect)

Code:

D. 未来程序 (program)

Code:

相关新闻

  • 2025多校冲刺CSP模拟赛5
  • 应用安全 --- 安卓神器 之 入口加密
  • 读书报告和代码

最新新闻

  • Ubuntu 20.04 安装 Webmin 可视化运维工具完整指南
  • 攀枝花市黄金回收猫腻多怎么办?整理了5家诚信回收店供参考 - 奢金阁
  • 旧金饰变现不想亏?这5家大庆回收门店报价较实在 - 嵩山路大王
  • 基于行为一致性的跨模态世界模型:从强化学习到文本交互的智能体迁移
  • 旧金饰变现不想亏?这5家丹东回收门店报价较实在 - 嵩山路大王
  • 盘锦市今日黄金回收价格多少?本地5家口碑门店报价参考 - 奢金阁

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

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

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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