博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟题 Right turn SCU - 4445
阅读量:5263 次
发布时间:2019-06-14

本文共 1066 字,大约阅读时间需要 3 分钟。

用一个二维数组记录从四个方向到达该障碍物的次数,如果同一个方向到达该障碍物两次,那么就一定可以转无数次弯。

做题的时候心态要好啊。。

#include
#include
#include
#include
#include
#include
#include
#define maxn 1005#define inf 0x3f3f3f3fusing namespace std;typedef struct{ int x,y;}P;P a[maxn];int v[4][maxn];int ans,n,flag;void solve(){ P c; c.x=0,c.y=0; int flag1,f; flag1=1; while(1) { // cout<<"flag "<
<<" "<
<<" "<
<
a[i].y&&ma
a[i].x&&a[i].x>ma) { ma=a[i].x; f=0; j=i; } } if(f) return; else { if(v[2][j]){flag=1;return;} c.x=ma+1; ans++; flag1=4; v[2][j]=1; } } else if(flag1==4) { for(int i=1;i<=n;i++) { if(c.x==a[i].x&&c.y
a[i].y) { mi=a[i].y; f=0; j=i; } } if(f) return ; else { if(v[3][j]) {flag=1;return;} c.y=mi-1; ans++; flag1=1; v[3][j]=1; } } }}int main(){ while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y); ans=0; flag=0; memset(v,0,sizeof(v)); solve(); if(flag) printf("-1\n"); else printf("%d\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/Twsc/p/7384500.html

你可能感兴趣的文章
小项目设想
查看>>
专题四--1004
查看>>
android学习——Intent总结
查看>>
全文搜索(AC-1)-互联网信息过载问题
查看>>
[占位 补充看图感想]vm子系统交互图 清晰版本【再发】
查看>>
宝宝开火车~ 升级了--学习,益智,火车,儿童,iphone手机游戏
查看>>
asp.net 字符串反序列化
查看>>
WPF操作ini 文件的读写示例
查看>>
JS中的HTML片段
查看>>
Core Text
查看>>
博客园第一天,心情好激动
查看>>
2013-7-19 灰暗的一天
查看>>
Djanto static静态文件配置
查看>>
WPF文本框只允许输入数字[转]
查看>>
JS产生随机一注彩票
查看>>
Interpreter(解释器)-类行为型模式
查看>>
事务的四种隔离级别和七种传播行为
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
J2SE 入门须知40条
查看>>
python 魔术方法
查看>>