poj1573模拟法
来源:互联网 发布:python论坛源码 编辑:程序博客网 时间:2024/05/18 00:06
又是一次ac哈哈哈,不过可能是我做的题还是比较水的。
这道题和上午的那一道比较相像,然后我继续充分使用了自定义vector class的美好性质。
有关地图坐标的问题,有两种想法:
1. 在地图上做标记,也就是说地图上的每一个单位都可以容纳巨大的信息量
2. 用数据结构记住路径。
动态规划一般是树结构,总是要超时,这一点日后有机会会好好研究。
简单一点的问题,就可以用线性的结构记录路径了,就如此道题一样。
#include <iostream>#include <vector>using namespace std;int row,column,no_entry,counts;struct position{ char direction; bool mark; position(char d, bool m=false){ direction=d; mark=m; }};struct point{ int x; int y; point(int X,int Y){ x=X; y=Y; }};vector<vector<position>> V;vector<point> v;long count_loop(int x, int y){ int i=0; for(;i<v.size();i++){ if(v[i].x==x&&v[i].y==y) break; } long loop_size=v.size()-i; return loop_size;}void mark_board(int x,int y){ if(x<0||y<0||x>=row||y>=column){ cout<<counts<<" step(s) to exit"<<endl; return; } else if(V[x][y].mark){ long r=count_loop(x, y); cout<<counts-r<<" step(s) before a loop of "<<r<<" step(s)"<<endl; return; } V[x][y].mark=true; point po(x,y); v.push_back(po); char d=V[x][y].direction; counts++; switch (d) { case 'N': mark_board(x-1, y); break; case 'E': mark_board(x, y+1); break; case 'S': mark_board(x+1, y); break; case 'W': mark_board(x, y-1); break; default: break; } }int main(int argc, const char * argv[]) { // insert code here... while(cin>>row>>column>>no_entry){ if(row==0&&column==0&&no_entry==0) break; counts=0; if(!V.empty()) V.clear(); if(!v.empty()) v.clear(); vector<vector<position>> v1(row); for(int i=0;i<row;i++){ for(int j=0;j<column;j++){ char c; cin>>c; position p(c); v1[i].push_back(p); } } V=v1; mark_board(0,no_entry-1); } return 0;}
0 0
- poj1573模拟法
- poj1573(模拟bfs)
- POJ1573--模拟--Robot Motion
- 1poj1573(模拟题)
- poj1573 Robot Motion (模拟)
- poj1573模拟加bfs
- poj1573(模拟题)
- POJ1573 Robot Motion(模拟)
- poj1573 Robot Motion 模拟
- poj1573(模拟)
- POJ1573《Robot Motion》方法:模拟
- POJ1573 Robot Motion 模拟题
- POJ1573--Robot Motion(模拟)
- poj1573
- POJ1573
- POJ1573
- poj1573
- poj1573
- 数据标准化的几种方法
- LayoutInflater.from
- EXT menu
- anjularjs 干货+ionic +百度地图
- Android安全攻防战,反编译与混淆技术完全解析(上)
- poj1573模拟法
- JQuery
- 为什么在Pool中传递Queue对象无法运行
- OpenGL ES(4)——使用投影和Camera Views
- 利用doxygen生成python文档
- java.lang.outofMemoryError解决方法
- Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑
- OCP-1Z0-051-2015-37题
- Google Java编程风格指南中文版