【BZOJ1004】【HNOI20008】cards
看黄学长的代码才写出来的,sro_hzwer_orz
原题:
小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有
多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方
案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.
两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗
成另一种.Sun发现这个问题有点难度,决定交给你,答案可能很大,只要求出答案除以P的余数(P为质数).
m<=60,m+1<p<100,Max{Sr,Sb,Sg}<=20。
已经把置换给出来了,要么burnside,要么polya,然而这题颜色有使用限制,所以不能用polya(polya还没理解,这里还不懂)
所以就用burnside:一个置换群的等价计数=(每个置换的置换后等价情况数)/置换总数
置换后的等价情况数就是在置换中没变的数,这个很好写
然后在置换中没变的数要刷的颜色是一样的,只有三种颜色所以就可以搞个三维的01包计数
最后除的内个置换总数因为要膜,所以要用到除法逆元
怎么用呐:
bx mod p=1,x就是b模P的乘法逆元,呢么x≡1/b(mod p),呢么a/b≡ax(mod p),然后用扩展欧几里得求乘法逆元即可(就是解bx mod p=1,某年NOIPT1)
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 using namespace std; 7 int sr,sb,sg,n,m,p; 8 int huan[110][110]; 9 bool visited[110]; 10 int ge[110]; 11 int f[110][110][110]; 12 int ans=0; 13 void exgcd(int a,int b,int &x,int &y){ 14 if(!b){ x=1,y=0; return ;} 15 exgcd(b,a%b,x,y); 16 int t=x; x=y; y=t-a/b*y; 17 } 18 int dp(int x){ 19 memset(visited,0,sizeof(visited)); 20 int cnt=0,temp; 21 for(int i=1;i<=n;i++)if(!visited[i]){ 22 visited[i]=true; 23 ge[++cnt]=1; temp=i; 24 while(!visited[huan[x][temp]]){ 25 ge[cnt]++; 26 visited[huan[x][temp]]=true;//这里容易蒙…… 27 temp=huan[x][temp];//temp指向了这个连的下一个,再次循环时判断的是下一个的下一个…… 28 } 29 } 30 memset(f,0,sizeof(f)); f[0][0][0]=1; 31 for(int t=1;t<=cnt;t++) 32 for(int i=sr;i>=0;i--) 33 for(int j=sb;j>=0;j--) 34 for(int k=sg;k>=0;k--){ 35 if(i>=ge[t]) f[i][j][k]=(f[i][j][k]+f[i-ge[t]][j][k])%p; 36 if(j>=ge[t]) f[i][j][k]=(f[i][j][k]+f[i][j-ge[t]][k])%p; 37 if(k>=ge[t]) f[i][j][k]=(f[i][j][k]+f[i][j][k-ge[t]])%p; 38 } 39 return f[sr][sb][sg]; 40 } 41 int main(){//freopen("ddd.in","r",stdin); 42 cin>>sr>>sb>>sg>>m>>p; 43 n=sr+sb+sg; 44 for(int i=1;i<=m;i++) 45 for(int j=1;j<=n;j++) 46 scanf("%d",&huan[i][j]); 47 m++; 48 for(int i=1;i<=n;i++) huan[m][i]=i;//注意还有不置换的情况 49 for(int i=1;i<=m;i++) 50 ans=(ans+dp(i))%p; 51 int x,y; 52 exgcd(m,p,x,y); 53 while(x<=0)x+=p; 54 cout<<ans*x%p<<endl; 55 return 0; 56 }
View Code
转载于:https://www.cnblogs.com/JSL2018/p/5911855.html
【BZOJ1004】【HNOI20008】cards相关推荐
- 毕业准备:外企面试--基本涵盖了所有问题【附带有答案版本】
毕业准备:外企面试--基本涵盖了所有问题[附带有答案版本] 2011-03-06 00:03:57 1. So, tell me a little about yourself. You don't ...
- 【国际大厂招人啦】PayPal专场招聘直播,立即占位!
当当当当!万众期待的!福布斯全球企业榜上有名的!PayPal直播招聘!终于登场啦! 进大厂算什么梦想,走向国际才是王道.外资公司的好(壕),只有去了才知道! 各种职位供你选择,北京上海均有机会! 戳这 ...
- 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解
疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- 【Android Audio 入门 七】声卡的创建
[Android Audio 入门 七]声卡的创建 七.声卡的创建 7.1 Struct snd_card 7.2 声卡的建立流程 Step 1:创建一个 snd_card 实例 Step 2:创建声 ...
- 基于ZCU106平台部署Vitis AI 1.2/2.5开发套件【Vivado+Vitis+Petalinux2020/2022】
Vitis AI是 Xilinx 的开发平台,适用于在 Xilinx 硬件平台(包括边缘设备和 Alveo 卡)上进行人工智能算法推理部署.它由优化的IP.工具.库.模型和示例设计组成.Vitis A ...
- 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)
本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...
- 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 2774 Solved: 1230 [Submit ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- (四)Asp.net web api中的坑-【api的返回值】
(四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...
- 【C++】【九】栈的应用
[C++][九]栈的应用 就近匹配原理及其步骤: 中缀转后缀:
最新文章
- 转载:配置nginx支持pathinfo功能
- nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
- Android 数据加密算法 Des,Base64详解
- 2018/7/9-纪中某B组题【jzoj1503,jzoj1158,jzoj1161】
- Native Instruments Flair for Mac - 老式模拟磁带和踏板效果器
- Fiddler2 抓包工具,让你的信息无处可藏
- 吾爱破解论坛2021年11月11日,光棍节免费开放注册
- spring boot 集成paypal支付 rest api v2的实现
- PLC PID调试总结
- DFS.01-寻路问题
- 最让我感动的图片...
- QT pro中加入文件拷贝方法
- oscp——five86: 2
- IP转换为long类型
- oracle数据库报错:ORA-01654: 索引 XXX 无法通过 128 (在表空间 xxx 中) 扩展
- 组件,控件,用户控件
- 转载 sap FI-CO总账科目简析
- [Practical.Vim(2012.9)].Drew.Neil.Tip04学习摘要
- Python中列表相“与”时出现的问题
- ERP系统生产委外管理,内外无缝连接