BZOJ 3208: 花神的秒题计划Ⅰ
3208: 花神的秒题计划Ⅰ
Time Limit: 16 Sec Memory Limit: 128 MB
Submit: 695 Solved: 474
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
5
C 1 1 3
Q
S 1 3 5 5
S 3 1 5 5
Q
Sample Output
3
样例解释:
第一个Q路线为:25->24->23->22….->3->2
第二个Q的路线为:10->9->2
HINT
100%的数据:1<=n<=700;1<=m<=1000000;其中Q、S、B操作总和<=100;
题中所有数据不超过2*10^9
Source
原创 Memphis
[Submit][Status][Discuss]
看到数据范围都不相信自己眼睛,额,花神系列什么时候出了这么一道水题?
完完全全的暴力,每次暴力修改高度,暴力标记保护,询问就BFS一遍算答案。
1 #include <cstdio> 2 #include <cstring> 3 4 const int siz = 705; 5 6 int n, m; 7 int h[siz][siz]; 8 int v[siz][siz]; 9 int c[siz][siz]; 10 int f[siz][siz]; 11 12 const int mv[4][2] = 13 { 14 {0, +1}, 15 {0, -1}, 16 {-1, 0}, 17 {+1, 0} 18 }; 19 20 inline int path(void) 21 { 22 static int que[siz * siz][2], hd, tl; 23 24 memset(f, 0, sizeof(f)); 25 memset(c, 0, sizeof(c)); 26 27 hd = 0, tl = 0; 28 29 int ans = 0; 30 31 for (int i = 1; i <= n; ++i) 32 for (int j = 1; j <= n; ++j) 33 if (!v[i][j]) 34 { 35 for (int k = 0; k < 4; ++k) 36 { 37 int x = i + mv[k][0]; 38 int y = j + mv[k][1]; 39 40 if (x < 1 || x > n)continue; 41 if (y < 1 || y > n)continue; 42 43 if (!v[x][y] && h[x][y] > h[i][j]) 44 ++c[i][j]; 45 } 46 47 if (!c[i][j]) 48 { 49 que[tl][0] = i; 50 que[tl][1] = j; 51 f[i][j] = 1; 52 ++tl; 53 } 54 } 55 56 while (hd != tl) 57 { 58 int x = que[hd][0]; 59 int y = que[hd][1]; 60 ++hd; 61 62 if (ans < f[x][y]) 63 ans = f[x][y]; 64 65 for (int k = 0; k < 4; ++k) 66 { 67 int i = x + mv[k][0]; 68 int j = y + mv[k][1]; 69 70 if (i < 1 || i > n)continue; 71 if (j < 1 || j > n)continue; 72 73 if (!v[i][j] && h[x][y] > h[i][j]) 74 { 75 if (f[i][j] < f[x][y] + 1) 76 f[i][j] = f[x][y] + 1; 77 78 if (--c[i][j] == 0) 79 { 80 que[tl][0] = i; 81 que[tl][1] = j; 82 ++tl; 83 } 84 } 85 } 86 } 87 88 return ans; 89 } 90 91 signed main(void) 92 { 93 scanf("%d", &n); 94 95 for (int i = 1; i <= n; ++i) 96 for (int j = 1; j <= n; ++j) 97 scanf("%d", &h[i][j]); 98 99 scanf("%d", &m); 100 101 while (m--) 102 { 103 static int a, b, c, d; 104 105 static char s[5]; 106 107 scanf("%s", s); 108 109 switch(s[0]) 110 { 111 case 'Q': 112 printf("%d\n", path()); 113 break; 114 case 'C': 115 scanf("%d%d%d", &a, &b, &c); 116 h[a][b] = c; 117 break; 118 case 'S': 119 scanf("%d%d%d%d", &a, &b, &c, &d); 120 for (int i = a; i <= c; ++i) 121 for (int j = b; j <= d; ++j) 122 v[i][j] = true; 123 break; 124 case 'B': 125 scanf("%d%d%d%d", &a, &b, &c, &d); 126 for (int i = a; i <= c; ++i) 127 for (int j = b; j <= d; ++j) 128 v[i][j] = false; 129 break; 130 } 131 } 132 }
@Author: YouSiki
转载于:https://www.cnblogs.com/yousiki/p/6297460.html
BZOJ 3208: 花神的秒题计划Ⅰ相关推荐
- bzoj3208: 花神的秒题计划Ⅰ
3208: 花神的秒题计划Ⅰ Time Limit: 16 Sec Memory Limit: 128 MB Description 背景[backboard]: Memphis等一群蒟蒻出题中,花 ...
- bzoj3208 花神的秒题计划Ⅰ
Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人 ...
- 【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ
暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #de ...
- BZOJ3208花神的秒题计划
记忆化搜索 暴力模拟即可 每次保护或撤销或改变海拔就暴力修改,然后对于询问,记忆化搜索一下就好了 代码 //By AcerMo #include<cmath> #include<cs ...
- BZOJ 2135 刷题计划(贪心,求导,二分)【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2135 是 hydro 的 BZOJ ...
- BZOJ第一页刷题计划
BZOJ第一页刷题计划 已完成:67 / 90 [BZOJ1000]A+B Problem:A+B: [BZOJ1001][BeiJing2006]狼抓兔子:最小割: [BZOJ1002][FJOI2 ...
- [数位dp] bzoj 3209 花神的数论题
[数位dp] bzoj 3209 花神的数论题 题意:中文题. 思路:和普通数位dp一样,这里转换成二进制,然后记录有几个一. 统计的时候乘起来就好了. 代码: #include"cstdl ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- LeetCode LCP 12. 小张刷题计划(二分查找)
1. 题目 为了提高自己的代码能力,小张制定了 LeetCode 刷题计划,他选中了 LeetCode 题库中的 n 道题,编号从 0 到 n-1,并计划在 m 天内按照题目编号顺序刷完所有的题目(注 ...
最新文章
- 088实战 项目技术框架
- asp mysql添加数据_ASP:ado.net 实例向数据库添加数据。
- H5添加禁止缩放功能
- 11月22日云栖精选夜读:双11享Go了吗?2017阿里双11在线峰会续写科技盛宴!
- [海隆软件][方正电机]IPO,打新股中
- 开发竞赛作品展示网站上线!
- Lesson 10 The loss of the Titanic 内容鉴赏
- CausalImpact
- npm i 安装依赖 报错 npm ERR! code EINTEGRITY npm ERR! sha512-*****==.(12008 bytes) 问题处理
- 婚姻中,不去表达爱,比不爱更可怕
- PupilNet: Convolutional Neural Networks for Robust Pupil Detection
- springboot使用xxl-job
- 高质量 Go 进阶图书,它来了
- 数学黑洞6174问题
- 举例说明层次分析的三大原则_【高考压轴题分析】2014年辽宁卷压轴题
- 华为光猫HG8240的简单配置过程
- php 兼容火狐,HTML_总结CSS中火狐浏览器与IE浏览器的兼容代码,如何让你写的代码更兼容火狐 - phpStudy...
- graphpad软件百度云分享吧_还在用百度云软件?来试试这四个良心的云盘软件吧!...
- java第五章学习总结
- k8s节点状态异常思路