Codeforces Round #394 (Div. 2)-E. Dasha and Puzzle(dfs)
2017-02-03 15:52
507 查看
记录一个菜逼的成长。。
题目链接
PS:看了半天题意没看懂。。
题目大意:
给你N个点的树,问能否将这些点放在坐标平面上,要求边平行于坐标轴。
首先一个点的度数不超过4。因为平面只有四个方向,若度数超过4,肯定不存在方案。
然后就以2^n为长度递减dfs放点。
∑ni=12i<2n+1
题目链接
PS:看了半天题意没看懂。。
题目大意:
给你N个点的树,问能否将这些点放在坐标平面上,要求边平行于坐标轴。
首先一个点的度数不超过4。因为平面只有四个方向,若度数超过4,肯定不存在方案。
然后就以2^n为长度递减dfs放点。
∑ni=12i<2n+1
#include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long LL; const int maxn = 1000 + 10; int dx[] = {1,0,-1,0},dy[] = {0,1,0,-1}; int dui[10]={2,3,0,1};//来时的方向,假设这个点不是初始点,并且要往0方向走,那么上一个点相对于这个点在这个点的2方向 int d[maxn]; LL ans[maxn][2]; int n; vector<int>edge[maxn]; void dfs(int now,int from,LL x,LL y,LL len,int fromdir) { int dir = 0; ans[now][0] = x; ans[now][1] = y; for( int i = 0; i < edge[now].size(); i++ ){ int v = edge[now][i]; if(v == from)continue; if(fromdir != -1 && dir == dui[fromdir])dir++; dfs(v,now,x+dx[dir]*len,y+dy[dir]*len,len>>1,dir); dir++; } } int main() { while(~scanf("%d",&n)){ for( int i = 0; i < n-1; i++ ){ int u,v; scanf("%d%d",&u,&v); edge[u].pb(v); edge[v].pb(u); d[u]++; d[v]++; } for( int i = 1; i <= n; i++ )if(d[i] > 4){puts("NO");return 0;} dfs(1,-1,0,0,1LL<<58,-1); puts("YES"); for( int i = 1; i <= n; i++ ){ printf("%I64d %I64d\n",ans[i][0],ans[i][1]); } } return 0; }
相关文章推荐
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle(dfs)
- Codeforces Round #394 (Div. 2)E. Dasha and Puzzle【思维+Dfs构造】
- E. Dasha and Puzzle----DFS
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle(想法题,构造题)
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle 构造
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle 构造 坐标离散化
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle(分形)
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle —— 构造 + 贪心
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle(构造)
- Codeforces Round #442 (Div. 2) E. Danil and a Part-time Job (dfs序树型转线性 线段树区间修改区间查询)
- Codeforces Round #430 (Div. 2) C. Ilya And The Tree dfs+set
- Codeforces Round #321 (Div. 2) 580C Kefa and Park(dfs)
- Codeforces Round #447 (Div. 2) D. Ralph And His Tour in Binary Country(dfs)
- Codeforces Round #394 (Div. 2)C. Dasha and Password【暴力】
- 【枚举】Codeforces Round #394 (Div. 2) C. Dasha and Password
- Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs
- Codeforces Round #290 (Div. 2)B. Fox And Two Dots(dfs)
- Codeforces Round #371 (Div. 1) D. Animals and Puzzle 二维倍增 ★ ★ ★
- Codeforces Round #358 (Div. 2) C. Alyona and the Tree (DFS)