USACO wormhole
洛谷 P1444 [USACO1.3]虫洞wormhole
https://www.luogu.org/problemnew/show/P1444
JDOJ 2386: USACO 2013 Dec Bronze 3.Wormholes
https://neooj.com:8082/oldoj/problem.php?id=2386
Description
Problem 3: Wormholes [Brian Dean, 2013]
Farmer John's hobby of conducting high-energy physics experiments on
weekends has backfired, causing N wormholes (2 <= N <= 12, N even) to
materialize on his farm, each located at a distinct point on the 2D map of
his farm.
According to his calculations, Farmer John knows that his wormholes will
form N/2 connected pairs. For example, if wormholes A and B are connected
as a pair, then any object entering wormhole A will exit wormhole B moving
in the same direction, and any object entering wormhole B will similarly
exit from wormhole A moving in the same direction. This can have rather
unpleasant consequences. For example, suppose there are two paired
wormholes A at (0,0) and B at (1,0), and that Bessie the cow starts from
position (1/2,0) moving in the +x direction. Bessie will enter wormhole B,
exit from A, then enter B again, and so on, getting trapped in an infinite
cycle!
Farmer John knows the exact location of each wormhole on his farm. He
knows that Bessie the cow always walks in the +x direction, although he
does not remember where Bessie is currently located. Please help Farmer
John count the number of distinct pairings of the wormholes such that
Bessie could possibly get trapped in an infinite cycle if she starts from
an unlucky position.
Input
* Line 1: The number of wormholes, N.
* Lines 2..1+N: Each line contains two space-separated integers
describing the (x,y) coordinates of a single wormhole. Each
coordinate is in the range 0..1,000,000,000.
Output
* Line 1: The number of distinct pairings of wormholes such that
Bessie could conceivably get stuck in a cycle walking from
some starting point in the +x direction.
Sample Input
0 0
1 0
1 1
0 1
Sample Output
HINT
INPUT DETAILS:
There are 4 wormholes, forming the corners of a square.
OUTPUT DETAILS:
If we number the wormholes 1..4, then by pairing 1 with 2 and 3 with 4,
Bessie can get stuck if she starts anywhere between (0,0) and (1,0) or
between (0,1) and (1,1). Similarly, with the same starting points, Bessie
can get stuck in a cycle if the pairings are 1-3 and 2-4. Only the
pairings 1-4 and 2-3 allow Bessie to walk in the +x direction from any
point in the 2D plane with no danger of cycling.
#include<cstdio>
#include<algorithm>
using namespace std;
int n,ans;
int v[];
struct node
{
int x,y;
}w[];
bool cmp(node a,node b)
{
if(a.y==b.y)
return a.x<b.x;
return a.y<b.y;
}
int find(int vis,int end,int begin,int way)
{
if(vis!= && end==begin && way==)
return ;
if(way==)
{
if(w[end].y==w[end+].y)
return find(vis+,end+,begin,);
return ;
}
if(way==)
return find(vis+,v[end],begin,);
}
int judge()
{
for(int i=;i<=n;i++)
if(find(,i,i,))
return ;
return ;
}
void dfs(int x)
{
if(x==n+)
{
if(judge())
ans++;
return;
}
if(v[x]==)
{
for(int i=x+;i<=n;i++)
if(v[i]==)
{
v[i]=x;v[x]=i;
dfs(x+);
v[i]=v[x]=;
}
}
if(v[x]!=)
dfs(x+);
return;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d%d",&w[i].x,&w[i].y);
sort(w+,w+n+,cmp);
dfs();
printf("%d",ans);
return ;
}
USACO wormhole的更多相关文章
- Usaco Training [1.3] wormhole
传送门 解题要素:代码能力 解题步骤:理解题意 - >搜索枚举所有可能的配对情况 - >判断冲突并求解 - >调试 一. 理解题意 这里讲几个不容易理解的点: 1. +x方向 即向右 ...
- [题解]USACO 1.3 Wormholes
Wormholes Farmer John's hobby of conducting high-energy physics experiments on weekends has backfire ...
- USACO 1.3... 虫洞 解题报告(搜索+强大剪枝+模拟)
这题可真是又让我找到了八数码的感觉...哈哈. 首先,第一次见题,没有思路,第二次看题,感觉是搜索,就这样写下来了. 这题我几乎是一个点一个点改对的(至于为什么是这样,后面给你看一个神奇的东西),让我 ...
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- USACO 1.3 Wormholes - 搜索
Wormholes Farmer John's hobby of conducting high-energy physics experiments on weekends has backfire ...
- Luogu USACO Training 刷水记录
开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...
- USACO Section1.3 Wormholes 解题报告
wormhole解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------- ...
- USACO . Your Ride Is Here
Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs often co ...
- 【USACO 3.1】Stamps (完全背包)
题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200. 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出 ...
随机推荐
- 删除cookie的封装
remove cookie(key,options){ options=options||{}; options.expires=-1; 删除cookie,其实就是修改cookie,将之前设置好的co ...
- 这几款我私藏的Markdown编辑器,今天分享给你
相信很多人都使用 Markdown 来编写文章,Markdown 语法简洁,使用起来很是方便,而且各大平台几乎都已支持 Markdown 语法 那么,如何选择一款趁手的 Markdown 编辑器,就是 ...
- Jupyter Notebook使用
不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了.哎呀 ...
- HTML连载21-序选择器上
解释CSS3 中新增的选择器中最具有代表性的就是序选择器,大致可以分为两类: (1)同级别的第几个(2)同类型的第几个 先写一个公共代码 <body> <h1>优秀</h ...
- Linux高性能服务器编程,书中的 shell 命令
记录<Linux高性能服务器编程>书里面讲解到的若干 shell 命令 arp 命令查看ARP高速缓存: [root@VM_0_10_centos heliang]# arp -a ? ( ...
- css3的user-select属性设置文本内容能否被选择
CSS3中提供了个user-select属性来设置或检索是否允许用户选中文本. 语法 user-select:none | text | all | element. 默认值:text. 适用性:除替 ...
- Kubernetes 之 Nameserver limits were exceeded
1.问题描述 最近查看kubernetes 的events,发现了有两个节点经常出现下面的信息: DNSConfigForming Nameserver limits were exceeded, s ...
- SqlServer 查看数据库、添加数据文件
一.查看SqlServer实例的数据库列表 1).直接在SSMS(SqlServer Management Studio)管理工具里面 展开实例下面的所有数据库便可查看 2).使用Transact- ...
- postman强大的团队协作功能
今天无意在调项目的接口 ,使用的postman工具 ,自己写的接口信息,只能自己看 ,感觉有点不方便,如果一个公司多名测试,如果一个人写接口信息,大家都能用,就会很节约时间 所以团队协作的功能就诞生了 ...
- Linux用户和权限——管理用户和用户组的命令
Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...