【BZOJ 1004】【HNOI 2008】Cards】的更多相关文章

http://www.lydsy.com/JudgeOnline/problem.php?id=1004 注意数据给出的m是一个没有单位元的置换群! 用Burnside引理,然后对每个置换群dp一下就可以了. #include<cstdio> #include<bitset> #include<cstring> #include<algorithm> using namespace std; int a[63], Sr, Sb, Sg, m, p, n, a…
http://www.lydsy.com/JudgeOnline/problem.php?id=1005 答案是\[\frac{(n-2)!}{(n-2-sum)!×\prod_{i=1}^{cnt}(d[i]-1)!}×(n-cnt)^{n-2-sum}\] \[sum=\sum_{i=1}^{cnt}(d[i]-1)\] 用到了prufer编码,参考http://www.cnblogs.com/zhj5chengfeng/p/3278557.html 注意要写高精度! #include<cs…
计算几何真的好暴力啊. #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define max(a,b) (a) > (b) ? (a) : (b) #define N 1003 using namespace std; const double Pi = acos(-1); inline int dcmp(double x) {return (fabs(x)…
之前机房没网就做的这道题,用的解析几何判断交点横坐标 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define N 500003 #define eps 1E-8 using namespace std; struct node { double k, b; int id; } line[N]; int n, stack[N], top = 0; bool a…
1004: [HNOI2008]Cards Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次…
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 [题意] 给你sr+sb+sg张牌,(令n=sr+sb+sg),让你把这n张牌染成3种颜色(红蓝绿),且红色sr张,蓝色sb张,绿色sg张; 同时再给你m个变化关系change[i],这里从左往右数第change[i]张牌可以移动到第i个位置; m行的变化关系每行都有n个change,即change[1..n] 然后任意两种染色的方案只有在用m个变化关系不能互相到达时才认为不同…
[题目链接] 点击打开链接 [算法] 显然,越狱情况数 = 总情况数 - 不能越狱的情况数 很容易发现,总情况数 = M^N 不能越狱的情况数怎么求呢? 我们发现,不能越狱的情况,其实就是第一个人任选一种宗教,后面n-1个人,每个人都选 一种与前面一个人不同的宗教,所以第一个人有M种选法,后N-1个人,每个人都有M-1种选法,因此,不能越狱的情况 数 = M * (M - 1)^(N - 1) 所以,越狱情况数 = M ^ N - M * (M - 1)^(N - 1) 注意算乘方时,要用到快速…
Burnside/Polya+背包DP 这道题目是等价类计数裸题吧……>_> 题解:http://m.blog.csdn.net/blog/njlcazl_11109/8316340 啊其实重点还是:找出每个置换下的不动点数目 这道题比较特殊,牌的数量是限定的,所以只能DP来搞……(dp[R][G][B]表示的是R张红牌,G张绿牌,B张蓝牌在当前这个置换下,有多少种方案是会置换回自身的) 恒等置换单独处理一下即可(其实就是总染色数,多重集排列数吧……$\frac{N!}{R!G!B!}$) 最…
题目链接:BZOJ - 1004 题目分析 首先,几个定义和定理引理: 群:G是一个集合,*是定义在这个集合上的一个运算. 如果满足以下性质,那么(G, *)是一个群. 1)封闭性,对于任意 a, b 属于 G, a * b 属于 G 2)结合律, a * b * c = a * (b * c) 3)单位元,在 G 中存在一个单位元 e ,使得对于 G 中任意的 a , a * e = e * a = a 4)逆元, 对于 G 中任意的 a ,在 G 中存在 b , 使得 a * b = e ,…
http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]},可以单点修改颜色.(n, m, q<=100000) #include <bits/stdc++.h> using namespace std; const int N=100005, M=100005; typedef long long ll; inline int getint()…