本来下午想把pre稿子写了,咕咕咕。

群论是啥也不会了,写个polya试试(手动doge)为什么博客媛没有emoji,以后万一自己搭博客一定要加上这个小东西

polya淼题:poj1286

先复吸一下polya

本来有这么个burnside引理,为什么叫引理呢,因为polya的证明引用了这个小可爱。

正经人谁好好写公式,(其实是不会群论的正规表达方式)

比如说从前有这么个置换群$F = \{ f_i , i \in Z and 1\le i \le n_F \} $ 其中 $n_F = \| F \|$ 集合元素总数。$f_i$表示一种置换(一个n的全排列)。

注意应用有限次任意$f_i$的迭代并不会得到不属于$F$的置换

我们要给一个长为n的序列染色。若我们想得到在置换群$F$下本质不同的染色结果(染色结果A与B本质相同,当且仅当对A有限次应用$F$中的任意置换后可以得到B)

那么$Burnside$引理告诉我们这种染色数是

$\frac{1}{\| F \|}\sum_{i}^{n_F}{Count(f_i)}$

其中$Count(\cdot)$表示在应用一次某种置换后颜色序列不变的染色种类数,即在$f_i$置换下恒不变的颜色序列(不动点状态)

具体的例子可以看看百度百科的那个方块染色,我觉得不错。

Polya定理是burnside的具体化,也就是说只在某种情况下burnside的应用。

这种情况就是序列每个位置都可以染任意m种颜色中的一个。

此时$Count(\cdot)$可以被重写。

若一个置换群$f_i$是由$k_i$个子置换组成的,一个子置换中元素永远也无法到达另一个子置换中的位置。

此时$Count(f_i) = m^{k_i}$

$P\acute{o}lya  定理:  \frac{\sum{m^{k_i}}}{\| F \|}$

好了长度水差不多了,简单说一下解题思路哈

显然可以用Polya 做嘛 (doge)

置换就暴力拿出来一个一个看。一共2n个置换,n个转动项链的置换 {2,3,4, ... ,n, 1}, {3, 4, 5, ..., n, 1, 2}, ..., {n, 1, 2, ..., n-1}

还有n个在项链背面转的: {n, n-1, ... , 3, 2, 1}, {n-1, n-2, ..., 2, 1, n}, ...

记一下数就好了

后来发现好像不用把子置换记一遍数,奇数环1个子置换,偶数环有时有两个子置换,反环置换数也可以统计

不管了反正A了

Code:

#include<cstdio>
#include<cstring>
#include<algorithm>
typedef long long lnt;
int a[100];
int vis[50];
lnt sPow(lnt aa, int b){
lnt ans = 1;
while(b){
if(b % 2) ans *= aa;
aa *= aa;
b /= 2;
}
return ans;
}
void dfs(int now){
if(vis[now]) return ;
vis[now] = 1;
dfs(a[now]);
return ;
}
lnt count(int n){
int ans = 0;
memset(vis, 0, sizeof(vis));
for(int i=1; i<=n; ++i) if(! vis[i]){
++ans;
dfs(i);
}
return sPow(3ll, ans);
}
lnt polya(int n){
if(!n){
return 0;
}
lnt sum = 0;
for(int delta=0; delta<n; ++delta){
for(int i=0; i<n; ++i){
a[(i+delta)%n + 1] = i+1;
}
sum += count(n);
for(int i=0; i<n/2; ++i) std::swap(a[i+1], a[n-i]);
sum += count(n);
}
return sum / (2ll*n);
}
int main(){
int n;
while(true){
scanf("%d", &n);
if(n == -1) return 0;
printf("%lld\n", polya(n));
}
return 0;
}

Hahaha

再弄点计算几何(doge)

随处找找

发现lgl巨佬这里有不少题诶

(我好像一个也不会诶...)%%% lgl

算了先打开一个看看

先来这个poj3525

17.00 了,还不会。·咕咕咕

肝pre去了(doge)

