USACO2008游荡的奶牛
搜索
不知道为什么没有人写bfsbfsbfs
觉得挺像是标准个bfsbfsbfs的
状态
因为要统计次数,不能简单地跳过一个被经过的点
这样的话,状态量会爆炸
采用记忆化
设dp[i][j][k]dp[i][j][k]dp[i][j][k]表示在第kkk分钟到达点(i,j)" role="presentation">(i,j)(i,j)(i,j)的方案数
以地点+时间作为状态
避免同一状态被反复拓展
这样,状态量将减少至最多100∗100∗15100∗100∗15100*100*15
转移
这就比较显然了
对于将被拓展的状态,在计数时加上当前状态的方案数
如果这个状态曾被拓展,就不要别的操作了
否则,将这一状态入队,预备拓展其他状态
代码是这样的:
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
struct node{int x,y,s; //x、y表示坐标,s表示时间
};
queue<node>q;
int n,m,t,r1,c1,r2,c2,dp[110][110][20];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0}; //移动
string s[110];
int main()
{cin>>n>>m>>t;for(int i=1;i<=n;i++)cin>>s[i];cin>>r1>>c1>>r2>>c2;dp[r1][c1][0]=1; //初始方案数为1q.push(node{r1,c1,0});while(!q.empty()){node u=q.front();q.pop();for(int i=0;i<4;i++){node th;th.x=u.x+dx[i];th.y=u.y+dy[i];th.s=u.s+1;if(dp[th.x][th.y][th.s]){dp[th.x][th.y][th.s]+=dp[u.x][u.y][u.s];continue; //当前状态曾被拓展}if(th.x<1||th.x>n||th.y<1||th.y>m||s[th.x][th.y-1]=='*'||th.s>t)continue; //越界或不能走或超时,跳过dp[th.x][th.y][th.s]+=dp[u.x][u.y][u.s]; //计数q.push(th);}}cout<<dp[r2][c2][t]<<endl;return 0;
}
USACO2008游荡的奶牛相关推荐
- bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1293 Solved ...
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1290 Solved ...
- 【bzoj 1616】: [Usaco2008 Mar]Cow Travelling游荡的奶牛 dp
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1616 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Tim ...
- bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛*
bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛 题意: n行m列的草地上有一些位置有障碍物.第0时刻奶牛在(r1,c1),第t时刻奶牛在(r2,c2)(注意这里都 ...
- F. [usaco 2009 dec]游荡的奶牛 总结
F. [usaco 2009 dec]游荡的奶牛 总结 题目 F. [usaco 2009 dec]游荡的奶牛 时间限制:1s 空间限制:256MB 输入文件:sgraze-in 输出文件:sgraz ...
- [usaco 2009 dec]游荡的奶牛
游荡的奶牛 题目描述 FJ 有 N (1 <= N <= 50,000)头牛,FJ的草地可以认为是一条直线. 每只牛只喜欢在某个特定的范围内吃草.第i头牛喜欢在区间(S_i, E_i)吃草 ...
- [USACO Mar08] 游荡的奶牛
[USACO Mar08] 游荡的奶牛 时间限制:1 s 内存限制:128 MB 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游 ...
- P1535 游荡的奶牛
P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...
最新文章
- 使用MyEclipse2017进行web开发
- 【转】MongoDB 3.0 正式版本即将发布,强力推荐
- java 时间处理_JAVA处理日期时间常用方法
- ios html 禁止下拉,ios禁止页面下拉
- 【python教程入门学习】用Python制作迷宫GIF
- Android 系统(74)---Android手势触摸事件的分发和消费机制
- 【python+flume+kafka+spark streaming】编写word_count入门示例
- 风变Python 15数据的读入以及写出以及数据的编码类型
- 对即时通讯个人信息的一点想法
- JavaScript篇 深入理解JavaScript函数
- java 权限管理都用什么_java权限管理框架有哪些?
- 计步 android 源码,android版简易计步器源码
- matlab之在坐标区上添加图例函数legend
- 图片批量重命名编号不要括号
- 数据结构 课堂测验错题_200911
- NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)
- 【Mysql】留存率指标计算
- wmv格式+java_Java调用ffmepg+mencoder视频格式转换(*)
- 科沃斯扫地机器人哪个型号最实用_科沃斯扫地机哪个型号好 三个价位三种选择...
- margin与padding的区别
热门文章
- NOIP2021题解~持续更新
- 一套靠谱的外贸型服装鞋业系统长啥样?
- 2015移动互联网行业趋势盘点(PPT)
- 网页保存mhtml格式
- body加背景图片没反应_css设置背景图片不显示问题
- H5手机浏览器唤起微信实现分享
- 梯度消亡(Gradient Vanishing)和梯度爆炸(Gradient Exploding)
- Ubuntu16 网卡rtl8723be 驱动安装
- Unexpected token o in JSON at position 1 at JSON.parse (anonym)
- 玩客云小盒子安装点心云,实现闲置宽带共享。