【codeforces】 464B Restore Cube
来源:互联网 发布:jsp 收费系统 源码 编辑:程序博客网 时间:2024/05/01 13:15
暴力。。。然后判断是否为立方体时。。。先求出中心,然后通过经过中心的所有边的长度是否相等来判断是否为立方体。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib>#include <cmath>#include <time.h>#define maxn 400005#define maxm 400005#define eps 1e-10#define mod 1000000007#define INF 999999999#define lowbit(x) (x&(-x))#define mp mark_pair#define ls o<<1#define rs o<<1 | 1#define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R //typedef vector<int>::iterator IT;typedef long long LL;//typedef int LL;using namespace std;LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;}LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;}void scanf(int &__x){__x=0;char __ch=getchar();while(__ch==' '||__ch=='\n')__ch=getchar();while(__ch>='0'&&__ch<='9')__x=__x*10+__ch-'0',__ch = getchar();}LL gcd(LL _a, LL _b){if(!_b) return _a;else return gcd(_b, _a%_b);}// headint a[10], b[10], c[10], ok;bool check(void){int aa, bb, cc;aa = bb = cc = 0;for(int i = 1; i <= 8; i++) aa += a[i], bb += b[i], cc += c[i];if(aa%4 || bb%4 || cc%4) return false;aa /= 4, bb /= 4, cc /= 4;LL t = 0;for(int i = 1; i <= 8; i++) {int flag = 1;LL tt;for(int j = 1; j <= 8 && flag; j++)if(a[i] + a[j] == aa && b[i] + b[j] == bb && c[i] + c[j] == cc) {flag = 0;tt = (LL)(a[j] - a[i])*(a[j] - a[i]) + (LL)(b[j] - b[i])*(b[j] - b[i]) + (LL)(c[j] - c[i])*(c[j] - c[i]);}if(flag) return false;if(!t) t = tt;else if(t != tt) return false;}return true;}bool safe(void){for(int i = 1; i <= 8; i++)for(int j = i+1; j <= 8; j++)if(a[i] == a[j] && b[i] == b[j] && c[i] == c[j]) return false;return true;}void dfs(int now){if(now == 9) {if(safe() && check()) ok = 0;return;}for(int i = 1; i <= 6 && ok; i++)if(i%2 == 1) swap(b[now], c[now]), dfs(now+1);else swap(a[now], b[now]), dfs(now+1);}int main(void){for(int i = 1; i <= 8; i++) scanf("%d%d%d", &a[i], &b[i], &c[i]);ok = 1, dfs(1);if(ok) printf("NO\n");else {printf("YES\n");for(int i = 1; i <= 8; i++) printf("%d %d %d\n", a[i], b[i], c[i]);}return 0;}
0 0
- Codeforces 464B. Restore Cube
- 【codeforces】 464B Restore Cube
- Codeforces 464B Restore Cube
- Codeforces 464B Restore Cube(暴力)
- codeforces 464B Restore Cube 暴力
- Codeforces 464B. Restore Cube (一种高效八点判断立方体(cube)的办法)
- Codeforces Round #265 (Div. 1) B Restore Cube
- codeforces 265 D. Restore Cube
- cf 464 Restore Cube
- CODEFORCES 465D Restore Cube <寻找正方体>
- (CF)B. Restore Cube (暴力枚举判断)
- Codeforces Round #265 (Div. 2)D. Restore Cube 暴力
- Codeforces Round #265 (Div. 2) D. Restore Cube
- Codeforces Round #265 (Div. 2) D. Restore Cube 立方体判断
- codeforces 404 B. Marathon、C. Restore Graph、D. Minesweeper 1D
- codeforces#237_div2_C Restore Graph
- codeforces 404C - Restore Graph
- CodeForces 404C Restore Graph
- NameValueCollection类集合
- 20140909
- 该日期是该年第几天
- CF271 D 字符串hash
- linux关闭防火墙
- 【codeforces】 464B Restore Cube
- Array(数组)与Json String (Json字符串) 的相互转换
- 打造自己的js库1 -- 脚本动态加载
- 精读《JAVAScript高级程序设计》笔记(一)——基本概念
- exact nn search in hamming space
- JSChart_页面图形报表
- HDU1060 Leftmost Digit
- sizeof
- values-sw600dp 平板电脑中无效【安卓调试】