洛谷P1556 幸福的路
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。
输入输出样例
4 0 1 2 1 2 0 2 -5
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 幸福的路相关推荐
- OJ密码岛 #21011. T3 走访奶牛 / 洛谷 P1556 幸福的路
题目描述 John 是一个开明的农场主, 每天 John 都要走访农场里 n( 1<=n<=10)头牛, 听他们吐槽心里的不快. 孤僻的牛牛们从不聚集, 各自有自己的小屋 ,位置可以描述为 ...
- 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论
洛谷P1807 最长路_NOI导刊2010提高(07) 图论 求有向无环图的 最长路 首先阐明一点 最长路dijkstra 是不能做 (当然我是不会做的,不过我貌似看到过网上的dalao有用dijst ...
- 洛谷 P2939 [USACO09FEB]改造路Revamping Trails
洛谷 P2939 [USACO09FEB]改造路Revamping Trails Description 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到 ...
- 洛谷P1613 跑路
题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟 ...
- 图论--最长路--洛谷P1807 最长路_NOI导刊2010提高(07)
题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入格式 ...
- P1556 幸福的路
题意:平面内有N头牛$N\le 10$john从(0,0)出发,最后回到(0,0) 只有走到牛那里john才可以改变方向,否则沿着直线走 问john经过每一头牛并且在每一头牛出恰好改变方向一次的方案( ...
- 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...
- C语言之洛谷刷题之路---顺序结构
一顺序结构 B2002 Hello,World! #include <stdio.h>int main() {printf("Hello,World! \n");ret ...
- 图论——最长路(洛谷 P1807)
题目选自洛谷P1807 对于一个有向无环图,可以采取广搜将结点依次搜索,记录当前结点的最长路并在循环过程中不断更新. 题目描述 设 G 为有 n 个顶点的带权有向无环图,G 中各顶点的编号为 1 到 ...
最新文章
- clientcontainerThrift Types
- zyUpload+struct2完成文件上传
- Acwing第 5 场周赛【未完结】
- MySQL: InnoDB 还是 MyISAM?
- php 无法创建com组件,关于IIS php调用com组件的权限问题
- php中throw的作用,php – GOTO和THROW之间的区别?
- 如何设置CentOS 7开机自动获取IP地址详解
- 深信服智安全 SCSA---1
- Spring 揭密——第 1 章 Spring 框架的由来
- 三步教你手动破解网易云音乐加密
- matlab构造跟驰模型,基于跟驰模型的交通流混沌研究
- 循迹小车三个感应c语言程序,循迹小车的C语言程序(带注释)
- 教科书级别的软件推荐
- OpenCV实现图片锐化
- ONF推新版Atrium 获得OpenDaylight支持
- 新加坡企业是怎么做实名认证的?
- 监控系统看这一篇就够了!zabbix、Prometheus等常见监控教程
- IntelliJ IDEA汉化,IntelliJ IDEA安装中文语言包。IntelliJ IDEA 2020.1正式发布,支持中文啦。
- python经典案例:64格棋盘与麦粒
- 独立开发变现周刊(第82期):开发一个在线PDF编辑器,年收入50万美元