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

一流的手机网站建设在线培训系统app

一流的手机网站建设,在线培训系统app,网站建设视频代码,佛山网站建设哪家公司好样例1输入#xff1a; 3 3 10 1 52 20 30 1 1 2 3 样例1输出#xff1a; 3 样例2输入#xff1a; 4 3 1 1 1 1 1 30 80 2 1 1 1 100 样例2输出#xff1a; 10 分析#xff1a;这道题目我们直接从(1,1)点开始进行dfs搜索即可#xff0c;但是需要注意一点的是我们搜… 样例1输入 3 3 10 1 52 20 30 1 1 2 3 样例1输出 3 样例2输入 4 3 1 1 1 1 1 30 80 2 1 1 1 100 样例2输出 10 分析这道题目我们直接从(1,1)点开始进行dfs搜索即可但是需要注意一点的是我们搜索的时候并不是沿着一条路径进行搜索而是从当前已经走过的所有点中选出一个点然后沿着不同方向去搜索这样我们就可以搜出所有的连通块每次搜出一个连通块时还需要检测剩余的部分是否是一个连通块那么检测剩余部分是否是一个连通块我们可以用并查集来实现。这样大体的步骤就实现了接下来就是剪枝了为了防止同样的状态被多次搜索我们可以用哈希优化一下随意设置一个哈希函数然后求出每个连通块对应的哈希值然后进行去重即可还有可以优化的一点就是我们每次尽可能选取值大的点进行搜索这样得到目标值的连通块内的点就会尽可能小。 需要说明的一点就是由于蓝桥原题是没有明确说明两部分都必须连通的所以也就没必要加上判断连通的那部分而且他数据中都是一笔画形成的连通块没有考虑周全所以本代码在这两方面进行了优化但会在洛谷上提交时会有一个点超时那是因为本代码充分考虑到其余部分是否连通以及连通块形状任意这两个问题。 细节见代码 #includecstdio #includeiostream #includealgorithm #includecstring #includemap #includequeue #includevector #includecmath #includeunordered_set using namespace std; typedef pairint,int PII; const int N12; const int P13331;//P用于哈希 unordered_setunsigned long longst; PII p[N*N];//存放当前已选的点 int a[N][N]; bool vis[N][N]; int fu[N*N],sum,ans,n,m; int dx[4]{0,0,1,-1},dy[4]{1,-1,0,0}; bool cmp(PII x,PII y) {return a[x.first][x.second]a[y.first][y.second]; } int find(int x) {if(fu[x]!x) return fu[x]find(fu[x]);return x; } bool check_connect(int cnt)//检查剩余的n*m-cnt个点是否连通 {for(int i1;in*m;i) fu[i]i;int tn*m-cnt;for(int i1;in;i)for(int j1;jm;j)if(!vis[i][j]){for(int k0;k4;k){int nxidx[k],nyjdy[k];if(nx1||nxn||ny1||nym) continue;if(vis[nx][ny]) continue;int fxfind((i-1)*mj),fyfind((nx-1)*mny);if(fxfy) continue;t--;fu[fx]fy;}}return t1; } bool check_exit()//检查当前连通块是否已经被搜索过是的话返回true否则返回false {unsigned long long t0; for(int i1;in;i)for(int j1;jm;j)if(vis[i][j])tt*Pi*(P-3)j*(P102);if(st.count(t)) return true;//哈希去重st.insert(t);return false; } void dfs(int s,int cnt)//s和cnt分别代表当前已经选出来的数的和及个数 {if(ssum/2){if(check_connect(cnt)) ansmin(ans,cnt);//检查其他格子是否为一个连通块 return ;}if(ssum/2||cntans) return ;//剪枝 PII next[N*N];//存放下一次搜索的点 int t0;for(int i1;icnt;i){int nowxp[i].first,nowyp[i].second;for(int j0;j4;j){int nxnowxdx[j],nynowydy[j];if(nx1||nxn||ny1||nym) continue;if(vis[nx][ny]) continue;next[t]{nx,ny};}}sort(next1,nextt1,cmp);for(int i1;it;i){if(next[i]next[i-1]) continue;p[cnt1]next[i];vis[next[i].first][next[i].second]true;if(!check_exit())//检查当前连通块是否已经被搜索过dfs(sa[next[i].first][next[i].second],cnt1);vis[next[i].first][next[i].second]false;} }int main() {cinmn;for(int i1;in;i)for(int j1;jm;j){scanf(%d,a[i][j]);suma[i][j];}if(sum1){printf(0);return 0;}ans0x3f3f3f3f;vis[1][1]true;p[1]{1,1};dfs(a[1][1],1);if(ans0x3f3f3f3f) ans0;printf(%d,ans);return 0; }
http://www.hkea.cn/news/14350593/

相关文章:

  • 江门搜狗网站推广优化代理网站平台
  • 深圳网站建设公司的外文名是我的网站模板
  • 1000个免费货源网站入口重庆定制网站开发
  • 网站信息系统做网站 阿里云和百度云哪个好
  • 做网站有哪些语言请人做网站设计的方案
  • wordpress 素锦申泽seo
  • 为什么要进行电子商务网站规划网站伪静态
  • 公司运营策划营销张家口网站seo
  • 网站建设怎么引流好看网电影网站模板
  • 安徽黄山网站建设濮阳网站网站建设
  • 四川短视频seo优化网站网站建设需要代码
  • 公司网站制作找哪家wp如何做引擎网站
  • 南宁网站建设信息推荐设计说明书模板
  • 温江网站制作做网站对服务器要求
  • 哪几个小说网站做网编拿的钱多私人做网站的流程
  • 开发网站放大文字功能怎么写嘉定房地产网站建设
  • 网站策划布局网站怎么做优化排名
  • 常德市建设局网站公司起名最吉利的字
  • 网站建设员是做什么的如何制作一个报名微信小程序
  • 网站信息系统建设admin登录网站
  • 免注册制作网站百度搜索如何去广告
  • 管庄网站建设wordpress如何设置边栏
  • 安微省城城乡建设厅网站wordpress调用最新文章模板
  • 网站注册域名查询wordpress打不开页面
  • 教育网站制作企业企业建设网站的帮助
  • 网站后台无法审核成都网站建设 今网科技
  • 网站建设营销制作设计校园网站设计与实现
  • 建设网站的颜色网站空间国外那个好
  • 怎么自建网站沈阳做手机网站的公司
  • 浙江省建设网站首页外贸网站如何换域名