题面传送门
这道题的dpdpdp是很好想的,只要从上一行的可以转移的位置转移就好了,时间复杂度O(nmt)O(nmt)O(nmt),可以有808080分
接下来要优化,有两种思路
思路一:按照上面的状态,我们发现有一个区间求最值的O(n)O(n)O(n)复杂度,考虑用单调队列优化掉,因为这个区间向两边延伸,考虑用正反两次单调队列过去,每次单调队列将当前点的上一列的点加入其中,时间复杂度O(nm)O(nm)O(nm)
代码实现:

#include<cstdio>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
int n,m,k,s,f[5039][5039],x,y,z,ans,tot,pus,q[5039],head,tail,a[5039][5039];
int main(){register int i,j;scanf("%d%d%d%d",&n,&m,&k,&s);for(i=1;i<=k;i++) scanf("%d%d%d",&x,&y,&z),a[x][y]=z;for(i=1;i<=n;i++){head=tail=0;for(j=1;j<=m;j++){while(q[head+1]+s<j&&head!=tail) head++;while(f[i-1][q[tail]]<f[i-1][j]&&head!=tail) tail--;q[++tail]=j;f[i][j]=f[i-1][q[head+1]];}head=tail=0;for(j=m;j>=1;j--){while(q[head+1]>j+s&&head!=tail) head++;while(f[i-1][q[tail]]<f[i-1][j]&&head!=tail) tail--;q[++tail]=j;f[i][j]=max(f[i-1][q[head+1]],f[i][j]);}//for(j=1;j<=m;j++) printf("%d ",f[i][j]);//printf("\n");for(j=1;j<=m;j++) f[i][j]+=a[i][j];}for(i=1;i<=m;i++) ans=max(ans,f[n][i]);printf("%d\n",ans);
}

但这道题空间卡的比较紧,要求线性空间,上面过不去,所以考虑滚动,空间复杂度O(m)O(m)O(m),时间复杂度多了一个O(klog2k)O(klog^2k)O(klog2k),但和dpdpdp的O(nm)O(nm)O(nm)比起来不算什么
代码实现:

#include<cstdio>
#include<algorithm>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
int n,m,k,s,f[2][5039],x,y,z,ans,tot,pus,q[5039],head,tail,now,last,l=1;
struct yyy{int x,y,z;
}fs[5039];
inline bool cmp(yyy x,yyy y){return x.x<y.x;
}
int main(){register int i,j;scanf("%d%d%d%d",&n,&m,&k,&s);for(i=1;i<=k;i++) scanf("%d%d%d",&fs[i].x,&fs[i].y,&fs[i].z);sort(fs+1,fs+k+1,cmp);for(i=1;i<=n;i++){now=i&1;last=(i+1)&1;head=tail=0;for(j=1;j<=m;j++){while(q[head+1]+s<j&&head!=tail) head++;while(f[last][q[tail]]<f[last][j]&&head!=tail) tail--;q[++tail]=j;f[now][j]=f[last][q[head+1]];}head=tail=0;for(j=m;j>=1;j--){while(q[head+1]>j+s&&head!=tail) head++;while(f[last][q[tail]]<f[last][j]&&head!=tail) tail--;q[++tail]=j;f[now][j]=max(f[last][q[head+1]],f[now][j]);}while(fs[l].x==i) f[now][fs[l].y]+=fs[l].z,l++;//for(j=1;j<=m;j++) printf("%d ",f[i][j]);//printf("\n");}for(i=1;i<=m;i++) ans=max(ans,f[n&1][i]);printf("%d\n",ans);
}

思路二:换一种思路,前面的方法求解了很多没有值的无用状态,考虑直接从有值的状态转移,则先按行列排好序,.对于一个点直接在这个点所覆盖的范围内寻找转移就可以了

qzezoi 1572 能量收集相关推荐

  1. 混合装置实现了24/7的能量收集和储存

    混合装置实现了24/7的能量收集和储存 Hybrid device achieves 24/7 energy harvesting and storage 休斯顿大学的研究人员设计了一种能有效捕捉太阳 ...

  2. l380废墨收集垫已到使用寿命_能量收集,没有我们想象的那么新鲜

    翻译自--EEtimes,Bill Schweber 能量收集是种极具吸引力的能源方案,因为它为人们描绘了一个美好的蓝图,即取之不尽的"免费能源".这在某些应用中已经实现-- 收集 ...

  3. 能量收集matlab程序_深港微电子学院汪飞课题组在Sensors and Actuators A: Physical上发表双谐振能量采集器论文...

    深港微电子学院汪飞课题组在压电能量采集器领域取得突破性进展.他们仿真并制备了一种基于PVDF材料的双共振压电薄膜能量采集器,其谐振频率为15 Hz和22 Hz.在 9.81  的加速度下,器件带宽扩展 ...

  4. 适合空间受限能量收集应用的高度集成电源 IC

    能量收集主要被视为一种供电方式,用于向那些无法接入电源或除电池以外亦需要补充电源的电子设备供电. 在许多情况下,使用能量收集的应用往往没有足够的空间来容纳大体积的电池. 典型例子包括可穿戴技术,如健身 ...

  5. 无线获能 — 系最适合低功耗及无源物联网能量收集技术

      几年前,物联网突然出现在全球视野中,人们对此充满期待,期待它如何万物互联并改变这个世界.专家对物联网的规模做了许多疯狂的预测.例如,思科预测2015年接入到物联网中的设备数量将达到250亿,到20 ...

  6. 凯利讯的能量收集技术延长电池寿命

    消费者对移动电子产品的渴望,无论其功能增强如何,都具有更长的电池寿命的默认预期.能量收集技术可以帮助工程师显著延长一次电池的使用寿命.对于设计者来说,构建电池扩展电路的任务已经变得非常容易,从模拟设备 ...

  7. 基于Auto.js的蚂蚁森林能量收集脚本

    最近支付宝把"查看更多好友"和"没有更多了",这两个键改成图片格式了,不能识别文字,导致了无法正常的进入更多好友的界面及收集完无法正常退出. 更新内容(已修改下 ...

  8. 能量收集认知传感器网络——论文结构扫盲

    本文主要目的在于学习综述格式及技巧,其中还包括一些关于原参考论文的知识笔记,原论文来自:能量收集认知传感器网络研究综述https://www.ixueshu.com/document/18debfae ...

  9. 柔性电子:基于复合材料的三维互联压电陶瓷薄膜用于机械和热量能量收集

    零维,一维,二维,三维材料的定义:https://www.zhihu.com/question/46430290 期刊:Energy & Environmental Science 摘要: 柔 ...

最新文章

  1. iBatis的CRUD操作详细总结
  2. webstorm同时打开多个project方法
  3. SpringBoot整合Spring Security
  4. 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9
  5. 详细程序注解学OpenCL一 环境配置和入门程序
  6. 数组作为形参时的一个陷阱
  7. Activity的启动模式详解
  8. 结合源码看nginx-1.4.0之nginx内存管理详解
  9. java如何获得当前路径_在java中如何得到当前路径
  10. [转载] JAVA基础----java中E,T,?的区别?
  11. Python pytest框架之@pytest.fixture()和conftest详解
  12. Linux和Windows下计算文件的Hash值
  13. Spring Data Jpa 不打印sql参数
  14. boost::asio 网络传输错误码的一些实验结果(recv error_code)
  15. 大数据实训:实验二-基本SQL练习
  16. UE4实时渲染需要注意的点——RTR(Real Time Rendering)
  17. nginx 的安装、配置和使用(全)
  18. Python使用string.Formatter()制作打印模板
  19. js设置北京时区_JavaScript 实现北京时间转其他时区时间,根据系统对对应时区转换...
  20. 白酒知识丨酱香型白酒为何瓶子不透明?

热门文章

  1. NYOJ-18 The Triangle
  2. SSM计算机基础自学系统毕业设计-附源码221509
  3. mysql workbench 源码_MySQL Workbench for Mac
  4. 2022-2028全球与中国枪声探测系统市场现状及未来发展趋势
  5. 文件无法删除,需要管理员权限
  6. 好莱坞七大片中的经典台词
  7. 谷歌360度街景拍摄车对日本核电站污染隔离区进行拍摄
  8. 蒟蒻成长之路(持续更新)
  9. 【干货】中英文:汽车研发与制造专业术语汇总!
  10. 非常精美的电子书界面模板