\(\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. CKA考试经验:报考和考纲

    1 报考相关 1.有效期一年.在一年内需要定好考试的时间. 2.提前15分钟进入考试系统, 提前进入考试系统后并不是立马开始考试,而是预留给考官时间考察你的考试环境 3.考试时间 ,注意报考的Time ...

  2. PyQt4编写界面的两种方式

    PyQt4编写界面的两种方式 应用PyQt4开发图形化界面有两种方式,一种是直接通过QtDesigner通过提供的窗口部件拖拽进行GUI创建,另外一种是直接进行编程实现. 第一种,QtDesigner ...

  3. jupyter 数据显示设置

    #设置显示行数pd.set_option('display.max_row',None)#设置显示列数pd.set_option('display.max_column',None)#设置显示宽度pd ...

  4. 定制.NET 6.0的Middleware中间件

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 在本文中,我们将学习中间件,以及如何使用它进一步定制应用程序.我们将快速学习中间件 ...

  5. python + mysql +djagno +unittest 实现WEB、APP UI自动化测试平台--------(一)基础表

    from django.db import models # Create your models here. class DictConfig(models.Model): "" ...

  6. python Modbus 进行通讯时抛出Modbus Error: Exception code = 2

    源码: import modbus_tk from modbus_tk import modbus_tcp import modbus_tk.defines as cst PORT = 'com1' ...

  7. WCH沁恒 CH37系列芯片选型以及常见问题的处理(CH376/CH378)

    选型 型号 接口 功能 备注 电源 CH372 并口 USB_Device 全速 USB 设备接口,兼容 USB V2.0 3.1-3.6 4.2-5.4 CH374 SPI/并口 Host/Devi ...

  8. 虚假新闻检测(CADM)《Unsupervised Domain Adaptation for COVID-19 Information Service with Contrastive Adversarial Domain Mixup》

    论文信息 论文标题:Unsupervised Domain Adaptation for COVID-19 Information Service with Contrastive Adversari ...

  9. 浅谈Java并发

    Java并发是比较难的知识点,难于对并发的理解.并发要从操作系统和硬件层面去理解,才会比较深入,而不单单是从编程语言的逻辑去理解. 首先对于并发要清楚的几点: 线程可能在任何时刻被切换.计算机只对硬件 ...

  10. [C++Primer] 第二章 变量和基本类型

    第二章 变量和基本类型 引用 引用定义的时候必须初始化. 引用初始化之后无法重新绑定到其它对象上. 引用本身并不是对象,所以没有指向引用的引用(不管如何多层引用,引用的还是源对象) 下面用一个简单的例 ...