Description

传送门

Solution

这道题直接暴力就好。。毕竟只要枚举了前后两个瓷砖的方向和编号,其他瓷砖的颜色就是确定的了。

然而场上我的去重除了问题qaq。

我们钦定在立方体最前面的块编号最小且不可转(这样就可以做到不重不漏),然后枚举最后面的瓷砖编号和方向。

如此,其他四块瓷砖的颜色就已经确定。当我们找了一块瓷砖,就要在map中把该瓷砖的信息删掉以防重复(听大佬说这里的删除也可以用容斥代替)。

Code

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<map>
  6. using namespace std;
  7. typedef long long ll;
  8. int n;
  9. struct node{int col[];
  10. node nxt(){ return node{col[],col[],col[],col[]};}
  11. friend bool operator <(node a,node b)
  12. {
  13. for (int i=;i<;i++)
  14. if (a.col[i]!=b.col[i]) return a.col[i]<b.col[i];
  15. return ;
  16. }
  17. }a[],a1,a2,a3,a4;
  18. map<node,int>mp;
  19. void insert(node x,int v)
  20. {for (int i=;i<;i++,x=x.nxt()) mp[x]+=v;}
  21.  
  22. node xx,yy;
  23. int id1;
  24. ll ans,re;
  25. int main()
  26. {
  27. scanf("%d",&n);
  28. for (int i=;i<=n;i++)
  29. {
  30. scanf("%d%d%d%d",&a[i].col[],&a[i].col[],&a[i].col[],&a[i].col[]);
  31. insert(a[i],);
  32. }
  33. for (int i=;i<=n;i++)
  34. {
  35. insert(a[i],-);
  36. for (int j=i+;j<=n;j++)
  37. {
  38. insert(a[j],-);
  39. for (int t=;t<;t++)
  40. {
  41. a1=node{a[j].col[],a[i].col[],a[i].col[],a[j].col[]};
  42. a2=node{a[i].col[],a[j].col[],a[j].col[],a[i].col[]};
  43. a3=node{a[j].col[],a[j].col[],a[i].col[],a[i].col[]};
  44. a4=node{a[i].col[],a[i].col[],a[j].col[],a[j].col[]};
  45. a[j]=a[j].nxt();
  46. if (mp[a1]==||mp[a2]==||mp[a3]==||mp[a4]==) continue;
  47. re=;
  48. re*=mp[a1];insert(a1,-);
  49. re*=mp[a2];insert(a2,-);
  50. re*=mp[a3];insert(a3,-);
  51. re*=mp[a4];
  52. insert(a1,);insert(a2,);insert(a3,);
  53. ans+=re;
  54.  
  55. }
  56. insert(a[j],);
  57. }
  58. }
  59. cout<<ans;
  60. }

[arc062E]Building Cubes with AtCoDeer的更多相关文章

  1. 【arc062e】Building Cubes with AtCoDeer

    Description STL有n块瓷砖,编号从1到n,并且将这个编号写在瓷砖的正中央: 瓷砖的四个角上分别有四种颜色(可能相等可能不相等),并且用Ci,0,Ci,1,Ci,2,Ci,3分别表示左上. ...

  2. 2018.09.20 atcoder Building Cubes with AtCoDeer(枚举)

    传送门 有个十分显然的结论,只用枚举前后两个面就可以知道所有的面的颜色. 于是可以O(n2)O(n^2)O(n2)枚举前后两个面然后用map乱搞求贡献. 发现这样算出来会多算两倍(打表证明)于是答案除 ...

  3. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

  4. AtCoder 杂题训练

    前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...

  5. atcoder题目合集(持续更新中)

    Choosing Points 数学 Integers on a Tree 构造 Leftmost Ball 计数dp+组合数学 Painting Graphs with AtCoDeer tarja ...

  6. NOIp2018模拟赛三十二

    继续挂成傻逼 成绩:100+0+10(90)=110 A全场一眼题,C没取模挂八十分,然后没特判特殊情况又挂十分 A:[agc009b]tournament(太简单,咕了) B:[ATC2142]Bu ...

  7. 【AtCoder】ARC062

    ARC062 C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report 每次看看比率至少变成多少倍能大于当前的数 然后就把两个人的票都改成那个数 #incl ...

  8. Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

    https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency G ...

  9. Codeforces Round #356 (Div. 2) D. Bear and Tower of Cubes dfs

    D. Bear and Tower of Cubes 题目连接: http://www.codeforces.com/contest/680/problem/D Description Limak i ...

随机推荐

  1. 0-创建scott数据

    CREATE TABLE dept (  deptno INT PRIMARY KEY,  dname VARCHAR(14),  loc VARCHAR(13) );   INSERT INTO d ...

  2. Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

    ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...

  3. HTTP协议实体的基本讲解

    http://blog.csdn.net/diyagoanyhacker/article/details/6685305 HTTP协议运作方式 HTTP协议是基于请求/响应范式的.一个客户机与服务器建 ...

  4. linux 远程复制文件或文件夹

    linux 远程复制文件或文件夹. 复制当前服务器的文件夹或文件到指定服务器的文件夹. #远程复制文件夹: scp -r /home/administrator/test/ root@192.168. ...

  5. 【[LNOI2014]LCA】

    这题好神啊 能够\(1A\)真是不可思议 首先看到要求的这个柿子\(\sum_{i=l}^{r}deep[LCA(i,z)]\),而且\(l\)和\(r\)并不是来自与一棵子树或者一条链,而是编号连续 ...

  6. 随手练——大量级阶乘 - HDU-2674 N!Again

     N!Again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. 连接池中的maxIdle,MaxActive,maxWait等参数详解

    转: 连接池中的maxIdle,MaxActive,maxWait等参数详解 2017年06月03日 15:16:22 阿祥小王子 阅读数:6481   版权声明:本文为博主原创文章,未经博主允许不得 ...

  8. 查看WIFI连接的信号强度

    netsh wlan show interface (netsh wlan show interface) -match '^\s+Signal' -replace '\s+Signal\s+:\s+ ...

  9. POJ 1182 食物链(经典带权并查集 向量思维模式 很重要)

    传送门: http://poj.org/problem?id=1182 食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: ...

  10. Oracle中函数的使用

      1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示 ...