http://acm.hdu.edu.cn/showproblem.php?pid=4801

状态和生成状态的过程处理好了,这个题就是简单的搜索题了==

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <map>
  7. #include <stack>
  8. #include <string>
  9. #include <ctime>
  10. #include <queue>
  11. #define mem0(a) memset(a, 0, sizeof(a))
  12. #define mem(a, b) memset(a, b, sizeof(a))
  13. #define lson l, m, rt << 1
  14. #define rson m + 1, r, rt << 1 | 1
  15. #define eps 0.0000001
  16. #define lowbit(x) ((x) & -(x))
  17. #define memc(a, b) memcpy(a, b, sizeof(b))
  18. #define x_x(a) ((a) * (a))
  19. #define LL long long
  20. #define DB double
  21. #define pi 3.14159265359
  22. #define MD 10000007
  23. #define INF (int)1e9
  24. #define max(a, b) ((a) > (b)? (a) : (b))
  25. using namespace std;
  26. int arr[][] = {
  27. {, , , , , , , , , , , }, {, , , , , , , , , , , },
  28. {, , , , , , , , , , , }, {, , , , , , , , , , , },
  29. {, , , , , , , , , , , }, {, , , , , , , , , , , },
  30. };
  31. int arr2[][] = {{, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }};
  32. int n, ans;
  33. struct Node {
  34. int a[];
  35. void inp() {
  36. for(int i = ; i < ; i++) {
  37. scanf("%d", a + i);
  38. }
  39. }
  40. };
  41. Node doit(Node state, int arr[])
  42. {
  43. Node tmp = state;
  44. for(int i = ; i < ; i++) state.a[arr[i]] = tmp.a[arr[(i + ) % ]];//转两格
  45. for(int i = ; i < ; i++) state.a[arr[i + ]] = tmp.a[arr[(i + ) % + ]];//转一格,这里想都没想写成了走两格,wa了无数次,写搜 索题一定要细心啊
  46. return state;
  47. }
  48. int getAns(Node state)
  49. {
  50. int ans = ;
  51. for(int i = ; i < ; i ++) {
  52. int F = ;
  53. for(int j = ; j < ; j++) {
  54. if(state.a[arr2[i][j]] != state.a[arr2[i][j - ]]) {
  55. F = ;
  56. break;
  57. }
  58. }
  59. ans += F;
  60. }
  61. return ans;
  62. }
  63.  
  64. void dfs(int k, Node state)
  65. {
  66. if(k > n) return;
  67. for(int i = ; i < ; i++) {
  68. Node newState = doit(state, arr[i]);
  69. ans = max(ans, getAns(newState));
  70. dfs(k + , newState);
  71. }
  72. }
  73. int main()
  74. {
  75. //freopen("input.txt", "r", stdin);
  76. //freopen("output.txt", "w", stdout);
  77. while(cin>> n) {
  78. Node state;
  79. state.inp();
  80. ans = getAns(state);
  81. dfs(, state);
  82. cout<< ans<< endl;
  83. }
  84. return ;
  85. }

[hdu4801]搜索的更多相关文章

  1. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  2. solr_架构案例【京东站内搜索】(附程序源代码)

    注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...

  3. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  4. HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置

    在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...

  5. bzoj1079--记忆化搜索

    题目大意:有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木块涂相同色显得 ...

  6. bzoj3208--记忆化搜索

    题目大意: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目.    我们可以把风景区看作一个n*n的地图,每个点有它的初始高度,滑雪只能从高处往低处滑[严格大于] ...

  7. Android中通过ActionBar为标题栏添加搜索以及分享视窗

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  8. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  9. Go语言实战 - 我需要站内搜索

    山坡网的用户抱怨"为什么搜索'二鬼子李富贵'找不到'二鬼子汉奸李富贵'?我用百度搜都能找到." 当时我就滴汗了,用户说的有道理,应该要能搜索到. 之前的方案很简单,用户输入的字串会 ...

随机推荐

  1. Ubuntu搭建Redis 集群

    1.源码编译 查看需要下载版本:http://download.redis.io/releases/ 本人保存路径:/usr/local/soft/ wget http://download.redi ...

  2. python3+selenium3自动化1——元素定位

    1.selenium的webdriver提供了八种基本的元素定位方法 打开浏览器 driver = webdriver.Chrome() driver.get('https://www.baidu.c ...

  3. Python 类学习的一些Tips

    这里不详细介绍类,只总结一些小萌新在学习python 类时会有的一些疑点. 类的私有性 在python中,属性和方法的访问权限只有两种,公开的,和私有的.在给属性命名时用两个“__”下划线作为开头,就 ...

  4. TensorFlow-keras 100分类

    import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' from tensorflow.python.keras.datasets import cifa ...

  5. Win7+Linux双系统,完美解决删除Linux后出现的任何问题!

    首先,进入到Win7,安装MiniTool Partition Wizard Home Edition删除掉Linux分区, 点Yes 然后选中 这里选中这个,重写MBR,开机神马grub神马问题都没 ...

  6. 使用 Python 控制自己的电脑和键盘是一种什么样的体验?python学习的正确姿势

    可能有时候你需要在电脑做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己爱干嘛干嘛去,有点 “按键精灵” 的意思,是不是感觉有点爽呢? 那么 ...

  7. 批量查询PDF文本并导出结果的小工具

    效果: 批量查询指定关键字 & 指定目录下PDF文件中的文本,并导出文件路径和关键字所在文本行. 下载: 链接: https://pan.baidu.com/s/1sK2OMMgGX26l7P ...

  8. MySql id 设定为主键不自增后,再给 sort 字段增加自增属性

    需求 id 已经被设置为主键,但是没有给它设置 自增 属性.sort 起到一个排序的作用,需要给它设置一个 自增 属性 加自增属性的前提 表中的属性没有增加自增 赋予自增属性的字段,必须带有 索引 S ...

  9. Shell中的here文档

    1.名词解释: 以下是维基百科解释: here文档[1],又称作heredoc.hereis.here-字串或here-脚本,是一种在命令行shell(如sh.csh.ksh.bash.PowerSh ...

  10. ICML2016 TUTORIAL参会分享

    本次ICML会议的tutorial安排在主会前一天.这次tutorial内容非常丰富,有微软亚研的hekaiming(已经跳去facebook)介绍深度残差网络,也有deepmind的david si ...