[arc062E]Building Cubes with AtCoDeer
Description
Solution
这道题直接暴力就好。。毕竟只要枚举了前后两个瓷砖的方向和编号,其他瓷砖的颜色就是确定的了。
然而场上我的去重除了问题qaq。
我们钦定在立方体最前面的块编号最小且不可转(这样就可以做到不重不漏),然后枚举最后面的瓷砖编号和方向。
如此,其他四块瓷砖的颜色就已经确定。当我们找了一块瓷砖,就要在map中把该瓷砖的信息删掉以防重复(听大佬说这里的删除也可以用容斥代替)。
Code
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
int n;
struct node{int col[];
node nxt(){ return node{col[],col[],col[],col[]};}
friend bool operator <(node a,node b)
{
for (int i=;i<;i++)
if (a.col[i]!=b.col[i]) return a.col[i]<b.col[i];
return ;
}
}a[],a1,a2,a3,a4;
map<node,int>mp;
void insert(node x,int v)
{for (int i=;i<;i++,x=x.nxt()) mp[x]+=v;} node xx,yy;
int id1;
ll ans,re;
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)
{
scanf("%d%d%d%d",&a[i].col[],&a[i].col[],&a[i].col[],&a[i].col[]);
insert(a[i],);
}
for (int i=;i<=n;i++)
{
insert(a[i],-);
for (int j=i+;j<=n;j++)
{
insert(a[j],-);
for (int t=;t<;t++)
{
a1=node{a[j].col[],a[i].col[],a[i].col[],a[j].col[]};
a2=node{a[i].col[],a[j].col[],a[j].col[],a[i].col[]};
a3=node{a[j].col[],a[j].col[],a[i].col[],a[i].col[]};
a4=node{a[i].col[],a[i].col[],a[j].col[],a[j].col[]};
a[j]=a[j].nxt();
if (mp[a1]==||mp[a2]==||mp[a3]==||mp[a4]==) continue;
re=;
re*=mp[a1];insert(a1,-);
re*=mp[a2];insert(a2,-);
re*=mp[a3];insert(a3,-);
re*=mp[a4];
insert(a1,);insert(a2,);insert(a3,);
ans+=re; }
insert(a[j],);
}
}
cout<<ans;
}
[arc062E]Building Cubes with AtCoDeer的更多相关文章
- 【arc062e】Building Cubes with AtCoDeer
Description STL有n块瓷砖,编号从1到n,并且将这个编号写在瓷砖的正中央: 瓷砖的四个角上分别有四种颜色(可能相等可能不相等),并且用Ci,0,Ci,1,Ci,2,Ci,3分别表示左上. ...
- 2018.09.20 atcoder Building Cubes with AtCoDeer(枚举)
传送门 有个十分显然的结论,只用枚举前后两个面就可以知道所有的面的颜色. 于是可以O(n2)O(n^2)O(n2)枚举前后两个面然后用map乱搞求贡献. 发现这样算出来会多算两倍(打表证明)于是答案除 ...
- AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer
题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...
- AtCoder 杂题训练
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...
- atcoder题目合集(持续更新中)
Choosing Points 数学 Integers on a Tree 构造 Leftmost Ball 计数dp+组合数学 Painting Graphs with AtCoDeer tarja ...
- NOIp2018模拟赛三十二
继续挂成傻逼 成绩:100+0+10(90)=110 A全场一眼题,C没取模挂八十分,然后没特判特殊情况又挂十分 A:[agc009b]tournament(太简单,咕了) B:[ATC2142]Bu ...
- 【AtCoder】ARC062
ARC062 C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report 每次看看比率至少变成多少倍能大于当前的数 然后就把两个人的票都改成那个数 #incl ...
- 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 ...
- 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 ...
随机推荐
- js实现点击按钮显示某个区域 然后点击页面中任意其他位置,隐藏该区域
$(".licat-header-list").on("click",function(e){ $(this).addClass("active&qu ...
- Mac上安装MongoDB
1.访问MongoDB官方下载地址 http://www.mongodb.org/downloads 2.点击“DOWNLOAD(tgz)”按钮: 3.将下载的文件压缩包解压后剪切到你的Mac中某个位 ...
- python3通过qq邮箱发送邮件
python3通过qq邮箱发送邮件 0.了解qq邮箱的SMTP QQ邮箱 POP3 和 SMTP 服务器地址设置如下: 邮箱 POP3服务器(端口995) SMTP服务器(端口465或587) qq. ...
- linq项目中例子实例
在mvc项目中 var ls = (from i in gt.vendor_login join j in gt.vendor on i.vendor_id equa ...
- List泛型的应用
在我看一个源程序的时候看到这个例子使用了IList<T>返回类型,因为上午刚刚总结过List<T>的详细用法,突然出现了IList<T>,感觉很奇怪,于是上网搜集了 ...
- HDU 1233 还是畅通工程(Kruskal算法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- JDBC——释放资源的代码
public static void release(ResultSet rs, Statement statement, Connection conn) { if (rs != null) { t ...
- 仓位 001 998 AUFNAHME不存在(L9009)
测试做一个物料库存561初始化时,库位是上启用了WM的.提示“C01 998 AUFNAHME 不存在”,998 库存余额的初始条目 是缺省的存储类型.用LS25在正式系统中,CO1 998下有AUF ...
- mysql使用Sql获取13位时间戳
SELECT REPLACE(unix_timestamp(current_timestamp(3)),'.','');
- 解决docker pull出现 error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net······: net/http: TLS handshake timeout的问题
[root@MyCentos7 var]# docker pull javaUsing default tag: latestTrying to pull repository docker.io/l ...