题目分析:

对于向上取整我们总有,$\lceil \frac{\lceil \frac{n}{a} \rceil}{b} \rceil = \lceil \frac{n}{a*b} \rceil$这个不难想到。

然后朴素的dp很容易想到,用上面的式子优化一下就行了。

代码:

 // luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std; const int mod = 1e9+; int f[][];
int a[][];
int rem[],pep[];
int n,m,k,num; int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;i++) for(int j=;j<=m;j++) scanf("%d",&a[i][j]);
int lst = ;
for(int i=;i<=k;i++){
int now = k/i + (k%i != );
if(now != lst) rem[++num] = i,pep[now] = num;
lst = now;
}
f[][] = ;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
for(int ku=num;ku>=;ku--){
if(!f[j][ku] && !f[j-][ku]) continue;
int dem = f[j][ku];
f[j][ku] = ;
int ham = rem[ku];
if(1ll*ham*a[i][j] >= k) ham = k;
else ham = a[i][j]*ham;
ham = pep[k/ham+(k%ham!=)];
f[j][ham] += dem; if(f[j][ham] >= mod) f[j][ham] -= mod;
f[j][ham] += f[j-][ku]; if(f[j][ham] >= mod) f[j][ham]-=mod;
}
}
}
printf("%d\n",f[m][num]);
return ;
}

最新文章

  1. SpringMVC 文件上传
  2. linux 学习笔记3
  3. C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
  4. 并行计算vs分布式计算
  5. VC++ 列表控件的使用方法
  6. Drupal 实战
  7. MySQL之乱码问题解决详解
  8. [CSS 混合模式]——mix-blend-mode/background-blend-mode简介
  9. LeetCode &amp; Q119-Pascal&#39;s Triangle II-Easy
  10. DDT驱动selenium自动化测试
  11. 智能化脚本autoit v3的简单了解
  12. Tarjan算法【强连通分量】
  13. python练习题-day11
  14. Web版记账本开发记录(六)
  15. JAVA基础——时间Date类型转换
  16. linux--- sort,uniq,cut,wc命令
  17. (转)转一份在 51testing 上的讨论——如何测试一个门户网站是否可以支持10万用户同时在线?
  18. jQuery 1
  19. how to build jdk 9 source code
  20. pandas绘图总结

热门文章

  1. Python Django使用HttpResponse返回图片并显示
  2. Tosca 添加插件或者是扩展功能,把页面上某块内容识别成table
  3. macOS: mac下配置charles来抓取http请求
  4. 002 docker基本的命令
  5. Docker 容器日志分析
  6. o2s【我】
  7. Django 将APP存储至统一目录
  8. Egret中图片颜色的改变,颜色矩阵
  9. SQL语句中exists/not exists的用法分析
  10. Apache调优(一)