HDU 4619 Warm up 2 (多校)

题意:在网格里面给定了 横,竖 两种多米诺骨牌,同向的不可以覆盖,不同向的可以覆盖,问你最多去掉多少个有覆盖的多米诺,使得网格内剩余的多米诺骨牌最多

解题思路:

一.搜索  

(1),分别对横竖两种不同的多米诺建图(同一块标记),然后根据某个封闭覆盖区域的交叉搜索可得到横竖的走向次数,贪心最大可得。

(2).直接建图, 有向深搜,然后面积/2 

二,二分匹配,

解题代码:(第一种)

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <string.h>
  4 #include <stdlib.h>
  5 int map[200][200];
  6 int map1[200][200];
  7 int visit[200][200];
  8 int visit1[200][200];
  9 
 10 int suma ,sumb;
 11 
 12 int dfs(int i , int j , int sit)
 13 {
 14   // printf("%d %d %d\n",i,j,sit);
 15      if(sit == 0 )
 16        {
 17            if(visit1[i][j] ==  0 && map1[i][j] != 0  )
 18               {
 19                  visit1[i][j] = 1 ;
 20                  dfs(i,j,1);
 21               }
 22             if(visit[i+1][j] == 0 && map[i][j] == map[i+1][j])
 23              {
 24                  visit[i+1][j] = 1;
 25                  sumb += 1 ;
 26                  dfs(i+1,j,0);
 27 
 28              }
 29             else if(i > 0  && visit[i-1][j] == 0 &&map[i][j] == map[i-1][j])
 30             {
 31                   visit[i-1][j] = 1;
 32                   sumb += 1 ;
 33                   dfs(i-1,j,0);
 34 
 35             }
 36        }
 37      else
 38      {
 39          if(visit[i][j] ==  0 && map[i][j] != 0  )
 40               {
 41                  visit[i][j] = 1 ;
 42                  dfs(i,j,0);
 43               }
 44          if(visit1[i][j+1] == 0 && map1[i][j] == map1[i][j+1])
 45              {
 46                  visit1[i][j+1] = 1;
 47                  suma += 1 ;
 48                  dfs(i,j+1,1);
 49 
 50              }
 51             else if(j > 0  && visit1[i][j-1] == 0 && map1[i][j] == map1[i][j-1] )
 52             {
 53                  visit1[i][j-1] = 1;
 54                  dfs(i,j-1,1);
 55                  suma += 1 ;
 56 
 57             }
 58 
 59      }
 60 }
 61 
 62 int main()
 63 {
 64    int n , m ;
 65    while(scanf("%d %d",&n,&m) != EOF)
 66    {
 67       int sum = 0 ;
 68       if(n == 0 && m == 0)
 69         break;
 70         memset(map,0,sizeof(map));
 71         memset(visit,0,sizeof(visit));
 72         memset(map1,0,sizeof(map1));
 73         memset(visit1,0,sizeof(visit1));
 74         int a, b ;
 75       for(int i =1 ;i<= n ;i ++)
 76          {
 77             scanf("%d %d",&a,&b);
 78             map[a][b] = i ;
 79             map[a+1][b] = i ;
 80          }
 81       for(int i = 1;i <= m;i ++)
 82       {
 83           scanf("%d %d",&a,&b);
 84           map1[a][b] = i ;
 85           map1[a][b+1] = i ;
 86       }
 87       for(int i = 0 ;i <= 102; i ++)
 88         for(int j = 0; j <= 102; j ++)
 89         {
 90             if((visit[i][j] == 0 &&map[i][j]!= 0 ) || ( visit1[i][j] == 0  && map1[i][j] != 0 ))
 91             {   suma = 0 ;
 92                 sumb = 0 ;
 93 
 94                 if(visit[i][j] == 0 &&map[i][j]!= 0  )
 95                 {
 96                    visit[i][j] = 1;
 97                    dfs(i , j, 0);
 98 
 99                 }
100                 else if( visit1[i][j] == 0  && map1[i][j] != 0 )
101                 {
102                    visit1[i][j] = 1;
103                    dfs(i , j, 1);
104 
105                 }
106                // printf("%d %d\n",suma,sumb);
107                 if(suma > sumb)
108                   sum += suma ;
109                 else
110                   sum += sumb ;
111             }
112         }
113         printf("%d\n",sum);
114    }
115    return 0 ;
116 }
View Code

