\(\text{Solution}\)

根据 \(Polya\) 定理推算

记总砖数为 \(m = \frac{n(n+1)}2\)

考虑旋转,不动点数均为为 \(2^{\frac{m+2}3}\)

翻转,考虑三个对角线,记对称轴上砖数为 \(s=\frac{n+1}2\),则不动点数均为 \(2^{\frac{m-s}2+s}\)

还有 \(2^m\)

故答案为三种相加除以 \(6\)

加上高精度即可

\(\text{Code}\)

#include <cstdio>
#include <cstring>
#include <iostream>
#define RE register
#define IN inline
using namespace std; int n, m;
struct BigInt{
int a[1005], n;
IN BigInt(){n = 0; memset(a, 0, sizeof a);}
IN BigInt operator + (const BigInt &b)
{
BigInt c; c.n = max(n, b.n);
for(RE int i = 1; i <= c.n; i++)
c.a[i + 1] += (c.a[i] + a[i] + b.a[i]) / 10,
c.a[i] = (c.a[i] + a[i] + b.a[i]) % 10;
while (c.a[c.n + 1]) ++c.n;
return c;
}
IN BigInt operator * (const BigInt &b)
{
BigInt c; c.n = n + b.n - 1;
for(RE int i = 1; i <= n; i++)
for(RE int j = 1; j <= b.n; j++)
c.a[i + j] += (c.a[i + j - 1] + a[i] * b.a[j]) / 10,
c.a[i + j - 1] = (c.a[i + j - 1] + a[i] * b.a[j]) % 10;
while (c.a[c.n + 1]) ++c.n;
return c;
}
IN BigInt operator / (const int &b)
{
BigInt c; c.n = n;
for(RE int i = 1; i <= n; i++) c.a[i] = a[i];
for(RE int i = n; i; i--)
c.a[i - 1] += c.a[i] % b * 10, c.a[i] /= b;
while (!c.a[c.n] && c.n > 1) --c.n;
return c;
}
}; IN BigInt fpow(BigInt x, int y)
{
BigInt s; s.n = 1, s.a[1] = 1;
for(; y; y >>= 1, x = x * x) if (y & 1) s = s * x;
return s;
} int main()
{
scanf("%d", &n), m = n * (n + 1) / 2;
BigInt _2, _3; _2.n = _3.n = 1, _2.a[1] = 2, _3.a[1] = 3;
BigInt ans = fpow(_2, m) + fpow(_2, (m - (n + 1) / 2) / 2 + (n + 1) / 2) * _3;
ans = (ans + fpow(_2, (m + 2) / 3) * _2) / 6;
for(RE int i = ans.n; i; i--) printf("%d", ans.a[i]);
}

[AHOI2002]黑白瓷砖的更多相关文章

  1. [wikioi2926][AHOI2002]黑白瓷砖(Polya定理)

    小可可在课余的时候受美术老师的委派从事一项漆绘瓷砖的任务.首先把n(n+1)/2块正六边形瓷砖拼成三角形的形状,右图给出了n=3时拼成的“瓷砖三角形”.然后把每一块瓷砖漆成纯白色或者纯黑色,而且每块瓷 ...

  2. P2561 [AHOI2002]黑白瓷砖

    $ \color{#0066ff}{ 题目描述 }$ \(\color{#0066ff}{输入格式}\) 文件中以一行的形式存放一个正整数 n , n ≤ 20 . \(\color{#0066ff} ...

  3. 洛谷——P2556 [AHOI2002]黑白图像压缩

    P2556 [AHOI2002]黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 ...

  4. 洛谷P2556 [AHOI2002] 黑白图像压缩 [模拟]

    题目传送门 黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 8 的倍数, 于是每 ...

  5. LuoguP2556 [AHOI2002]黑白图像压缩 题解

    Content 题目描述太过于繁琐而无法简化,请前往原题面查看. 数据范围:\(1\leqslant n\leqslant 8\times 10^4\). Solution & Code 一个 ...

  6. 「算法笔记」Polya 定理

    一.前置概念 接下来的这些定义摘自 置换群 - OI Wiki. 1. 群 若集合 \(s\neq \varnothing\) 和 \(S\) 上的运算 \(\cdot\) 构成的代数结构 \((S, ...

  7. C语言版flappy bird黑白框游戏

    在此记录下本人在大一暑假,2014.6~8这段时间复习C语言,随手编的一个模仿之前很火热的小游戏----flappy bird.代码bug基本被我找光了,如果有哪位兄弟找到其他的就帮我留言下吧,谢谢了 ...

  8. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  9. 【BZOJ-1976】能量魔方Cube 最小割 + 黑白染色

    1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 884  Solved: 307[Submi ...

  10. Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)

    Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...

随机推荐

  1. orcl substr函数与java substring 的不同

    前天事情急改一个存储过程时遇到了substr方法时,一直用好,然后用其他方法跳过去了,今天有时间回头来验证 才发现和java太不一样了! select substr('为中华之崛起而读书',2,4) ...

  2. SUPERVISOR监控tomcat配置文件

    Supervisor安装教程参考:https://www.cnblogs.com/brad93/p/16639953.html tomcat安装教程参考:https://www.cnblogs.com ...

  3. Linux基础第五章 进程控制

    5.2 fork fork函数实现进程复制,类似于动物界的单性繁殖,fork函数直接创建一个子进程.这是Linux创建进程最常用的方法.在这一小节中,子进程概念指fork产生的进程,父进程指主动调用f ...

  4. python之路50 ORM执行SQL语句 操作多表查询 双下线方法

    ORM执行查询SQL语句 有时候ORM的操作效率可能偏低 我们是可以自己编写SQL的 方式1: models.User.objects.raw('select * from app01_user;') ...

  5. python之路25 面向对象 封装(隐藏、伪装)、多态、反射

    派生方法实战演练 import json import datetime d = { 't1': datetime.date.today(), 't2': datetime.datetime.toda ...

  6. ansible离线安装k8s v1.25版本

    Kubernetes v1.25 企业级高可用集群自动部署(离线版) 注:确保所有节点系统时间一致 操作系统要求:CentOS7.x_x64 1.找一台服务器安装Ansible # yum insta ...

  7. 使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决

    使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决   摘要:我昨天花了一天时间学习了SSM项目搭建,却在最终的编码问题上拉胯了,在使用Spring MVC框架进行前 ...

  8. 使用Dapr和.NET 6.0进行微服务实战:Dapr简介

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 本文是<使用Dapr和.NET 6.0进行微服务实战>的第2篇Dapr ...

  9. MornHus--一个野生蒟蒻的生成

    野生蒟蒻一个. 蒟蒻的洛谷首页:MornHus 蒟蒻已经遗弃的CSDN首页:MornHus 写博的内容: 主要就是平时写写算法的笔记,有的时候写点数学题,有的时候还会搞一些奇怪的东西[doge] 大蒟 ...

  10. FalseSharing-伪共享

    1.CPU缓存 要了解什么是伪共享,首先得了解CPU缓存架构与缓存行的知识 (1)<CPU缓存架构> 主内存RAM是数据存在的地方,CPU和主内存之间有好几级缓存,因为即使直接访问主内存相 ...