牛客比赛3月29日
5 2
3 4 7 2 6
3 5 2 9 0
3 8 5 7 3
2 5 3 1 4
9 8 6 3 5
15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <bits/stdc++.h> #define N 21 #define M 10000000 #define Nxt (now >> (x - 1) & 1) using namespace std; int n,m,k,ans,cnt; int a[N][N],v[N][N]; int rt[N][N],ch[M][2],sum[M]; void ins( int &p, int now, int x=31) { if (!p)p=++cnt;sum[p]++; if (x)ins(ch[p][Nxt],now,x-1); } int ask( int p, int now, int x=30) { if (x<0) return 0; int k=now>>x&1,ok=sum[ch[p][!k]]; return ok>0?ask(ch[p][!k],now,x-1)+(1<<x):ask(ch[p][k],now,x-1); } void dfs1( int x, int y, int now) { if (x<1||y<1) return ; if (v[x][y]) return ans=max(ans,ask(rt[x][y],now)), void (); dfs1(x-1,y,now^a[x][y]);dfs1(x,y-1,now^a[x][y]); } void dfs( int x, int y, int now) { if (x>n||y>n) return ; if (v[x][y]) return ins(rt[x][y],now^a[x][y]), void (); dfs(x+1,y,now^a[x][y]);dfs(x,y+1,now^a[x][y]); } int main() { cin>>n>>k; for ( int i=1;i<=n;i++) for ( int j=1;j<=n;j++) cin>>a[i][j]; for ( int i=1;i<=n;i++) v[i][n-i+1]=1; dfs(1,1,k);dfs1(n,n,0); cout<<ans<<endl; return 0; } |
作者:LightAc
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?