【BZOJ3939】Cow Hopscotch(动态开点线段树)
题意:
const mo=;
var t:array[..]of record
l,r,s:longint;
end; sum,a,dp:array[..,..]of longint;
root:array[..]of longint;
f:array[..]of longint;
n,m,i,j,s1,s2,cnt,k:longint; procedure pushup(x:longint);
var l,r:longint;
begin
l:=t[x].l; r:=t[x].r;
t[x].s:=(t[l].s+t[r].s) mod mo;
end; procedure update(var p:longint;l,r,x,v:longint);
var mid:longint;
begin
if p= then
begin
inc(cnt); p:=cnt;
end;
if l=r then
begin
t[p].s:=(t[p].s+v) mod mo; exit;
end;
mid:=(l+r)>>;
if x<=mid then update(t[p].l,l,mid,x,v)
else update(t[p].r,mid+,r,x,v);
pushup(p);
end; function query(p,l,r,x,y:longint):longint;
var mid:longint;
begin if (p=)or(x>y) then exit();
if (x<=l)and(y>=r) then exit(t[p].s);
mid:=(l+r)>>;
query:=;
if x<=mid then query:=(query+query(t[p].l,l,mid,x,y)) mod mo;
if y>mid then query:=(query+query(t[p].r,mid+,r,x,y)) mod mo;
end; begin
// assign(input,'bzoj3939.in'); reset(input);
// assign(output,'bzoj3939.out'); rewrite(output);
readln(n,m,k);
for i:= to n do
for j:= to m do read(a[i,j]); dp[,]:=;
for i:= to m do sum[,i]:=;
update(root[a[,]],,m,,); for i:= to n do
begin
for j:=m downto do
begin
s1:=sum[i-,j-];
s2:=query(root[a[i,j]],,m,,j-);
dp[i,j]:=((s1-s2) mod mo+mo) mod mo;
update(root[a[i,j]],,m,j,dp[i,j]);
end;
for j:= to m do
begin
f[j]:=(f[j-]+dp[i,j]) mod mo;
sum[i,j]:=(sum[i-,j]+f[j]) mod mo;
end;
end;
writeln(dp[n,m]);
{for i:=1 to n do
begin
for j:=1 to m do write(dp[i,j],' ');
writeln;
end; } close(input);
close(output);
end.
【BZOJ3939】Cow Hopscotch(动态开点线段树)的更多相关文章
- 【bzoj3939】[Usaco2015 Feb]Cow Hopscotch 动态开点线段树优化dp
题目描述 Just like humans enjoy playing the game of Hopscotch, Farmer John's cows have invented a varian ...
- [2016湖南长沙培训Day4][前鬼后鬼的守护 chen] (动态开点线段树+中位数 or 动规 or 贪心+堆优化)
题目大意 给定一个长度为n的正整数序列,令修改一个数的代价为修改前后两个数的绝对值之差,求用最小代价将序列转换为不减序列. 其中,n满足小于500000,序列中的正整数小于10^9 题解(引自mzx神 ...
- [bzoj 3531][SDOI2014]旅行(树链剖分+动态开点线段树)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3531 分析: 对于每个颜色(颜色<=10^5)都建立一颗线段树 什么!那么不是M ...
- 【BZOJ-4636】蒟蒻的数列 动态开点线段树 ||(离散化) + 标记永久化
4636: 蒟蒻的数列 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 247 Solved: 113[Submit][Status][Discuss ...
- codeforces 893F - Physical Education Lessons 动态开点线段树合并
https://codeforces.com/contest/893/problem/F 题意: 给一个有根树, 多次查询,每次查询对于$x$i点的子树中,距离$x$小于等于$k$的所有点中权值最小的 ...
- codeforces 915E - Physical Education Lessons 动态开点线段树
题意: 最大$10^9$的区间, $3*10^5$次区间修改,每次操作后求整个区间的和 题解: 裸的动态开点线段树,计算清楚数据范围是关键... 经过尝试 $2*10^7$会$MLE$ $10^7$会 ...
- CF915E Physical Education Lessons 动态开点线段树
题目链接 CF915E Physical Education Lessons 题解 动态开点线段树 代码 /* 动态开点线段树 */ #include<cstdio> #include&l ...
- 洛谷P3313 [SDOI2014]旅行(树链剖分 动态开节点线段树)
题意 题目链接 Sol 树链剖分板子 + 动态开节点线段树板子 #include<bits/stdc++.h> #define Pair pair<int, int> #def ...
- NOIP2017 列队——动态开点线段树
Description: Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n×m名学生,方阵的行数为 ...
- 洛谷P3120 [USACO15FEB]牛跳房子(动态开节点线段树)
题意 题目链接 Sol \(f[i][j]\)表示前\(i\)行\(j\)列的贡献,转移的时候枚举从哪里转移而来,复杂度\(O(n^4)\) 然后考虑每一行的贡献,动态开节点线段树维护一下每种颜色的答 ...
随机推荐
- logback日志异步打印
最近碰到一个问题:客户的服务器程序偶尔出现请求响应过慢的情况,通过查看日志发现RSA验证签名的代码执行超过20秒,而正常情况下只需要16毫秒. RSA证书是服务器启动就加载好的,不存在读文件慢的问题. ...
- IOS 根据身份证号码获取 年龄 生日 性别
/** 从身份证上获取年龄 18位身份证 */ -(NSString *)getIdentityCardAge:(NSString *)numberStr { NSDateFormatter *for ...
- Android中进程与线程及如何在子线程中操作UI线程
1. Android进程 一个应用程序被启动时,系统默认创建执行一个叫做"main"的线程.这个线程也是你的应用与界面工具包(android.widget和android.view ...
- DMA简介
直接存储器访问 直接存储器访问(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术.它可以让外设可以独立地直接读写系统存储器,而不需绕道中央处理器(CPU),DMA是一 ...
- http://blog.chinaunix.net/uid-9845710-id-1996675.html snmpd配置
http://blog.chinaunix.net/uid-9845710-id-1996675.html http://lihuipeng.blog.51cto.com/3064864/643960 ...
- vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...
- Tomcat7的安装与配置
Tomcat的安装及配置我曾经使用过tomcat,并实现了一个简单的servlet程序.没想到再次安装tomcat的时候用浪费了我大半天的时间.我想有必要做个总结,否则下次不知又要花费我多少时间. 1 ...
- Android(java)学习笔记158:多线程断点下载的原理(JavaSE实现)
1. 为什么需要多线程下载? 服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽 ...
- Vue之组件的生命周期
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 896. Monotonic Array@python
An array is monotonic if it is either monotone increasing or monotone decreasing. An array A is mono ...