备战蓝桥杯---搜索(应用基础1)

话不多说,直接看题:

显然,我们直接用深搜,我们可以先把空位用结构体存,然后打表存小方块,再用数组存行列。

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int a[12][12];
int biao[20][20]={{0,0,0,0,0,0,0,0,0,0},{0,1,1,1,2,2,2,3,3,3},{0,1,1,1,2,2,2,3,3,3},{0,1,1,1,2,2,2,3,3,3},{0,4,4,4,5,5,5,6,6,6},{0,4,4,4,5,5,5,6,6,6},{0,4,4,4,5,5,5,6,6,6},{0,7,7,7,8,8,8,9,9,9},{0,7,7,7,8,8,8,9,9,9},{0,7,7,7,8,8,8,9,9,9}};
int ck[20][20];
int lie[12][12],hang[12][12];
struct node{int x,y;
}b[200];
int cnt;
void print(void){for(int i=1;i<=9;i++){for(int j=1;j<=9;j++){cout<<a[i][j]<<" ";}cout<<endl;}
}
void dfs(int deep){if(deep>cnt){print();return ;}else{for(int i=1;i<=9;i++){if(lie[b[deep].y][i]==0&&hang[b[deep].x][i]==0&&ck[biao[b[deep].x][b[deep].y]][i]==0){lie[b[deep].y][i]=1;a[b[deep].x][b[deep].y]=i;hang[b[deep].x][i]=1;ck[biao[b[deep].x][b[deep].y]][i]=1;dfs(deep+1);lie[b[deep].y][i]=0;hang[b[deep].x][i]=0;ck[biao[b[deep].x][b[deep].y]][i]=0;}}}
}
int main(){for(int i=1;i<=9;i++){for(int j=1;j<=9;j++){cin>>a[i][j];if(a[i][j]!=0){lie[j][a[i][j]]=1;hang[i][a[i][j]]=1;ck[biao[i][j]][a[i][j]]=1;}else{b[++cnt].x=i;b[cnt].y=j;}}}dfs(1);
}

值得注意的,我们其实可以三个判断容器排个序,选出约束条件最多的先枚举,这样虽然复杂度还是一样,但是按照这个顺序就可以更快的确定约束条件多的从而减少不必要的递归次数。

我们可以举个例子:

接题:

下面为分析:

我们写出4与7的组合然后分段计算即可,下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
long long l,r;
long long a[7000];
int cnt;
bool cmp(long long a,long long b){return a<b;
}
void dfs(int deep){if(deep>500000000000LL) return ;a[cnt++]=deep;dfs(10*deep+4);dfs(10*deep+7);
}
signed main(){cin>>l>>r;dfs(0);sort(a+1,a+cnt,cmp);int l1=lower_bound(a+1,a+cnt,l)-a;int r1=lower_bound(a+1,a+cnt,r)-a;long long sum=0;if(l1!=r1){sum+=(a[l1]-l+1)*a[l1];for(int i=l1+1;i<=r1-1;i++){sum+=(a[i]-a[i-1])*a[i];}sum+=(r-a[r1-1])*a[r1];}else{sum=a[r1]*(r-l+1);}cout<<sum;
}

看道有趣的题:

