https://codeforces.com/contest/1795/problem/D

#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=3e5+10,mod=998244353;
int n;
ll qmi(ll a,ll k){
ll res=1;
while(k){
if(k&1) res=res*a%mod;
k>>=1;
a=a*a%mod;
}
return res;
}
bool fact(int a,int b,int c){
return a==b&&a<c&&b<c;
}
int main(){
ll res=1;
cin>>n;
ll k=1;
for(int i=1;i<=n;i+=3){
int x,y,z;
cin>>x>>y>>z;
if(x==y&&x==z) k=k*3%mod;
else if(fact(x,y,z)||fact(x,z,y)||fact(y,z,x)) k=k*2%mod;
}
for(int i=n/3,j=1;i>n/6;i--,j++){
res=res*i%mod;
res=res*qmi(j,mod-2)%mod;
}
res=res*k%mod;
cout<<res<<endl;
}
/*
就是每三个点一组,给所有数字染色,颜色只有红蓝,且一半染红一半染蓝
要想要使得结果最大
每个三原组有两种染法,红蓝蓝或者蓝红红
我们一共n/3个组,根据对称可得,n/6个得染红蓝蓝
另外有些特殊情况
例如当三个边权都一样时,就有三种情况
当两个边权一样且都是小边权时有两种情况
*/

最新文章

  1. mysql 使用函数
  2. node与mongodb的使用
  3. jQuery学习笔记 - 基础知识扫盲入门篇
  4. java.util.ConcurrentModificationException
  5. Win10系统下编译GDAL1.9.2版本
  6. 关于Android 构建
  7. linux bin文件制作
  8. c#问答篇:对象与引用变量-----初学者的困惑
  9. LAMP的安装
  10. top 查看资源使用
  11. 为jEasyUi的日期控件添加一个“清空”按钮----通过修改1.4的easyui.min.js
  12. Codeforces Round #460 D. Karen and Cards
  13. balancer.go
  14. Object的所有方法
  15. 【转载】BlockingQueue
  16. JavaScript BOM和DOM
  17. 控件_AnalogClock
  18. Android性能优化-减小图片下载大小
  19. [Artoolkit] ARSimpleNativeCarsProj for Multi Markers Tracking
  20. 副本集mongodb 无缘无故 cpu异常

热门文章

  1. Java 进阶P-4.4+P-4.5
  2. 导出excel类型转换
  3. Git 多账号 SSH 配置
  4. Mockito单元测试 初试
  5. 三:Mybatis
  6. 学习Vue过程中遇到的问题---code: &#39;MODULE_NOT_FOUND&#39;
  7. JZOJ 2020.07.27【NOIP提高组】模拟
  8. JZOJ 4211. 【五校联考1day2】送你一颗圣诞树
  9. PDO使用返回结果集的方法输出数据库里面的单个值
  10. JavaSE 对象与类(一)