转载于:https://www.cnblogs.com/zyue/p/3215350.html

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

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

相关文章

工业智联网: 基本概念、关键技术与核心应用

来源&#xff1a;王飞跃科学网博客作者&#xff1a;王飞跃, 张军, 张俊, 王晓摘要&#xff1a;本文首先阐述了工业网联技术的演化过程&#xff0c;重点讨论了工业智联网产生的技术和时代背景.然后探讨了工业智联网的基本概念、内涵与应用领域。本文详细介绍了工业智联网的关键技…

KMP算法学习

kmp算法完成的任务是&#xff1a;给定两个字符串O和f&#xff0c;长度分别为n和m&#xff0c;判断f是否在O中出现&#xff0c;如果出现则返回出现的位置。常规方法是遍历a的每一个位置&#xff0c;然后从该位置开始和b进行匹配&#xff0c;但是这种方法的复杂度是O(nm)。kmp算法…

生命或可在星际间传播

来源&#xff1a;中国科学报去年&#xff0c;当一颗美式足球场大小的雪茄形天体Oumuamua进入太阳系时&#xff0c;它并非仅仅让人们第一次看到了一块星际岩石。根据一项新的研究&#xff0c;这也支持了太空岩石通过在遥远的恒星系统之间运送微生物&#xff0c;从而在星际间传播…

操作系统(二): 进程与线程

操作系统(二): 进程与线程 本章解读 进程管理是操作系统重点中的重点&#xff0c;涵盖了操作系统中大部分的知识和考点。其主要包括四部分&#xff1a;进程与线程&#xff0c;处理器调度&#xff0c;同步与互斥&#xff0c;死锁。所以我准备分四个部分来解释这四个模块。进程与…

Nature最新研究:超9000学者每5天发1篇论文,这些高产作家背后的科研圈

来源&#xff1a;悟空智能科技发论文发论文发论文……你有没有想过&#xff0c;假如你能够一周发一篇论文&#xff0c;这样坚持10年甚至20年&#xff0c;你能成为全球最高产的学者吗&#xff1f;答案可能吓你一跳&#xff1a;不能。不但不能&#xff0c;你甚至连全球前10000名都…

Android之WebView学习

WebView常用方法 WebSettings 在使用WebView前我们都要进行相关的配置&#xff0c;常见的操作如下&#xff1a; WebSettings settings mWebView.getSettings();settings.setJavaScriptEnabled(true); //支持javascriptsettings.setUseWideViewPort(true); //设置webv…

跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期

来源&#xff1a;网易智能昨日&#xff0c;特斯拉上海工厂尘埃落定。特斯拉与上海规划与国土资源管理局签订协议&#xff0c;以9.73亿人民币拿下上海临港约1297.32亩地建造汽车工厂。据悉&#xff0c;这是特斯拉在美国之外设立的首个超级工厂。根据特斯拉的规划&#xff0c;上海…

2019科学突破奖揭晓 庄小威陈志坚许晨阳上榜

来源&#xff1a;科学网10月17日&#xff0c;科学突破奖&#xff08;Breakthrough Prize&#xff09;名单揭晓。总计2200万美元的奖金分别给了婴儿死亡主要遗传因素治疗、超分辨率成像、发现一种新型电子材料以及其他重大突破。华裔科学家庄小威、陈志坚、C. Frank Bennett 、A…

Android之IPC机制

Android IPC简介 任何一个操作系统都需要有相应的IPC机制&#xff0c;Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。Android系统不仅可以使用了Binder机制来实现IPC&#xff0c;还可以使用Socket实现任意两个终端之间的通信。 IPC基础概念介绍 (1)Seriali…

HTML5与原生APP之争胜负已出?

早在HTML5技术问世之时&#xff0c;有关网络应用与原生应用谁将成为移动终端霸主的问题&#xff0c;就曾引起过广泛的争论。时至今日&#xff0c;不仅关于二者孰强孰弱的争论已然平息&#xff0c;就连备受关注的移动互联网创业公司也大多是做原生APP的&#xff0c;未曾见过HTML…

