题目链接:Cow Hopscotch G


状态以及状态转移方程很显然,故不再赘述。

我们直接考虑转移的优化,我们枚举每一行,然后用线段树维护每一列每一种颜色的方案和。

然后每次就可以从不同的颜色转移而来,不同颜色可以用总方案减去当前颜色方案得到。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e3+10,M=N*N*20,mod=1e9+7;
int n,m,g[N][N],sum[M],lc[M],rc[M],rt[M],cnt,dp[N][N],k;
inline void add(int &x,int y){x+=y; if(x>=mod) x-=mod;}
#define mid (l+r>>1)
void change(int &p,int l,int r,int x,int v){if(!p)  p=++cnt;if(l==r){add(sum[p],v); return ;}if(x<=mid)    change(lc[p],l,mid,x,v);else    change(rc[p],mid+1,r,x,v);sum[p]=(sum[lc[p]]+sum[rc[p]])%mod;
}
int ask(int p,int l,int r,int ql,int qr){if(!p||ql>qr)   return 0;if(l==ql&&r==qr)   return sum[p];if(qr<=mid)   return ask(lc[p],l,mid,ql,qr);else if(ql>mid) return ask(rc[p],mid+1,r,ql,qr);else return (ask(lc[p],l,mid,ql,mid)+ask(rc[p],mid+1,r,mid+1,qr))%mod;
}
signed main(){cin>>n>>m>>k;for(int i=1;i<=n;i++)   for(int j=1;j<=n;j++)    cin>>g[i][j];change(rt[g[1][1]],1,m,1,1); change(rt[0],1,m,1,1);for(int i=2;i<=n;i++){for(int j=2;j<=m;j++)dp[i][j]=(ask(rt[0],1,m,1,j-1)-ask(rt[g[i][j]],1,m,1,j-1)+mod)%mod;for(int j=2;j<=m;j++)    change(rt[g[i][j]],1,m,j,dp[i][j]),change(rt[0],1,m,j,dp[i][j]);}cout<<dp[n][m];return 0;
}

Cow Hopscotch G相关推荐

  1. P2870 [USACO07DEC]Best Cow Line G

    P2870 [USACO07DEC]Best Cow Line G 题意: 给你一个字符串,每次从首或尾取一个字符组成字符串,问所有能够组成的字符串中字典序最小的一个. 题解: 现在要组成字典序最小的 ...

  2. 专题突破之反悔贪心——建筑抢修,Cow Coupons G, Voting (Hard Version),Cardboard Box

    文章目录 [JSOI2007]建筑抢修 [USACO12FEB]Cow Coupons G CF1251E2 Voting (Hard Version) CF436E Cardboard Box [J ...

  3. Cow Hopscotch

    Cow Hopscotch 题目描述 Just like humans enjoy playing the game of Hopscotch, Farmer John's cows have inv ...

  4. P3033 [USACO11NOV]Cow Steeplechase G

    P3033 [USACO11NOV]Cow Steeplechase G 提交1.80k 通过638 时间限制1.00s 内存限制125.00MB 提交答案加入题单 复制题目 题目提供者FarmerJ ...

  5. P2906 [USACO08OPEN]Cow Neighborhoods G 切比雪夫距离 + 并查集 + set

    传送门 考虑将曼哈顿距离转换成切比雪夫距离,这样问题就变成了max(∣x1−x2∣,∣y1−y2∣)≤dmax(|x_1-x_2|,|y_1-y_2|)\le dmax(∣x1​−x2​∣,∣y1​− ...

  6. P3067 [USACO12OPEN]Balanced Cow Subsets G 折半搜索

    传送门 文章目录 目录 题意: 思路: 目录 题意: 给你nnn个数,从中任意选出一组数,使这些数能分成和相等的两组,问有多少种选数方案. 2≤n≤20,1≤ai≤1e92\le n\le 20,1\ ...

  7. P5200 [USACO19JAN]Sleepy Cow Sorting G

    题目描述 Farmer John正在尝试将他的 NN 头奶牛(1\le N\le 10^51≤N≤105),方便起见编号为 1\ldots N1-N,在她们前往牧草地吃早餐之前排好顺序. 当前,这些奶 ...

  8. USACO比赛题泛刷

    随时可能弃坑. 因为不知道最近要刷啥所以就决定刷下usaco. 优先级排在学习新算法和打比赛之后. 仅有一句话题解.难一点的可能有代码. 优先级是Gold>Silver.Platinum刷不动. ...

  9. NOIP复健计划——动态规划

    树形DP [POI2011] DYN-Dynamite 二分 K K K check(mid): 能否选出 m m m个点,使得 ∀ i 为关键点, M i n j i s s e l e c t e ...

  10. [树剖] 树剖:从入门到进阶

    题单 文章目录 写在前面 T1 [Grass Planting G](https://www.luogu.com.cn/problem/P3038) T2 [Max Flow P](https://w ...

最新文章

  1. 软工概论第十三周总结
  2. jsp connection DB
  3. ThinkServer RD430:高性价比的海量存储服务器
  4. Cygwin,Nutch安装配置,检验是否正确(对网友守望者博客的修改---在此感谢守望者)3
  5. 安富莱DAC8653模块
  6. sdut 区间覆盖问题
  7. Decoda Tutorial LUA调式器
  8. 33 关 Python 游戏,测试你的爬虫能力到底及格不?
  9. tpl-spring-mybatis 模板工程
  10. 乘法口诀表java加表格_Java 面试 - 打印九九乘法口诀表
  11. 机器学习第二回——矩阵部分总结
  12. 我的职业规划500字计算机范文,职业生涯规划自我分析(职业生涯规划500字)
  13. 合并两个有序链表js
  14. 如何保证虚拟机ip地址不变
  15. Day51:HEIL AI
  16. 那些与三维激光扫描有关的建模
  17. 平面设计师经常去的网站——设计灵感类
  18. 学习c++的50条忠告(转自C++百度贴吧)
  19. Problem H. 小凡与英雄救美
  20. 爬虫的原理和数据抓取

热门文章

  1. python paramiko ssh-解决强制修改密码登录问题
  2. 51单片机数码管动态显示数字
  3. 软件测试平台的作用以及会包含哪些功能?
  4. 计算机主题绘画能画什么,电脑绘画活动方案
  5. 欧拉降幂公式(扩展欧拉定理)证明
  6. 华为3Com总裁郑树生:我们最终要自立门户
  7. iOS GameCenter
  8. UVC之MJPEG流
  9. 简单易懂!推荐给自学python的小项目实战!
  10. vps一键测速脚本,包含vps配置测试、速度测试和回程路由测试