洛谷 2484 [SDOI2011]打地鼠

【题解】
n^6的做法很好想,然而这样复杂度不对。。
然后我们可以发现R和C可以分开求,这样复杂度降到了n^4. 使用树状数组可以把复杂度降到n^3logn,可以顺利通过。
#include<cstdio>
#include<algorithm>
#define N 1010
#define rg register
#define lowbit (x&-x)
using namespace std;
int n,m,r,c,ans,a[N][N],b[N],t[N];
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
inline void add(int x,int y){
for(;x<=n;x+=lowbit) t[x]+=y;
}
inline int query(int x){
int ret=; for(;x;x-=lowbit) ret+=t[x]; return ret;
}
inline bool check1(int len){
for(rg int j=;j<=n;j++){
for(rg int i=;i<=m;i++) b[i]=a[j][i];
for(rg int i=;i<=m-len+;i++){
if(b[i]<) return ;
for(rg int k=i+;k<=i+len-;k++) b[k]-=b[i]; b[i]=;
}
for(rg int i=m-len+;i<=m;i++) if(b[i]!=) return ;
// for(rg int i=1;i<=m;i++) printf("%d ",b[i]); puts("");
}
return ;
}
inline bool check2(int len){
for(rg int j=;j<=m;j++){
for(rg int i=;i<=n;i++) b[i]=a[i][j];
for(rg int i=;i<=n-len+;i++){
if(b[i]<) return ;
for(rg int k=i+;k<=i+len-;k++) b[k]-=b[i]; b[i]=;
}
for(rg int i=n-len+;i<=n;i++) if(b[i]!=) return ;
// for(rg int i=1;i<=m;i++) printf("%d ",b[i]); puts("");
}
return ;
}
int main(){
n=read(); m=read();
for(rg int i=;i<=n;i++)
for(rg int j=;j<=m;j++) a[i][j]=read(),ans+=a[i][j];
for(rg int i=m;i>=;i--) if(check1(i)){
c=i; break;
}
for(rg int i=n;i>=;i--) if(check2(i)){
r=i; break;
}
printf("%d\n",ans/r/c);
return ;
}
洛谷 2484 [SDOI2011]打地鼠的更多相关文章
- 洛谷P2484 [SDOI2011]打地鼠
P2484 [SDOI2011]打地鼠 题目描述 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多 ...
- [洛谷P2491] [SDOI2011]消防
洛谷题目链接:[SDOI2011]消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超 ...
- BZOJ2243 洛谷2486 [SDOI2011]染色 树链剖分
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2243 题目传送门 - 洛谷2486 题意概括 一棵树,共n个节点. 让你支持以下两种操作,共m次操 ...
- 洛谷 P2495 [SDOI2011]消耗战(虚树,dp)
题面 洛谷 题解 虚树+dp 关于虚树 了解一下 具体实现 inline void insert(int x) { if (top == 1) {s[++top] = x; return ;} int ...
- 洛谷 P2486 [SDOI2011]染色/bzoj 2243: [SDOI2011]染色 解题报告
[SDOI2011]染色 题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同 ...
- 洛谷 P2485 [SDOI2011]计算器 解题报告
P2485 [SDOI2011]计算器 题目描述 你被要求设计一个计算器完成以下三项任务: 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最 ...
- 洛谷P2495 [SDOI2011]消耗战(虚树dp)
P2495 [SDOI2011]消耗战 题目链接 题解: 虚树\(dp\)入门题吧.虚树的核心思想其实就是每次只保留关键点,因为关键点的dfs序的相对大小顺序和原来的树中结点dfs序的相对大小顺序都是 ...
- 洛谷 P2486 [SDOI2011]染色 树链剖分
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例: 输出样例: 说明 思路 PushDown与Update Q AC代码 总结与拓展 题面 题目链接 P2486 ...
- ●洛谷P2495 [SDOI2011]消耗战
题链: https://www.luogu.org/problemnew/show/P2495题解: 虚树入门,树形dp 推荐博客:http://blog.csdn.net/lych_cys/arti ...
随机推荐
- Ubuntu 14.04 台式机锐捷使用:
1.解压文件:RG_Supplicant_For_Linux_V1.31.zip2.sudo chmod -R 777 rjsupplicant3.进入文件夹(./rjsupplicant.sh -a ...
- 15.extjs tabPanel的用法
转自:https://blog.csdn.net/mezhaha/article/details/78878894 本文导读:TabPanel继承于Ext.Panel,Ext.TabPanel就是有选 ...
- 一句powershell调用mimikatz抓密码
mimikatz神器大家都知道吧,可以抓取系统内的明文密码,但是平时我们测试的时候需要把mimikatz的几个文件上传到目标系统上面,然后再手工执行几个命令才能搞定,今天无意访问一个大神的博客,发现其 ...
- PCB 漏加阻抗条的臆想(转)
阻抗条,我对你是有感情的,这你一定要相信我! 否则,不会在之前的每一次拼板,都不忘拥你入Panel之怀. 自做CAM开始,已记不清我们曾有多少次不期而遇, 我们一同迎接朝阳,送走晚霞,凝望窗外如洗的月 ...
- BACnet开发资料与调试工具
一.开发资料 1.认识BACnet协议 2.BACnet网络讲义: 链接:https://pan.baidu.com/s/1A6OOUxvJe1zIYbockqTEsQ提取码:wz49 二.调试工具 ...
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...
- ACM_Hailstone HOTPO
Hailstone HOTPO Time Limit: 2000/1000ms (Java/Others) Problem Description: The hailstone sequence is ...
- magento “Model collection resource name is not defined” 错误
问题出现于使用Grid时,解决方案.在使用的Model处添加 public function _construct() { parent::_construct(); $this->_init( ...
- web api 二
接着上一回说,上回说到,web api有几种访问方式,具体有几种,我还真没去研究过,但是这里打算从get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/date ...
- Android内存管理(15)SparseArray系列代替HashMap系列
参考: https://liuzhichao.com/p/832.html http://www.2cto.com/kf/201311/255640.html 1,简介: SparseArray是an ...