可以用并查集,最后判断与下表面连的点与上表面连的点是否在同一个集合,这里采用BFS,先把与上表面相连的点放队里,在判断与他们相连的点,下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int t,n,h,r,b[1010];
struct node{int x,y,z;
}a[1010];
int check(node a,node b){if(pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2)<=4*pow(r,2)){return 1;}return 0;
}
int main(){cin>>t;while(t--){memset(b,0,sizeof(b));queue<node> q;int f=0;scanf("%d%d%d",&n,&h,&r);for(int i=1;i<=n;i++){scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);if(r+a[i].z>=h){q.push(a[i]);b[i]=1;}}while(!q.empty()){node s=q.front();q.pop();if(s.z-r<=0){f=1;break;}for(int i=1;i<=n;i++){if(b[i]==0&&check(a[i],s)==1){q.push(a[i]);b[i]=1;}}}if(f) cout<<"Yes"<<endl;else cout<<"No"<<endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450453.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024美赛A题七鳃鳗种群复杂系统动力学模型完整成品论文和代码

经过不懈的努力&#xff0c;2024美赛A题完整成品论文和代码已完成&#xff0c;代码为A题全部4问的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1七鳃鳗种群竞争模型的建立和求解、问题2种群优势劣势评估模型的建立…

Spring 事务原理总结三

今天这篇文章&#xff0c;我想梳理一下Spring事务用到的几个核心组件。这些核心组件是我们理解Spring事务原理的基础。通过它们我们可以体会学习一下Spring设计者设计Spring事务时的基本思路。这些组件是&#xff1a;TransactionInfo、TransactionStatus、TransactionManager、…

数学建模比赛期间,网上的各种思路靠谱吗

美赛第二天&#xff0c;很多人已经撑不住了。 从昨天起网上就那么多“思路”、“指导”、“代做”、“成品论文”&#xff0c;有免费的&#xff0c;也有收钱的。 有人说那些思路都是滥竽充数&#xff0c;纯坑钱浪费时间 有人说自己啥都不会&#xff0c;看那些思路就有启发 有…

Pandas进阶--map映射,分组聚合和透视pivot_table详解

文章目录 1.Pandas的map映射&#xff08;1&#xff09;映射&#xff08;2&#xff09;map充当运算工具 2.数据分组和透视&#xff08;1&#xff09;分组统计 - groupby功能 是pandas最重要的功能&#xff08;2&#xff09;聚合agg 3.透视表pivot_table&#xff08;1&#xff09…

2024 年 11 款值得收藏的 iPhone 数据恢复软件和应用

数据丢失是任何人都无法承受的&#xff0c;因为它对每个人都至关重要。但是数据丢失的原因有很多&#xff0c;一些常见的原因是数据意外删除、设备被盗、iOS 越狱、硬件损坏、病毒感染等。我们列出了 iOS 的顶级恢复工具&#xff0c;其中将帮助您方便地恢复数据。 这是 11 款最…

仰暮计划|“每次他们吃饭,出来散步,都是背着枪,枪都是装满子弹上好膛,时刻准备着作战和反击”

20世纪70年代中叶&#xff0c;越南结束抗美战争、实现国家统一后&#xff0c;把中国视为“头号敌人”&#xff0c;中越关系急剧恶化&#xff0c;中国边疆的和平、安定和人民的生命财产受到严重威胁。在此情况下&#xff0c;1979年2月17日&#xff0c;遵照中央军委命令&#xff…

三门问题(Python运算蒙提霍尔问题)

三门问题 文章目录 三门问题1.简介2.问题3.解答3.1 概率思维3.2 逆向思维3.3 推理思维3.4 代码验证 1.简介 蒙提霍尔问题&#xff08;英文&#xff1a;Monty Hall problem&#xff09;&#xff0c;亦称为蒙特霍问题、山羊问题或三门问题&#xff0c;是一个源自博弈论的数学游戏…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中&#xff0c;不可避免需要上线&#xff1b;上线对应着部署&#xff0c;或者升级部署&#xff1b;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统&#xff0c;然后部署新系统&#xff0c;之后需要对新系统进行全面的功能测试&#xf…

EasyX图形库学习(二)

目录 一、文字绘制函数 settextstyle 设置当前文字样式。 outtextxy 在指定位置输出字符串。 ​编辑 但如果直接使用,可能有以下报错&#xff1a; 三种解决方案&#xff1a; 将一个int类型的分数,输出到图形界面上 如果直接使用&#xff1a; 会把score输入进去根据A…

【深度学习: 计算机视觉】如何改进计算机视觉数据集

【深度学习&#xff1a; 计算机视觉】如何改进计算机视觉数据集 训练模型并评估性能确定数据集需要改进的原因和位置收集或创建新的图像或视频数据重新训练机器学习模型并重新评估&#xff0c;直到达到所需的性能标准 机器学习算法需要大量数据集来训练、提高性能并生成组织所需…

【Langchain+Streamlit】打造一个旅游问答AI

利用LangchainStreamlit打造一个交互简单的旅游问答AI机器人&#xff0c;如果你有openai账号,可以按照如下的网址直接体验&#xff0c;如果你没有的话可以站内私信博主要一下临时key体验一下&#xff1a; 产品使用传送门—— http://101.33.225.241:8501/ 这里有演示效果和代码…

简单几步,借助Aapose.Cells将 Excel 工作表拆分为文件

近年来&#xff0c;Excel 文件已成为无数企业数据管理的支柱。然而&#xff0c;管理大型 Excel 文件可能是一项艰巨的任务&#xff0c;尤其是在高效共享和处理数据时。为了应对这一挑战&#xff0c;大型 Excel 工作簿被拆分为较小的工作簿以增强电子表格管理。Aspose提供了这样…