恢复训练(学不动了摸会鱼) Pt. 1的更多相关文章

  1. JDK 12又来了,我学不动了...

    写在前面 看到 JDK 12又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8的函数式编程思维和范式 到 Java 1.9的模块化特性的加持 以及还没来得及深切感受一下 Java 1.11 的 ...

  2. 我是先学C语言还是先学C++,实不相瞒,鱼和熊掌可兼得!

    这是最近一周时间几个读者小伙伴所提的问题,我顺手截了两个图. 实不相瞒,这类问题之前也经常看到.     每次遇到这种问题,看起来很简单,但是打字一时半会还真说不清,想想今天周末了,写一篇文章来统一聊 ...

  3. 学不动了,ECMAScript2018都来了

    原文:ECMAScript regular expressions are getting better! 作者: Mathias Bynens: Google V8引擎开发者 译者:Fundebug ...

  4. 学不动了!微信官方推出 Web 前端和小程序统一框架 Kbone

    听说最近微信官方推出了一个统一 Web 前端和小程序的框架 -- Kbone ,特意去看了下... 为什么微信要搞Kbone? 微信小程序的底层模型和 Web 端不同,开发者无法直接把 Web 端的代 ...

  5. 模仿写了一个摸鱼APP解决原作者的问题

    前几天见到微博里有人提到摸鱼APP,发现需要在windows store下载才可以使用,文件约100多M左右的样子,自已没有登录微软Store的习惯.想想只有一个介面,没有必要这么大,于是,自已动手写 ...

  6. alpha-咸鱼冲刺day3

    一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 今天把数据库的表给建好了,学长那边把登陆跟注册页面也做好了(纯页面,html5+css的那种) 四,问题困难 日常啥都不会,百度 ...

  7. alpha-咸鱼冲刺day3-紫仪

    总汇链接 一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 今天把数据库的表给建好了,学长那边把登陆跟注册页面也做好了(纯页面,html5+css的那种) 四,问题困难   日常 ...

  8. 从零开始学Electron笔记(一)

    前端技术在最近几年迅猛发展,在任何开发领域我们都能看到前端的身影,从PC端到手机端,从APP到小程序,似乎前端已经无所不能,这就要求我们需要不断地去学习来提升自己!前段时间尤大通过直播介绍了一下Vue ...

  9. 跟我一起学Redis之Redis概述

    背景 技术的更新迭代,是程序员最最最头大的事,总是在每个网络角落中有感慨声:学不动啦: 其实新技术并不是凭空而出,而是随着业务推进.数据驱动.技术积累促使开发者的不断探索和实践,最终横空出世--&qu ...

随机推荐

  1. java中的代码块(初始化块)

    介绍 代码块又叫初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法体中,通过{ } 包围起来,但和方法不同,没有方法名,没有返回值,没有参数,只有方法体,而且不通过对象或类显示调用,而是加载类 ...

  2. HashSet源码学习

    一.介绍 1.HashSet 2.HashSet和HashMap的区别 1.相同点 HashSet 内部使用 HashMap 存储元素,对应的键值对的键为 Set 的存储元素,值为一个默认的 Obje ...

  3. Hadoop分布式集群部署

    环境准备 IP HOSTNAME SYSTEM 192.168.131.129 hadoop-master CentOS 7.6 192.168.131.135 hadoop-slave1 CentO ...

  4. Vue 源码解读(1)—— 前言

    当学习成为了习惯,知识也就变成了常识. 感谢各位的 点赞.收藏和评论. 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog ...

  5. MyBatis功能点二应用:第三方分页插件使用

    pageHelper分⻚插件使用 在前面文章MyBatis功能点二:plugins插件使用 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中介绍了自定义插件的使用,本文介绍第三方插件pa ...

  6. 阿里云人脸1:N搜索开源版-Java版(文末附开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  7. 字段是字段,属性是属性,字段不是属性,属性看getter或setter

    1.看图猜字段和属性 2.结果是一个属性[字段麻,太明目张胆啦,就是2啦],又是哪个属性能够显示出来呢? 3.这是为什么呢? 让我们回到javabean的课堂~~~ ★ javaBean中的prope ...

  8. ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]

    <诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...

  9. JabRef:将bibtex格式的参考文献导入EndNote的转换软件

    我在写小论文的时候,一直用的都是Overleaf在线latex编辑应用: https://www.overleaf.com/login 这个我感觉还是蛮好用的.只需要从期刊或者出版社的官网下载到lat ...

  10. JZ-013-调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对 ...