UVa816,Ordering Tasks,WA
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
const char*dirs="NESW";
const char*turns="FLR";
int r0,c0,dir,r1,c1,r2,c2,has_edge[][][][],d[][][];
int dir_id(char c){
return strchr(dirs,c)-dirs;
}
int turn_id(char c){
return strchr(turns,c)-turns;
}
int dr[]={-,,,};
int dc[]={,,,-};
struct Node{
int r,c,dir;
};
Node p[][][];
Node walk(Node u,int turn){
int dir=u.dir;
if (turn==) dir=(dir+)%;
if (turn==) dir=(dir+)%;
Node t;
t.r=u.r+dr[dir];t.c=u.c+dc[dir];t.dir=dir;
return t;
}
int init(){
char ch;
memset(d,,sizeof(d));
cin>>r0>>c0>>ch>>r2>>c2;
int dir=dir_id(ch);
r1=r0+dr[dir];c1=c0+dc[dir];
Node t;
t.r=r1;t.c=c1;t.dir=dir;
p[r1][c1][dir]=t;
int x,y;
while (cin>>x&&x){
cin>>y;
string temp;
while (cin>>temp&&temp!="*"){
dir=dir_id(temp[]);
for (int i=;i<temp.size();i++){
int turn=turn_id(temp[i]);
has_edge[x][y][dir][turn]=;
}
}
}
}
int inside(int x,int y){
return (x>&&y>)?:;
}
void printf_ans(Node u){
vector<Node> nodes;
while (){
nodes.push_back(u);
if (d[u.r][u.c][u.dir]==) break;
u=p[u.r][u.c][u.dir];
}
Node t;
t.r=r0;t.c=c0;t.dir=dir;
nodes.push_back(t);
int cnt=;
for (int i=nodes.size()-;i>=;i--){
if (cnt%==) printf(" ");
printf(" (%d,%d)",nodes[i].r,nodes[i].c);
if (++cnt %==) printf("\n");
}
if (nodes.size()%!=) printf("\n");
}
void solve(){
queue<Node>q;
memset(d,-,sizeof(d));
Node u;
u.r=r1;u.c=c1;u.dir=dir;
d[u.r][u.c][u.dir]=;
q.push(u);
while (!q.empty()){
Node u=q.front();q.pop();
if (u.r==r2&&u.c==c2){
printf_ans(u);
return;
}
for (int i=;i<;i++){
Node v=walk(u,i);
if (has_edge[u.r][u.c][u.dir][i]&&inside(v.r,v.c)&&d[v.r][v.c][v.dir]<){
d[v.r][v.c][v.dir]=d[u.r][u.c][u.dir]+;
p[v.r][v.c][v.dir]=u;
q.push(v);
}
}
}
printf("No Solution Possible\n");
}
int main()
{
string Name;
while (cin>>Name&&Name!="END"){
cout<<Name<<endl;
init();
solve();
}
}
WA代码,至今不知道错哪了........哪位大神若是有时间帮我看看吧,code大部分是刘汝佳第二部书上的
UVa816,Ordering Tasks,WA的更多相关文章
- uva10905同一思路的两种做法,前一种WA,后一种AC
这道题应该算一道普通的排序吧,实际上就是另一种形式地比大小,自己最开始是用int型存,后来觉着不行,改用long,结果还是WA,这是第一个程序. 第二个程序是改用string处理,确实比int方便很多 ...
- Django-rest-framework(六)filter,ordering,search
filter queryset 使用request.user相关的queryset class PurchaseList(generics.ListAPIView): serializer_class ...
- locust===官方说明文档,关于tasks
安装: >>> pip install locust locust在官方simple_code中如下: from locust import HttpLocust, TaskSet ...
- 【ACM】那些年,我们挖(WA)过的最短路
不定时更新博客,该博客仅仅是一篇关于最短路的题集,题目顺序随机. 算法思想什么的,我就随便说(复)说(制)咯: Dijkstra算法:以起始点为中心向外层层扩展,直到扩展到终点为止.有贪心的意思. 大 ...
- 拓扑排序(Topological Order)UVa10305 Ordering Tasks
2016/5/19 17:39:07 拓扑排序,是对有向无环图(Directed Acylic Graph , DAG )进行的一种操作,这种操作是将DAG中的所有顶点排成一个线性序列,使得图中的任意 ...
- Ordering Tasks(拓扑排序+dfs)
Ordering Tasks John has n tasks to do. Unfortunately, the tasks are not independent and the executio ...
- UVA.10305 Ordering Tasks (拓扑排序)
UVA.10305 Ordering Tasks 题意分析 详解请移步 算法学习 拓扑排序(TopSort) 拓扑排序的裸题 基本方法是,indegree表示入度表,vector存后继节点.在tops ...
- Ordering Tasks UVA - 10305 图的拓扑排序
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- 性能测试指标:TPS,吞吐量,并发数,响应时间
性能测试指标:TPS,吞吐量,并发数,响应时间 常用的网站性能测试指标有:TPS.吞吐量.并发数.响应时间.性能计数器等. 并发数并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 响 ...
随机推荐
- 201521123092《Java程序设计》第七周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下 publ ...
- 201521123110 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对 ...
- 201521123088《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 clone方法1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? ...
- 201521123093 java 第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. Runnable不是线程,Thread才是,必须将实现Runnable接口的类的对象放入Thread中才能在 ...
- Hyperledger Fabric 1.0 从零开始(四)——Fabric源码及镜像文件处理
2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3 ...
- svn服务器配置与客户端的使用
1, Apache Subversion 官网下载地址: http://subversion.apache.org/packages.html#windows 官网下载提供的一般都是最新版本的,如果想 ...
- 高德地图markers生成和点击
因为自己平时上班也是比较忙,遇到什么写什么,希望能给现在的你一些帮助,都是自己在工作中遇到的问题,给自己一个提醒,也是分享 相信很多人在做高德地图开发的时候,对于新手,官方的demo解读单个marke ...
- MonoDeveloper 快捷键
注:环境是Unity3D 5.0.2f1自带的MonoDevelop Ctrl+X 剪切功能.另外,光标放在一行的任意位置(不选中任何内容),使用快捷键,将把这一行剪切并删除此行,这个特性非常好用 C ...
- 【个人笔记】《知了堂》MySQL三种关系:一对一,一对多,多对多。
一对一:比如一个学生对应一个身份证号.学生档案: 一对多:一个班可以有很多学生,但是一个学生只能在一个班: 多对多:一个班可以有很多学生,学生也可以有很多课程: 一对多关系处理: 我们以学生和班级之间 ...
- React——高阶组件
1.在React中higher-order component (HOC)是一种重用组件逻辑的高级技术.HOC不是React API中的一部分.HOC是一个函数,该函数接收一个组件并且返回一个新组件. ...