P1556 幸福的路

题目描述

每天,John都要为了农场里N(1≤N≤10)头牛的健康和幸福四处奔波。

每头牛的位置可以描述为一个二维坐标,John从坐标原点(0,0)出发。为了使路径更有趣,John决定只沿着平行于坐标轴的方向行走,这样只能沿着东西南北方向运动。而且只有到达某头牛的坐标后John才会改变行走的方向(当然,如果有必要,John也会穿过某头牛的坐标而不改变行走的方向。)

如果John改变行走的方向,他会原地转90°或者180°。John的路径必须保证检查完所有牛后返回原点。

John可以穿过某头牛的坐标而不改变方向任意次,请计算出有多少条路径满足John能检查完N头牛,在每头牛的坐标处恰好改变一次方向。同一条路径从不同方向经过要计算两次。

输入输出格式

输入格式:

第一行,整数N。

第2行到第N+1行,第i+1行是两个用空格隔开的整数x和y,表示第i头牛的坐标(-1000 ≤x, y ≤1000)

输出格式:

一行个整数,表示路径的量如果没有满足要求则输出 0。

输入输出样例

输入样例#1:

4
0 1
2 1
2 0
2 -5

输出样例#1:

2
/*没什么难点,就几个细节需要注意一下一个是dfs时需要记录下上一次改变的方向第二个是千万不要忘了最后要返回(0,0)
*/
#include<iostream>
#include<cstdio>
#define maxn 11
using namespace std;
int n,ans;
bool vis[maxn];
struct node{int x,y;
}a[maxn];
void dfs(int x,int y,int cnt,int pre){//pre:1上,2下,3左,4右 if(cnt==n){if(x==0&&y>0&&pre!=2){ans++;return;}if(x==0&&y<0&&pre!=1){ans++;return;}if(y==0&&x>0&&pre!=3){ans++;return;}if(y==0&&x<0&&pre!=4){ans++;return;}}for(int i=1;i<=n;i++){if(vis[i])continue;if(a[i].x>x&&a[i].y==y&&pre!=4){//正右方 vis[i]=1;dfs(a[i].x,a[i].y,cnt+1,4);vis[i]=0;}if(a[i].x<x&&a[i].y==y&&pre!=3){//正左方 vis[i]=1;dfs(a[i].x,a[i].y,cnt+1,3);vis[i]=0;}if(a[i].x==x&&a[i].y<y&&pre!=2){//正下方 vis[i]=1;dfs(a[i].x,a[i].y,cnt+1,2);vis[i]=0;}if(a[i].x==x&&a[i].y>y&&pre!=1){//正上方 vis[i]=1;dfs(a[i].x,a[i].y,cnt+1,1);vis[i]=0;}}
}
int main(){//freopen("Cola.txt","r",stdin);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);dfs(0,0,0,0);cout<<ans;
}

转载于:https://www.cnblogs.com/thmyl/p/7517445.html

洛谷P1556 幸福的路相关推荐

  1. OJ密码岛 #21011. T3 走访奶牛 / 洛谷 P1556 幸福的路

    题目描述 John 是一个开明的农场主, 每天 John 都要走访农场里 n( 1<=n<=10)头牛, 听他们吐槽心里的不快. 孤僻的牛牛们从不聚集, 各自有自己的小屋 ,位置可以描述为 ...

  2. 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论

    洛谷P1807 最长路_NOI导刊2010提高(07) 图论 求有向无环图的 最长路 首先阐明一点 最长路dijkstra 是不能做 (当然我是不会做的,不过我貌似看到过网上的dalao有用dijst ...

  3. 洛谷 P2939 [USACO09FEB]改造路Revamping Trails

    洛谷 P2939 [USACO09FEB]改造路Revamping Trails Description 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到 ...

  4. 洛谷P1613 跑路

    题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟 ...

  5. 图论--最长路--洛谷P1807 最长路_NOI导刊2010提高(07)

    题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入格式 ...

  6. P1556 幸福的路

    题意:平面内有N头牛$N\le 10$john从(0,0)出发,最后回到(0,0) 只有走到牛那里john才可以改变方向,否则沿着直线走 问john经过每一头牛并且在每一头牛出恰好改变方向一次的方案( ...

  7. 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)

    题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...

  8. C语言之洛谷刷题之路---顺序结构

    一顺序结构 B2002 Hello,World! #include <stdio.h>int main() {printf("Hello,World! \n");ret ...

  9. 图论——最长路(洛谷 P1807)

    题目选自洛谷P1807 对于一个有向无环图,可以采取广搜将结点依次搜索,记录当前结点的最长路并在循环过程中不断更新. 题目描述 设 G 为有 n 个顶点的带权有向无环图,G 中各顶点的编号为 1 到  ...

最新文章

  1. clientcontainerThrift Types
  2. zyUpload+struct2完成文件上传
  3. Acwing第 5 场周赛【未完结】
  4. MySQL: InnoDB 还是 MyISAM?
  5. php 无法创建com组件,关于IIS php调用com组件的权限问题
  6. php中throw的作用,php – GOTO和THROW之间的区别?
  7. 如何设置CentOS 7开机自动获取IP地址详解
  8. 深信服智安全 SCSA---1
  9. Spring 揭密——第 1 章 Spring 框架的由来
  10. 三步教你手动破解网易云音乐加密
  11. matlab构造跟驰模型,基于跟驰模型的交通流混沌研究
  12. 循迹小车三个感应c语言程序,循迹小车的C语言程序(带注释)
  13. 教科书级别的软件推荐
  14. OpenCV实现图片锐化
  15. ONF推新版Atrium 获得OpenDaylight支持
  16. 新加坡企业是怎么做实名认证的?
  17. 监控系统看这一篇就够了!zabbix、Prometheus等常见监控教程
  18. IntelliJ IDEA汉化,IntelliJ IDEA安装中文语言包。IntelliJ IDEA 2020.1正式发布,支持中文啦。
  19. python经典案例:64格棋盘与麦粒
  20. 独立开发变现周刊(第82期):开发一个在线PDF编辑器,年收入50万美元

热门文章

  1. 重学前端-总结:前言,从今天起,重新理解前端
  2. Nodejs+Koa2+云服务ECS 开发微信公众号(一)之环境配置
  3. 苹果教你如何开发iOS应用
  4. 简单介绍API分类接口
  5. 人间清醒,内容为王 - 技术er究竟该如何写博客?1024上海嘉年华之敖丙演讲观后感。
  6. JAVA-生成二维码图片
  7. 查找您的 D-U-N-S 编号 - 注册 - Apple Developer
  8. php主板主要是支持,b360主板能上3000内存吗
  9. 保姆级人工智能学习成长路径
  10. git(9)Git 内部原理,java入门视频百度网盘