记忆化搜索

  1. #include<algorithm>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<cstdio>
  6. #include<cmath>
  7. #include<queue>
  8. using namespace std;
  9.  
  10. typedef long long LL;
  11.  
  12. #define INF 0x7fffffff
  13. #define N 710
  14.  
  15. int n,m;
  16. int aa,bb,cc,dd;
  17.  
  18. int xx[4]={0,0,1,-1},
  19. yy[4]={1,-1,0,0};
  20.  
  21. int a[N][N],f[N][N];
  22.  
  23. char ch[2];
  24.  
  25. bool v[N][N];
  26. int read()
  27. {
  28. int x=0,f=1;char ch=getchar();
  29. while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
  30. while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
  31. return x*f;
  32. }
  33. void change(int x,int y,int val)
  34. {
  35. a[x][y]=val;
  36. }
  37.  
  38. void mark(int aa,int bb,int cc,int dd,bool f)
  39. {
  40. for (int i=aa;i<=bb;i++)
  41. for (int j=cc;j<=dd;j++)
  42. v[i][j]=f;
  43. }
  44.  
  45. int dfs(int x,int y)
  46. {
  47. if (v[x][y])
  48. return -INF;
  49. if (f[x][y]!=-1)
  50. return f[x][y];
  51. f[x][y]=1;
  52. for (int i=0;i<4;i++)
  53. {
  54. int tx=x+xx[i],
  55. ty=y+yy[i];
  56. if (tx<1 || ty<1 || tx>n || ty>n)
  57. continue;
  58. if (a[x][y]>a[tx][ty])
  59. f[x][y]=max(f[x][y],dfs(tx,ty)+1);
  60. }
  61. return f[x][y];
  62. }
  63.  
  64. int main()
  65. {
  66. scanf("%d",&n);
  67. for (int i=1;i<=n;i++)
  68. for (int j=1;j<=n;j++)
  69. scanf("%d",&a[i][j]);
  70. scanf("%d",&m);
  71. while (m--)
  72. {
  73. scanf("%s",ch);
  74. if (ch[0]=='C')
  75. {
  76. scanf("%d%d%d",&aa,&bb,&cc);
  77. change(aa,bb,cc);
  78. }
  79. if (ch[0]=='S')
  80. {
  81. scanf("%d%d%d%d",&aa,&cc,&bb,&dd);
  82. mark(aa,bb,cc,dd,1);
  83. }
  84. if (ch[0]=='B')
  85. {
  86. scanf("%d%d%d%d",&aa,&cc,&bb,&dd);
  87. mark(aa,bb,cc,dd,0);
  88. }
  89. if (ch[0]=='Q')
  90. {
  91. int maxn=0;
  92. memset(f,-1,sizeof(f));
  93. for (int j=1;j<=n;j++)
  94. for (int k=1;k<=n;k++)
  95. maxn=max(maxn,dfs(j,k));
  96. printf("%d\n",maxn);
  97. }
  98. }
  99. return 0;
  100. }

  

【bzoj3208】花神的秒题计划Ⅰ的更多相关文章

  1. bzoj3208: 花神的秒题计划Ⅰ

    3208: 花神的秒题计划Ⅰ Time Limit: 16 Sec  Memory Limit: 128 MBSubmit: 323  Solved: 211[Submit][Status] Desc ...

  2. BZOJ3208:花神的秒题计划Ⅰ(记忆化搜索DP)

    Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题……   描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区 ...

  3. 【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ

    暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #de ...

  4. bzoj 3208 花神的秒题计划I

    bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...

  5. BZOJ-3208|记忆化搜索-花神的秒题计划Ⅰ

    背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目. 我 ...

  6. bzoj3208:花神的秒题计划I

    思路:因为Q.S.B操作总和不超过100,因此怎么暴力怎么写....当然记忆化搜索还是要的 #include<cstdio> #include<iostream> #inclu ...

  7. BZOJ 3208: 花神的秒题计划Ⅰ

    这就是一道滑雪嘛= = 所有操作都爆力,求路径就dp,完了 CODE: #include<cstdio>#include<iostream>#include<algori ...

  8. bzoj 前100题计划

    bzoj前100题计划 xz布置的巨大的坑.. 有空填题解... 1002 轮状病毒 用python手动matrixtree打表. #include<bits/stdc++.h> #def ...

  9. Codeforces刷题计划

    Codeforces刷题计划 已完成:-- / -- [Codeforces370E]370E - Summer Reading:构造:(给定某些数,在空白处填数,要求不下降,并且相邻差值<=1 ...

随机推荐

  1. Server.MapPath() 用法

    Server.MapPath() ./当前目录/网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot   应用程序虚拟目录为E:\wwwroot\company 浏览的页 ...

  2. python清除字符串中无用字符

    将列表val_list中包含的非法字符去掉,illegal_char是非法字符列表 def clear(): illegal_char = [' ','#','%','_','@'] tmp_list ...

  3. uLua-案例学习-API

    LuaState.Start()初始化吧 LuaState.AddSearchPath(string fullPath)增加搜索路径,这样在执行lua文件时就不需要输入全路径,类似环境变量path. ...

  4. MapReduce架构与执行流程

    一.MapReduce是用于解决什么问题的? 每一种技术的出现都是用来解决实际问题的,否则必将是昙花一现,那么MapReduce是用来解决什么实际的业务呢? 首先来看一下MapReduce官方定义: ...

  5. jquery 修改input输入框的 readOnly属性 && input输入框隐藏

    html的代码 <div class="control-group"> <label class="control-label required&quo ...

  6. //……关于promise

    什么是promise? promise 翻译成中文的意思是 "承诺" ,一个承诺说出去了说明他是进行中的,承诺兑现了代表成功,没有兑现代表失败了. promise 对象的状态一旦发 ...

  7. SQLAlchemy(1):单表操作

    SQLAlchemy 是一个 ORM框架:类对应表,类中的字段对应表中的列,类的对象对应表的一条记录:作用:帮助我们使用类和对象快速实现数据库操作操作数据库的方式: 1. 原生SQL - pymysq ...

  8. BFS简单迷宫

    常见迷宫: 输入迷宫 启点 终点 然后求最短路径 BFS例题 用dist[][]数组来记录 启点到每个点的最短路径 #include <iostream> #include <fst ...

  9. android开发里跳过的坑-AS导入NDK工程提示错误 No such property: sdkHandler for class: com.android.build.gradle.LibraryPlugin

    接到一个NDK工程需要调试,导入后发现总是提示错误 Error:(37, 1) A problem occurred evaluating project ':libuvccamera'.> N ...

  10. Thinkphp5.0 的Db操作

    Thinkphp5.0 的Db操作 连接操作: <?php namespace app\index\controller; use think\Controller; use think\Db; ...