当前位置: 首页 > news >正文

abc326-d 题解

比较麻烦的暴力搜索

abc326-d 题解
题目链接
一开始读错题了,以为abc可以出现多次,浪费了很多时间,一定要戒骄戒躁读好题!
这种搜索题要思路打开,想一想以什么搜索
按列去搜索,感觉自己写的有点麻烦了
我的代码:

#include<bits/stdc++.h>
using namespace std;
int n;
string rr,cc;//row,column
int r[10],c[10];
int cntr[10];//row [i] is empty是否前面没有字母:需要向r对齐
bool ise[10][10];//ise[i][j]: 字母j是否存在于rowi中 
int mp[10][10];
bool flag=false;
int ans=0;
void out(){cout<<"Yes"<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(mp[i][j]==-1) cout<<".";else cout<<(char)(mp[i][j]+'A');}cout<<endl;}/*for(int i=1;i<=n;i++){for(int j=0;j<=2;j++){cout<<ise[i][j];}cout<<endl;}cout<<"-------------------";*/
}
void dfs(int iofc){//i of column: dfs每一个column c35 * 2的样本空间 if(flag) return;if(iofc==n+1){flag=1;out();}//cout<<endl;//cout<<iofc<<endl;//out();for(int i=1;i<=n-2;i++){//每个column的第一个数int x=c[iofc],y=(c[iofc]+1)%3,z=(c[iofc]+2)%3;if(ise[i][x]) continue;//if(cntr[i]==0&&x!=r[i]) continue;ise[i][c[iofc]]=1; mp[i][iofc]=c[iofc]; cntr[i]++;//c[i]+1为此列的第二个数 for(int j=i+1;j<=n-1;j++){if(ise[j][y]) continue;//改1 if(cntr[j]==0&&y!=r[j]) continue;ise[j][y]=1; mp[j][iofc]=y; cntr[j]++;for(int k=j+1;k<=n;k++){if(ise[k][z]) continue;if(cntr[k]==0&&z!=r[k]) continue;ise[k][z]=1; mp[k][iofc]=z; cntr[k]++;dfs(iofc+1);ise[k][z]=0; mp[k][iofc]=-1; cntr[k]--;}ise[j][y]=0; mp[j][iofc]=-1; cntr[j]--;}//c[i]+1为此列的第三个数 z=(c[iofc]+1)%3;y=(c[iofc]+2)%3;for(int j=i+1;j<=n-1;j++){if(ise[j][y]) continue;if(cntr[j]==0&&y!=r[j]) continue;ise[j][y]=1; mp[j][iofc]=y; cntr[j]++;//注意取余 for(int k=j+1;k<=n;k++){if(ise[k][z]) continue;if(cntr[k]==0&&z!=r[k]) continue;ise[k][z]=1; mp[k][iofc]=z; cntr[k]++;dfs(iofc+1);ise[k][z]=0; mp[k][iofc]=-1; cntr[k]--;}ise[j][y]=0; mp[j][iofc]=-1; cntr[j]--;}ise[i][x]=0; mp[i][iofc]=-1; cntr[i]--;}}int main(){ios::sync_with_stdio(0);cout.tie(0);cin>>n;cin>>rr>>cc;for(int i=1;i<=n;i++) r[i]=rr[i-1]-'A';for(int i=1;i<=n;i++) c[i]=cc[i-1]-'A';memset(mp,-1,sizeof(mp));memset(cntr,0,sizeof(cntr));dfs(1);if(!flag) cout<<"No";return 0;
}
http://www.jsqmd.com/news/41379/

相关文章:

  • 搭建一个CTF比赛平台的经过
  • 11_15
  • 四、Agent原理与ReAct 架构详解 ——《动手学Agent应用开发》学习心得
  • InterStellar
  • 三、Agent 应用开发与落地全景 ——《动手学Agent应用开发》学习心得
  • 每日反思(2025_11_15)
  • 业财一体化五步法 - 智慧园区
  • 猫树
  • 『回忆录』高二上半期考试
  • 多项式牛顿迭代
  • 轮胎内喷涂优惠工具趋势分析报告
  • Vibe coding All In One
  • 路径计数与反射容斥
  • 多项式复合逆与拉格朗日反演
  • Day21浮动
  • Spring AI Alibaba 项目源码学习(七)-Agent、BaseAgent、ReactAgent 分析
  • AtCoder Beginner Contest 432 ABCDEG 题目解析
  • fireworks
  • KEYDIY KD ZB28-3 Universal Hyundai Smart Remote Key (5pcs/lot) – Reliable Replacement
  • Yanhua Mini ACDP-2 A303 Volvo 2022+ IMMO License for ACDP-2 Module20
  • 西电TIC带鱼杯新生训练赛复盘
  • 20251115 - 从零到1详细剖析STM32的CAN架构【以STM32F407为例】
  • 2025.11.15 测试
  • 鸿蒙应用审核被拒?常见原因与避坑指南来了
  • C++篇(13)计算器实现 - 指南
  • 20232306 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • ABC432E sol
  • 完整教程:linux离线环境局域网远程ssh连接vscode
  • 01命题逻辑的基本概念
  • 鲜花:记梦4