当前位置: 首页 > news >正文

P3120 [USACO15FEB] Cow Hopscotch G

洛谷

由于需要考虑颜色的问题,所以可以考虑将总方法减去相同颜色的方案数,以此得到本次的结果。

使用前缀和,得到此处的方案总数。

然后就需要考虑如何处理颜色的问题了,由于需要进行区间修改与查询,很容易想到使用线段树进行优化,但是按照颜色数写很多树状数组明显空间开不下。

所以使用动态开点的方法。由于一棵树上有只有几个点会被查询,所以我们通过动态开点,只处理需要处理的节点,记录下它的左右儿子即可。

动态开点在需要修改时,开一个新的点记录,查询时直接返回初始状态即可。

代码:

#include<bits/stdc++.h>
using namespace std;
int r,c,k,a[1000][1000],pre[1000],dp[1000][1000];
const int mod=1e9+7;
struct ST{int c[7000000],ls[7000000],rs[7000000],cnt;void build(int k){cnt=k;}void pushup(int p){c[p]=(c[ls[p]]+c[rs[p]])%mod;}int New(){c[++cnt]=0;ls[cnt]=rs[cnt]=0;return cnt;}void change(int &p,int l,int r,int w,int v){if(!p)p=New();if(l==r)return void(c[p]=(c[p]+v)%mod);int mid=l+r>>1;if(w<=mid)change(ls[p],l,mid,w,v);else change(rs[p],mid+1,r,w,v);pushup(p);}int query(int p,int l,int r,int L,int R){if(!p)return 0;if(l>=L&&r<=R)return c[p];int mid=l+r>>1;int res=0;if(mid>=L)res+=query(ls[p],l,mid,L,R);if(mid<R)res+=query(rs[p],mid+1,r,L,R);res%=mod;return res;}
}seg;
signed main(){cin>>r>>c>>k;seg.build(k);for(int i=1;i<=r;i++){for(int j=1;j<=c;j++)cin>>a[i][j];}for(int i=1;i<=c;i++)pre[i]=1;dp[1][1]=1;seg.change(a[1][1],1,c,1,1);for(int i=2;i<=r;i++){for(int j=2;j<=c;j++){dp[i][j]=(pre[j-1]-seg.query(a[i][j],1,c,1,j-1)+mod)%mod;}int tmp=0;for(int j=2;j<=c;j++){tmp=(tmp+dp[i][j])%mod;pre[j]=(pre[j]+tmp)%mod;seg.change(a[i][j],1,c,j,dp[i][j]);}}cout<<dp[r][c];return 0;
}
http://www.jsqmd.com/news/65185/

相关文章:

  • Easysearch 2.0.0 性能测试
  • ABC435
  • 散修带你入门鸿蒙应用开发基础:启程篇(上) - 鸿蒙
  • PowerShell TOTP 身份验证器
  • 分库分表是同一个实例内的多个不同库/不同表吗
  • 基于STM32标准库的FreeRTOS移植与任务创建 - 详解
  • Launch X431 PRO Elite: Full System CAN FD Active Tester OBD2 Scanner for Euro/American Cars
  • linux 中gzip、bzip2、xz压缩、解压缩
  • Java方法
  • 2025 最新工业机器人应用服务商 / 厂家 TOP5 评测!科技赋能 + 全生命周期服务权威榜单发布,重构智能制造生态
  • 【Java EE进阶 --- SpringBoot】统一特性处理
  • Launch X431 PRO3 V+ Elite: Bi-Directional, ECU Coding Topology Mapping for Euro/Amer Vehicles
  • linux单用户模式
  • 20232405 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 实用指南:最小作用量原理MATLAB仿真
  • 2025液体钙权威品牌推荐,首选inne液体钙
  • 吉他自学笔记
  • 为全球宝宝选对营养:央视关注+进博亮相,德国安心之选inne
  • 2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析
  • 惊艳进博,新品圈粉全球,德国国民品牌inne因你守护儿童健康
  • 2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析
  • 儿童营养选对不踩坑!德国 inne以硬核品质展现品牌价值
  • 2025年12月四面弹面料厂家权威推荐榜:尼龙/涤纶/TR消光等八大品类,揭秘高弹力与舒适度的科技织物奥秘
  • 2025年12月凝壳炉厂家权威推荐榜:真空感应/自耗/150kg至1t真空凝壳炉,专业铸造与高效熔炼技术深度解析
  • 2025 年 12 月法兰保护罩厂家权威推荐榜:阀门保温罩/法兰防溅罩/法兰保护套,专业防护与耐用品质深度解析
  • 2025 年 12 月法兰保护罩厂家权威推荐榜:阀门保温罩/法兰防溅罩/法兰保护套,专业防护与耐用品质深度解析
  • 2025 年 12 月真空自耗电弧炉厂家权威推荐榜:涵盖2.5t/4t/7t真空熔炼炉型,尖端电极自耗技术深度解析与高效选购指南
  • 从德国药房到中国进博,inne用硬实力回答品牌怎么样
  • openEuler:构建AI原生操作系统的架构演进与实践路径
  • FFmpeg开发笔记(九十二)基于Kotlin的开源Android推流器StreamPack