题意:给出一个n*n的矩阵,要求在每个位置涂上黑/白色,

要求满足:任意相邻的两行,其颜色要么完全相同,要么完全相反

任意相邻的两列,其颜色也要么相同要么完全相反

且这个矩形中,不存在任意一个大小大于等于k的同色矩形

求方案数模998244353

n<=5e2,1<=k<=n^2

思路:From https://blog.csdn.net/qq_34454069/article/details/81835687

 #include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<bitset>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef vector<int> VI;
#define fi first
#define se second
#define MP make_pair
#define N 510
#define M 51
#define MOD 998244353
#define eps 1e-8
#define pi acos(-1)
#define oo 1e9 int dp[N][N],f[N]; void add(int &x,int y)
{
x=(ll)x+y;
if(x>=MOD) x-=MOD;
} int main()
{
int n,K;
scanf("%d%d",&n,&K);
for(int i=;i<=n;i++)
{
dp[][i]=;
for(int j=;j<=n;j++)
for(int k=;k<=min(i,j);k++) add(dp[j][i],dp[j-k][i]);
}
for(int i=;i<=n;i++) f[i]=(dp[n][i]-dp[n][i-]+MOD)%MOD;
int ans=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i*j<K) add(ans,(ll)f[i]*f[j]%MOD);
ans=ans*%MOD;
printf("%d\n",ans);
return ;
}

最新文章

  1. JAVA发展史
  2. 【海洋女神原创】How to: Installshield做安装包时如何添加文件
  3. sqlite query用法
  4. Linux用户名显示-bash-4.1$快速排查
  5. 1. while循环(当循环) 2. do{}while()循环 3. switch cose(多选一) 例子:当选循环下求百鸡百钱 用 switch cose人机剪刀石头布
  6. java jdbc 封装。。
  7. JavaEE是什么?
  8. &lt;s:form action=&quot;login&quot;...与&lt;s:form action = &quot;login.action&quot;.的区别
  9. 学习PHP时的一些总结(二)
  10. spoj 2319 BIGSEQ - Sequence
  11. Windows 注册表操作
  12. [stack]Evaluate Reverse Polish Notation
  13. 图片上传webuploader
  14. poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)
  15. Python中的各种装饰器详解
  16. kafka集群搭建(windows环境下)
  17. MySQL/MariaDB触发器
  18. SpringCloud-分布式链路跟踪配置详解
  19. java集合(1)
  20. 飞旋treap

热门文章

  1. 零基础学习Vim编辑器
  2. ubuntu 14.04安装nginx+php
  3. 步骤1:JMeter 录制脚本接口测试
  4. 阿里云SLB上http强制跳转到https问题处理
  5. 时间动态协同过滤(TimeSVD++)
  6. Python 学习笔记之 Numpy 库——数组基础
  7. Android之Activity小结
  8. mysql数据库,编码错误解决
  9. linux中升级安装python2.7
  10. spark1.6.0伪分布式搭建