题目:点击打开链接
题意:给n*n个格子,每个格子可以填3种颜色。问有多少种填色方案,至少有一列或一行是同色的。
分析:首先反过来考虑,找不幸运的组合,因为这样便于容斥。 
要把列和行分开考虑。 
首先排除掉列上出现相同的情况,也就是(3^n−3)^n种,这个也就是容斥里开始时最大的范围,显然还包括了一些行上相同的情况,所以下面开始容斥。 
在列上不出现相同情况下,行出现相同的情况要分两类讨论, 
1. 那些整行出现的同一颜色的行的颜色完全相同,比如有三行出现整行颜色一样,并且都是绿,这种情况列上的颜色不能和他们相同,有3∗C(i,n)∗(3^(n−i)−1)^n 种。 
2. 那些整行出现的同一颜色的行的颜色不完全相同,比如有三行出现整行颜色一样,但他们分别是红黄蓝,这种情况,列上就可以随便选了,有(3^i−3)∗C(i,n)∗3^(n−i)n。 
最终使用容斥。

ans=3n2−(3n−3)n−Σni=1(−1)iCin(3∗(3n−i−1)n+(3i−3)∗3(n−i)n)

代码:

#pragma comment(linker, "/STACK:102400000,102400000")///手动扩栈
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cstdio>
#include<bitset>
#include<vector>
#include<cmath>
#include<ctime>
#include<stack>
#include<queue>
#include<deque>
#include<list>
#include<set>
#include<map>
using namespace std;
#define debug test
#define mst(ss,b) memset((ss),(b),sizeof(ss))
#define ll long long
#define ull unsigned long long
#define pb push_back
#define mp make_pair
#define inf 0x3f3f3f3f
#define eps 1e-10
#define MOD 998244353
#define PI acos(-1.0)
const int N = 1e6+10;ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
int to[4][2]={{-1,0},{1,0},{0,-1},{0,1}};ll n,ans;ll qp(ll a,ll b) {ll s=1;while(b) {if(b&1) s=s*a%MOD;a=a*a%MOD;b>>=1;}return s;
}int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;ans=(qp(3,n*n)-qp(qp(3,n)-3,n)+MOD)%MOD;ll xs=-1,c1=1;for(int i=1;i<=n;i++) {xs*=-1;c1=c1*(n-i+1)%MOD;c1=c1*qp(i,MOD-2)%MOD;ans += xs*(3*c1%MOD*qp(qp(3,n-i)-1,n)%MOD + c1*(qp(3,i)-3)%MOD*qp(3,(n-i)*n)%MOD)%MOD;}ans = (ans%MOD+MOD)%MOD;cout<<ans<<endl;return 0;
}

参考博客:https://blog.csdn.net/z631681297/article/details/80889816

ans=3n2−(3n−3)n−Σni=1(−1)iCin(3∗(3n−i−1)n+(3i−3)∗3(n−i)n)

CodeForces 997C Sky Full of Stars相关推荐

  1. [Codeforces 997C]Sky Full of Stars(排列组合+容斥原理)

    [Codeforces 997C]Sky Full of Stars(排列组合+容斥原理) 题面 用3种颜色对\(n×n\)的格子染色,问至少有一行或一列只有一种颜色的方案数.\((n≤10^6)\) ...

  2. CodeForces - 997C Sky Full of Stars

    题面在这里! 题解见注释 /*设至少有i行,j列是一种颜色的方案数为 f(i,j)那么:1.i==0||j==0 时 , f(i,j) = C(n,i) * C(n,j) * 3^( (n-i)*(n ...

  3. CF 997C Sky Full of Stars

    传送门 题目大意 思路 参考代码 总结 传送门 题目大意 有一个 n×n(n≤106)n×n(n≤106)n \times n \pod {n \le 10^6} 的正方形网格.用三种颜色对每个格子染 ...

  4. 【CodeForces 997C】Sky Full of Stars(组合计数)

    题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...

  5. Codeforces 997 C - Sky Full of Stars

    C - Sky Full of Stars 思路: 容斥原理 题解:http://codeforces.com/blog/entry/60357 注意当i > 1 且 j > 1,是同一种 ...

  6. 数论五之容斥——硬币购物,Gerald and Giant Chess,幸运数字,Sky Full of Stars,已经没有什么好害怕的了

    容斥的神 [HAOI2008]硬币购物 problem solution code CF559C Gerald and Giant Chess problem solution code [SCOI2 ...

  7. cf997C. Sky Full of Stars(组合数 容斥)

    题意 题目链接 \(n \times n\)的网格,用三种颜色染色,问最后有一行/一列全都为同一种颜色的方案数 Sol Orz fjzzq 最后答案是这个 \[3^{n^2} - (3^n - 3)^ ...

  8. CF997C Sky Full of Stars

    CF997C , Luogu 有一个 \(n \times n ( n \leq 10^6)\)的正方形网格,用红色,绿色,蓝色三种颜色染色,求有多少种染色方案使得至少一行或一列是同一种颜色.结果对 ...

  9. CF997C Sky Full of Stars 数论

    正解:容斥 解题报告: 传送门! 两个方法,分别港下QAQ 先说第一种 首先要推出式子,就∑2*C(i,n)*(-1)i+1*3i*3n*n-n+3*∑∑(-1)i+j+1*C(i,n)*C(j,n) ...

最新文章

  1. 亿通行签约神策数据,数据赋能交通出行服务智能化创新升级
  2. 青岛理工邀请赛(难受的一次经历)之显示屏(按着倍数放大数字)
  3. java里shake是什么意思_shake是什么意思_shake在线翻译_英语_读音_用法_例句_海词词典...
  4. C++字符操作函数cctype库
  5. 银行打电话不接有影响吗?
  6. “杀死” APP 的留白设计!
  7. AR导航真的有前途,马云领衔1亿2500万投资
  8. python编程100个小程序-整理了适合新手的20个Python练手小程序
  9. 基于Netty实现群聊功能
  10. HTML颜色表及html代码(前端必备)
  11. JSP——(图片验证码)
  12. 输入电容及DCM-CCM-QR变压器计算
  13. vue移动端项目vant组件库之style内置样式
  14. 用python孵一颗彩蛋,今日份来自程序员的浪漫
  15. 前端数据加密(Base64、MD5、AES、RSA)
  16. 网站流量分析的整体思路(大数据)
  17. 说说教育机构教学课程视频加密是如何实现的?
  18. 策略模式(用策略模式实现我们淘宝,京东,美团等等简易满减活动)
  19. 微软下载中心使用Silverlight搜索
  20. Allegro从ORCAD原理图生成网表后,导入Allegro PCB教程

热门文章

  1. mes系统故障_MES系统,解决生产过程出现的问题
  2. 项目中的复制问题 --- clipboard
  3. CAXA 3D 实体设计2020 caxa电子图板2020 64位/32位 详细安装方法
  4. Hifiman:一个国产音频厂商的忧伤[转]
  5. I love 114514,Java数据结构与算法pdf百度云
  6. ByteBuffer.wrap函数
  7. 手把手教菜鸟如何安装系统
  8. 【java】面向对象(三大特性)
  9. 2D横版冒险文字游戏Horror Book2项目总结
  10. 淘宝低价,品牌方如何平台投诉