Codeforces 320B Ping-Pong (Easy Version)
2015-03-24 10:05
375 查看
题目链接:http://codeforces.com/contest/320/problem/B
题意:先输入n,接下来输入n行,每行输入三个数,q,a,b,若q==1,则添加一个区间(a,b)。若q==2,表示查询第a个区间能否到达第b个区间。注意: 区间a:(x,y)能到区间b(c,d)的条件是:
c < x < d || c < y < d
这个条件有些特殊,一旦从一个小区间进入一个包含它的大区间后就不能再进入它包含的任何一个小区间了。
思路:因为n数量级不大,才100。直接dfs。但需要注意,搜的时候回溯条件不需要改变,因为对每次查询的vis[i]表示是否存在一条路从a到i,若存在就不需要继续重复搜了。
题意:先输入n,接下来输入n行,每行输入三个数,q,a,b,若q==1,则添加一个区间(a,b)。若q==2,表示查询第a个区间能否到达第b个区间。注意: 区间a:(x,y)能到区间b(c,d)的条件是:
c < x < d || c < y < d
这个条件有些特殊,一旦从一个小区间进入一个包含它的大区间后就不能再进入它包含的任何一个小区间了。
思路:因为n数量级不大,才100。直接dfs。但需要注意,搜的时候回溯条件不需要改变,因为对每次查询的vis[i]表示是否存在一条路从a到i,若存在就不需要继续重复搜了。
#include <iostream> #include <iomanip> #include <cstdio> #include <algorithm> #include <cmath> #include <queue> #include <vector> #include <stack> #include <string> #include <cstring> #include <cassert> using namespace std; typedef long long ll; const int maxn=2222; const int INF=0x7fffffff; const int mod=1e7+7; #define LSON l,m,rt<<1 #define RSON m+1,r,rt<<1|1 #define ESP 1e-7 struct point { int l,r; }; point p[111]; int n,sum; bool vis[111]; bool check(int a, int b) {//判断区间a能否到区间b if(p[a].l>p[b].l && p[a].l<p[b].r) return true; else if(p[a].r>p[b].l && p[a].r<p[b].r) return true; return false; } bool dfs(int now, int ed) { if(now==ed) { return true; } for(int i=1;i<sum;i++) { if(check(now, i) && !vis[i]) { vis[i]=true; if(dfs(i, ed)) return true; } } return false; } int main() { scanf("%d", &n); sum=1; for(int cc=0;cc<n;cc++) { int order; scanf("%d", &order); if(order==1) { scanf("%d%d", &p[sum].l, &p[sum].r); sum++; } else { int a,b; scanf("%d%d", &a, &b); for(int i=1;i<sum;i++) vis[i]=false; vis[a]=true; if(dfs(a, b)) printf("YES\n"); else printf("NO\n"); } } return 0; }
相关文章推荐
- codeforces 320B Ping-Pong (Easy Version)
- CodeForces - 320B Ping-Pong (Easy Version)
- CodeForces 320B Ping-Pong (Easy Version)-DFS
- E - Ping-Pong (Easy Version)
- Round #189 (Div.2) B. Ping-Pong (Easy Version)
- CodeForces 320 B. Ping-Pong DFS BFS 弗洛伊德算法
- Ping-Pong (Easy Version)(DFS)
- Ping Pong 操作
- cf Ping-Pong (Easy Version)
- unity笔记3 - Mathf.Repeat and Mathf.PingPong
- Ping pong(树状数组经典)
- POJ 3928 & hdu 2492 & Uva1428 PingPong 【树状数组】
- Frequent values && Ping pong
- websocket心跳连接pingpong;
- Pingpong/sky 扩展实现 Laravel 多模块化开发
- Ping pong UVA - 1428 树状数组
- Motion sensing game (Ping Pong Game)
- ping-pong操作
- pingpong线程输出问题
- Codeforces 319E Ping-Pong (线段树+dsu)