UVALive 3401
来源:互联网 发布:矩阵理论与应用研究生 编辑:程序博客网 时间:2024/05/07 22:58
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<map>#include<set>#include<sstream>using namespace std;int L[]={ 5, 1 , 3, 4, 6, 2 };int up[] = { 3, 2, 6, 1, 5, 4 };void rot(int *T,int *p){ int q[10]; memcpy(q, p, sizeof(q)); for (int i = 0; i < 6; i++) { p[i] = T[q[i]-1]; }}int vs_main(){ printf("dice24[24][6]={\n"); for (int i = 1; i <= 6; i++) { int p0[] = { 1, 2, 3, 4, 5, 6 }; if (i == 1) { rot(up, p0); } if (i == 2) { rot(L, p0); rot(up, p0); } if (i == 3) { ; } if (i == 4) { rot(up, p0); rot(up, p0); } if (i == 5) { rot(L, p0); rot(L, p0); rot(L, p0); rot(up, p0); } if (i == 6) { rot(L, p0); rot(L, p0); rot(up, p0); } printf("{%d,%d,%d,%d,%d,%d},", p0[0], p0[1], p0[2], p0[3], p0[4], p0[5]); printf("\n"); for (int i = 1; i <= 3; i++) { rot(L, p0); printf("{%d,%d,%d,%d,%d,%d},", p0[0], p0[1], p0[2], p0[3], p0[4], p0[5]); printf("\n"); } } printf("};\n"); return 0;}int main(){ int start = clock(); freopen("in.txt", "r", stdin); //freopen("E:/out.txt","w",stdout); printf("#===================#\n"); vs_main(); printf("#===================#\n"); printf("Time:%.3lf\n", double(clock() - start) / CLOCKS_PER_SEC); //system("pause"); return 0;}
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<map>#include<set>#include<sstream>using namespace std;int dice24[24][10] = { { 2, 1, 5, 0, 4, 3 }, { 2, 0, 1, 4, 5, 3 }, { 2, 4, 0, 5, 1, 3 }, { 2, 5, 4, 1, 0, 3 },{ 4, 2, 5, 0, 3, 1 }, { 5, 2, 1, 4, 3, 0 }, { 1, 2, 0, 5, 3, 4 }, { 0, 2, 4, 1, 3, 5 }, { 0, 1, 2, 3, 4, 5 }, { 4, 0, 2, 3, 5, 1 },{ 5, 4, 2, 3, 1, 0 }, { 1, 5, 2, 3, 0, 4 }, { 5, 1, 3, 2, 4, 0 }, { 1, 0, 3, 2, 5, 4 }, { 0, 4, 3, 2, 1, 5 }, { 4, 5, 3, 2, 0, 1 },{ 1, 3, 5, 0, 2, 4 }, { 0, 3, 1, 4, 2, 5 }, { 4, 3, 0, 5, 2, 1 }, { 5, 3, 4, 1, 2, 0 }, { 3, 4, 5, 0, 1, 2 }, { 3, 5, 1, 4, 0, 2 },{ 3, 1, 0, 5, 4, 2 }, { 3, 0, 4, 1, 5, 2 } };const int INF = 0x3f3f3f3f;const int maxn = 4;int n, dice[maxn][6], ans;vector<string> names;int ID(const char *name){ string s(name); int n = names.size(); for (int i = 0; i < n; i++) if (names[i] == s) return i; names.push_back(s); return n;}int r[maxn], color[maxn][6];void check(){ for (int i = 0; i < n; i++) for (int j = 0; j < 6; j++) color[i][dice24[r[i]][j]] = dice[i][j]; int tot = 0; for (int j = 0; j < 6; j++) { int cnt[maxn*6]; memset(cnt, 0, sizeof(cnt)); int maxface = 0; for (int i = 0; i < n; i++) maxface = max(maxface, ++cnt[color[i][j]]); tot += n - maxface; } ans = min(ans, tot);}void dfs(int d){ if (d == n)check(); else for (int i = 0; i < 24; i++) { r[d] = i; dfs(d + 1); }}int vs_main(){ while (scanf("%d", &n) == 1 && n) { names.clear(); for (int i = 0; i < n; i++) for (int j = 0; j < 6; j++) { char name[30]; scanf("%s", name); dice[i][j] = ID(name); } ans = n * 6; r[0] = 0; dfs(1); printf("%d\n", ans); } return 0;}int main(){ int start = clock(); freopen("in.txt", "r", stdin); //freopen("E:/out.txt","w",stdout); printf("#===================#\n"); vs_main(); printf("#===================#\n"); printf("Time:%.3lf\n", double(clock() - start) / CLOCKS_PER_SEC); //system("pause"); return 0;}
0 0
- UVALive 3401
- UVALive 3401 Colored Cubes
- UVALive - 3401 Colored Cubes
- UVALive - 3401 Colored Cubes
- UVALive 3401 Colored Cubes
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- hibernate 中的count(*) 、group by 、group by having
- kaldi学习笔记 -- 构造语言模型相关脚本 -- ami_train_lms.sh,utils/format_lm.sh
- 设计模式-组合模式(Composite)
- 风机控制部分简略总结学习
- springMVC 整合进度条
- UVALive 3401
- UIButton 调整title和image的位置
- IQKeyboardManager自动跳到下一个输入框
- opengles加载obj格式3D模型含光照和纹理
- c++输出调试信息到vs中的输出窗口
- 笔试题(四)
- 协程到底是个啥
- 【Spark】RDD操作详解2——值型Transformation算子
- 【C++】零碎知识