【JZOJ4901】【NOIP2016提高A组集训第18场11.17】矩阵
题目描述
他是一名普通的农电工,他以一颗无私奉献的爱岗敬业之心,刻苦钻研业务,以娴熟的技术、热情周到的服务赢得了广大客户的尊敬和赞美。他就是老百姓称为“李电”的李春来。
众所周知,李电很喜欢YY。一天,他又YY 了奇怪的东西。他假设他自己成了神,然后他说:“出来吧,矩阵。”然后一个N _M 的矩阵从天而降。他为了不要让矩阵太大而使得自己眼花缭乱,所以他将M 固定在了3。但是,一天之后,他想继续他之前的YY,继续玩他的矩阵,但是他的记忆力太差了,所以他不记得他原来的矩阵长得什么样,所幸的是他昨天记录下了矩阵中每行每列的和,还有矩阵的每项都是非负整数。所以他想知道满足这样条件的矩阵总共有多少种。
数据范围
对于20% 的数据,满足n <= 3,0<=a,b,c,s_i<=10
对于40% 的数据,满足n<=10,0<=a,b,c,s_i<=20
对于60% 的数据,满足n<=40,0<=a,b,c,s_i<=40
对于100% 的数据,满足n<=125,0<=a,b,c,s_i<=125
=w=
设f[i][j][k]表示,第i行中第一列填个j,第二列中填个k。
f[i][j][k]=∑f[i−1][j−a][k−b]并且满足a+b<=s[i]。
然后咧,这个是O(n5)的。
考虑一个第i行:
根据转移方程,f[i][j][k]是由图中这个黑色的等腰直角三角形转移过来的。
那么考虑维护这个等腰直角三角形:
黑色等腰直角三角形=红色长方形-(黄色等腰直角三角形-青绿色等腰直角三角形)
显然矩形前缀和以及腰所在的直线在x轴的等腰直角三角形前缀和容易维护。
时间复杂度为O(n3)。
代码
Const
maxn=135;
mo=100000000000000000;
Var
n,i,j,k,l,o:longint;
m1,m2,m3:longint;
f:array[0..maxn,0..maxn,0..maxn] of int64;
a,sum:array[0..maxn] of longint;
Function max(a,b:longint):longint;
begin
if (a>b) then exit(a);
exit(b);
end;
Begin
assign(input,'mat.in');reset(input);
assign(output,'mat.out');rewrite(output);
readlN(n);
readlN(m1,m2,m3);
for i:=1 to n do
begin
read(a[i]);
sum[i]:=sum[i-1]+a[i];
end;
if (sum[n]>m1+m2+m3) or (sum[n]<m1+m2+m3) then
begin
writeln(0);
end
else
begin
f[0][0][0]:=1;
for i:=1 to n do
begin
for j:=0 to m1 do
for k:=0 to m2 do
begin
if (sum[i]<j+k) then break;
if (sum[i]-j-k>m3) then continue;
for l:=0 to j do
for o:=max(0,j+k-a[i]-l) to k do
begin
if (sum[i]-j-k>=sum[i-1]-l-o) then
begin
f[i][j][k]:=(f[i][j][k]+f[i-1][l][o]) mod mo;
end;
end;
end;
end;
writeln(f[n][m1][m2]);
end;
close(input);close(output);
End.
=o=
当一个f[i]从f[i-1]转移过来时,可以画个平面直角坐标系,看看要维护的是什么。
有必要的话,建立空间直角坐标系。
【JZOJ4901】【NOIP2016提高A组集训第18场11.17】矩阵的更多相关文章
- JZOJ 【NOIP2016提高A组集训第16场11.15】兔子
JZOJ [NOIP2016提高A组集训第16场11.15]兔子 题目 Description 在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝.更特殊地是,至多只有一个兔子窝有3 ...
- JZOJ 【NOIP2016提高A组集训第16场11.15】SJR的直线
JZOJ [NOIP2016提高A组集训第16场11.15]SJR的直线 题目 Description Input Output Sample Input 6 0 1 0 -5 3 0 -5 -2 2 ...
- 【NOIP2016提高A组集训第4场11.1】平衡的子集
题目 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 分析 如果暴力枚举每个人被分到哪 ...
- 【JZOJ4846】【NOIP2016提高A组集训第5场11.2】行走
题目描述 数据范围 对于70%的数据保证 n <= 1000 对于100%的数据保证 n,q <= 10^5,c_i,v_i <= 10^{18} 保证每次修改后的边权小于等于原来的 ...
- 【JZOJ4841】【NOIP2016提高A组集训第4场11.1】平衡的子集
题目描述 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 数据范围 40%的数据满足: ...
- 【NOIP2016提高A组集训第14场11.12】随机游走
题目 YJC最近在学习图的有关知识.今天,他遇到了这么一个概念:随机游走.随机游走指每次从相邻的点中随机选一个走过去,重复这样的过程若干次.YJC很聪明,他很快就学会了怎么跑随机游走.为了检验自己是不 ...
- 【NOIP2016提高A组集训第13场11.11】最大匹配
题目 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边. 图的"匹配"是指这个图的一个边集,里面的边两两不存在公 ...
- 【NOIP2016提高A组集训第14场11.12】随机游走——期望+树形DP
好久没有写过题解了--现在感觉以前的题解弱爆了,还有这么多访问量-- 没有考虑别人的感受,没有放描述.代码,题解也写得歪歪扭扭. 并且我要强烈谴责某些写题解的代码不打注释的人,像天书那样,不是写给普通 ...
- 【JZOJ4895】【NOIP2016提高A组集训第16场11.15】三部曲
=v= 因为外来的入侵,国王决定在某些城市加派士兵.所有城市初始士兵数量为0.当城市 被加派了k名士兵时.城市i的所有子城市需要被加派k+1名士兵.这些子城市的所有子城市需要被加派k+2名士兵.以此类 ...
随机推荐
- jaxFileUpload插件异步上传图片
第一步:引入jquery文件和jaxFileUpload文件 文件位置:https://pan.baidu.com/s/1jHEyIyy 第二步,前端: <div class="for ...
- webpack 处理图片文件
1. 安装 file-loader html-loader npm install file-loader html-loader --save-dev 其中html-loader生效需配合 html ...
- DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能
跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步 ...
- Windows下shell神器
想找一个可以在Windows平台玩命令行的东西,不想装虚拟机搞linux,所以找到两个神器 如何升级Babun中的Git Babun中默认已经集成Git,只是有可能不是最新的版本 如果只是更新Babu ...
- LeetCode简单算法之分割平衡字符串 #1221
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的. 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串. 返回可以通过分割得到的平衡字符串的最大数量. 示例 1: 输入:s = ...
- 查看JDK的安装路径 和 安装版本
查看JDK的安装路径: 打开 运行,输入 cmd . 输入: java -verbose (ps:java后面必须敲一个空白格) 得到下图: 最后的两行, ...
- 使用MySQL会话变量实现窗口函数
一.MySQL窗口函数 (1) 序号函数 row_number()在相等的两条记录上随机排序,但序号按照1.2递增,然后后面的序号继续递增为3,中间不会产生序号间隙: rank()/dense_ran ...
- Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka
自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作<Spring Cloud Alibaba迁移指南>系列文章,向开发者提供更多 ...
- loj6229 这是一道简单的数学题
https://loj.ac/problem/6229 题解:https://blog.csdn.net/Vectorxj/article/details/79094659 套路推式子,杜教筛,证明复 ...
- js图片碎片效果(移动端也适用)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...