5G 产业链:基站天线和小基站爆发潜力大

来源&#xff1a;国信证券5G宏基站数的翻倍增长及技术演进带来基站天线成倍增长空间。5G关键性能指标十倍的增长需要基站数翻倍增长以支撑。5G的三个关键的效率需求包括频谱利用效率、能耗效率和成本效率。具体来说&#xff0c;5G在频谱效率、能源效率和成本效率的提升需求在十…

操作系统之死锁

死锁的概念以及产生死锁的原因 一组进程中&#xff0c;每个进程都无限等待被该组进程中另一进程所占有的资源&#xff0c;因而永远无法得到的资源&#xff0c;这种现象称为进程死锁&#xff0c;这一组进程就称为死锁进程,如果死锁发生&#xff0c;会浪费大量系统资源&#xff…

2018全球最佳品牌Top25:时代巨变的一个缩影

来源&#xff1a;资本实验室10月15日&#xff0c;希尔斯控股正式向美国破产法院申请破产保护。这一消息传出&#xff0c;即引发了全球关注。作为19世纪八十年代末以邮购业务起家的零售商&#xff0c;希尔斯百货已经历一百多年的世事变化与市场风云&#xff0c;毫无疑问是美国零…

香港2013迷你制汇节即将启幕

“制汇节是一个世界的盛事。在亚洲&#xff0c;有深圳迷你制汇节和台湾迷你制汇节。在美国&#xff0c;2013年港湾地区制汇节刚刚在5月圆满举办。来自世界各地的maker展示了他们伟大的作品并分享了他们的智慧。我们相信香港也有很多maker&#xff0c;第二届香港迷你制汇节正在开…

重磅!Gartner公布2019年十大战略科技发展趋势

来源&#xff1a;网络大数据摘要&#xff1a;10月14日至18日&#xff0c;分析师在Gartner Symposium/ITxpo 2018大会探讨了在2019年企业与组织需要探索的十大战略技术趋势(Gartner Top 10 Strategic Technology Trends 2019)。Gartner将战略性技术趋势定义为具有巨大破坏性潜力…

sixxpack破解的文章!【转】

星期天闲着没事玩游戏&#xff0c;玩游戏不能无外挂。于是百度了半天&#xff0c;找到了一个&#xff0c;看介绍貌似不错&#xff0c;就下载了下来。一看&#xff0c;竟然是用.net写的&#xff0c;下意识地Reflector了一下。发现竟是一个叫actmp的程序集。如图&#xff1a; 随…

postgres与osm初步使用

layout: post title: postgres与osm初步使用 date: 2016-9-20 categories: blog tags: [地图开发] description:地图开发 本文主要包括以下内容 postgreSQL数据库&#xff0c;用来存放地图原始数据osm2pgsql 用来将osm地图数据导入到postgreSQL  OSM数据 OpenStre…

XxIJob入门-示例

一、部署 xxlJob (一) 下载地址&#xff0c; git clone 到本地。 http://gitee.com/xuxueli0323/xxl-job https://github.com/xuxueli/xxl-job (二) 插入 xxl_job 的sql脚本&#xff1a; 在项目的 /xxl-job/doc/db/tables_xxl_job.sql &#xff0c;找到sql脚本&#xff0c…

华为数字化转型实践

来源&#xff1a;先进制造业数字化转型势在必行&#xff0c;这已成为所有企业CIO的共识。但在现实中&#xff0c;很多数字化转型计划还是陷入重重困难&#xff0c;其原因大多在于企业内部对数字化转型的认知还不够透彻。尤其是对于那些业务正处于发展和上升期的公司&#xff0c…

使用Excel VBA(快捷键)(加菜单)

将excel宏安全性调到中&#xff1a; 按altf11进入vba编辑器&#xff1a; 记住以下快捷键&#xff1a; F7 代码窗口 F4 属性窗口 ctrlR 工程资源窗口 F5 程序运行 TAb 代码缩进 SHIFTTAB 凸出 加菜单&#xff1a; 在excel表中按altf11进入代码窗口&#xff1a; 解释&#xff1a…