关闭

HYSBZ - 3534 重建 变元矩阵-树定理

这题真心不错,,刷新了我对matrix-tree定理的认识, 现在我对MT定理的认识是: 可以计算 有向图的每颗外/内向树的边权值的乘积的和 无向图图的每颗生成树的边权值的乘积的和 特别的,当边权为1时,就是生成树的数量  #include using namespace std; #define INF 0x3f3f3f3f #define INFLL 0x3f3...
阅读(56) 评论(0)

UVALive - 5542 Commedia dell' arte 三维n数码问题

其实,,,不管二维三维的这类问题,本质都是一个置换群的对换问题 一置换中的一个长度为k的循环,至少需要k-1次对换才能恢复 对换有个性质就是,一个对换不管变奇偶性都是相同的 我们来看这道题,,其实移动一次0的,,就相当于一个对换,, 我们先将这个三维n数码化为置换,找出有w个循环,那么就说明至少需要对换n*n*n-w次, 再看0到最终位置最小步数x 如果x和n*n*n-x同奇偶性,就说...
阅读(75) 评论(0)

POJ - 2888 Magic Bracelet burnside引理 有限制的计数

因为珠子之间有限制,不能利用polya,我们只能回归到最原始的burnside引理看看能不能解决问题 burnside引理说的是什么那,,就是你只要给我每个置换对应的不动点个数,我就可以给你方案数 我们来尝试找出一个置换对应的不动点 因为只有旋转,所以,对于旋转k次这个置换,置换群被分为g=gcd(n,k)个循环,我们会发现,对于不动点,每个循环中柱子应该是一样的,所以我们只需要看连续的长为...
阅读(67) 评论(0)

UVA - 11255 Necklace 母函数型polya

就和普通的母函数差不多。。展开。。组合数求一下。。恩 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF ...
阅读(62) 评论(0)

POJ - 2154 Color polya定理+欧拉函数

,,赤果果的裸polya,,但是n略大,, 所以我们不能直接旋转从 0到n,我们需要优化一下, 我们可以枚举循环的个数k,那么0到n中有多少是循环个数是k的那,,就是phi(n/k)个。。我们可以先处理处n的素数因子,然后可以快速dfs出所有可行的k。。 注意,,P不是合数,,不能到最后才除以n(置换群的个数),可以在中间快速幂的时候幂次减一避免最后除P#include #include #...
阅读(56) 评论(0)

POJ - 3590 The shuffle Problem

根据置换群的基本知识知道,一个置换P,对于P^k=P的最小k,其实等于P所有循环大小的LCM 所以问题转化为给你一个数n,将它分为几个数,使得和为n,并且LCM最大 很显然和最终的数中的每个素数因子的次数有关, 我们设dp[i][j],和小于等于i的数,现在考虑到了第j个素数的最大LCM是多少 就是可以写DP了 还有一题加强版的是:http://www.lydsy.com/Jud...
阅读(54) 评论(0)

UVA - 11077 Find the Permutations 置换群+斯特林数

我们可以将这个排列写成循环的形式,可知,一个大小为x循环,需要对换x-1次才能对换完成 所以题目的意思就是有多少种排列有n-k个循环,等价于n个数分成n-k个园排列的方案数,这正是第一类斯特林数。。不过要注意,,这题要用ULL。。 #include #include #include #include #include #include #include #include #include #...
阅读(74) 评论(0)

hdu 6134 Battlestation Operational 莫比乌斯反演

题目链接点这里 #include using namespace std; #define INF 0x3f3f3f3f #define INFLL 0x3f3f3f3f3f3f3f3f #define FIN freopen("in.txt","r",stdin); #define mem(x,y) memset(x,y,sizeof(x)); typedef...
阅读(275) 评论(2)

HDU - 4773 Problem of Apollonius 圆的反演

题目链接点这里 圆的反演主要有3条性质 //1.不过反演中心的圆经过反演变换仍然是一个不过反演中心的圆. //2.不过反演中心的直线经过反演变换是一个经过反演中心的圆. //3.反演变换不改变图形的相切性. 然后这道题就解决了。。 //注意精度,直接用rad计算圆弧中点, #include #include #include #include #include #include #...
阅读(68) 评论(0)

UVALive - 2572 Viva Confetti 极角排序

题目链接点这里 大白上的经典题,,但是比较难想。。。 安装大白的思路,我们可以用圆弧的中点,前后偏移eps,用点代替圆弧里外的区域,就转化过来了。。。。 这题精度有毒,,,还是看了代码仓库里的代码,,才A的。。计算几何精度太麻烦了,,反正原则就是,,,对于,,sqrt(),cos,sin这些函数能不用就不用,,,对于除法也能不用就不用,,这些写法大概都需要积累吧。。。 //注意精度,直接用...
阅读(66) 评论(0)

旋转卡壳

最近看到一篇非常好的关于旋转卡壳应用的博客: 旋转卡壳——目录页  打算慢慢做起了,恩...
阅读(51) 评论(0)

Gym - 101234G Dreamoon and NightMarket

题目链接点这里 这题感觉和图上k短路很类似,,用优先队列一直弹弹弹直到弹满k个就好了 /*%%%%%%%%%%%%%lcy%%%%%%%%%%%%%%%%%%%%*/ #include #include #include #include #include #include #include #include #include #include #include #include #i...
阅读(44) 评论(0)

ZOJ - 3871 Convex Hull 极角排序

题目链接点这里 联想到我们算多边形面积时,用源点到边的叉积计算, 我们可以先枚举一个点u,然后以这个点极角排序枚举其他点v,就可以枚举点,这样可以方便计算在计算uv左边的点,从而求出他为边的凸包个数。。。 #include #include #include #include #include #include #include #include #include #include #incl...
阅读(42) 评论(0)

UVALive - 7281 Saint John Festival logn判断点是否在凸多边形内

题目链接点这里 对于判断点是否在凸多边形内有logn的算法,,可以看这一篇博客 HLG 1429 凸多边形【快速判断点在凸多边形内】 #include #include #include #include #include #include #include #include #include #include #include #include #include...
阅读(179) 评论(1)

HDU - 4373 Mysterious For Lucas+crt

题目链接点这里 显然,第一类型循环可以将循环分为k块,每一块可以单独计算, 根据打表+查OEIS(雾),可得式子为:C(n-1+i,n-1)(i是相邻一个一类循环到接下来一个一类循环之间循环的个数(加上一个一类循环)) 然而因为这个东西不是素数 364875103=97*364875103,所以我们可以分别将P为97和364875103算一次对应的,,然后用crt合并出答案 我们可以预处理...
阅读(62) 评论(0)
141条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:20652次
    • 积分:1451
    • 等级:
    • 排名:千里之外
    • 原创:130篇
    • 转载:11篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论