Codeforces300D Painting Square
简述
标签里fftfft是什么鬼..
f[i][j]f[i][j]表示如果每次都划分左上角能划分ii次的正方形,给jj次划分机会的方案数。
如果直接枚举四个正方形分配多少次划分机会的话,枚举的复杂度就是组合数级别的。
考虑分治,我从中间一劈为二,左边分配kk次划分,右边分批j−k−1j-k-1次划分,乘起来求个和就是答案。
那么问题转成怎样求两个一样大的正方形总共jj次划分的方案数,那就再次枚举左边划分多少次,右边划分多少次,乘起来求个和就是答案。
这样预处理的复杂度是O(k2logn)O(k^2logn)。
那么对于一次询问,怎样求答案?
假设输入的是nn和kk,显然只有当nn是奇数的时候才能够进行一次划分,那划分的层数就取决于你不断整除二多少次除成11或者偶数。其实就是看二进制末尾不包含最高位有多少个11。
求出来之后直接将对应的ff输出就行了。
代码
//dp
#include <cstdio>
#include <algorithm>
#define mod 7340033
#define ll long long
using namespace std;
ll f[31][1005], g[31][1005];
void init()
{int i, j, k;for(i=0;i<=30;i++)f[i][0]=g[i][0]=1;for(i=1;i<=30;i++){for(j=1;j<=1000;j++){for(k=0;k<=j-1;k++)f[i][j]+=(ll)g[i-1][k]*g[i-1][j-k-1];for(k=0;k<=j;k++)g[i][j]+=(ll)f[i][k]*f[i][j-k];f[i][j]%=mod, g[i][j]%=mod;}}
}
int main()
{init();int T, n, k, t;scanf("%d",&T);while(T--){scanf("%d%d",&n,&k);for(t=0;n&1 and n^1;n>>=1)t++;printf("%d\n",f[t][k]);}return 0;
}
Codeforces300D Painting Square相关推荐
- Codeforces 300D Painting Square dp
Painting Square 转换一下变成 a 层的完全四叉树, 占领 k 个点有多少种方案, 点能被占当且仅当它的父亲被占. a <= 30, 所以我们把每层都dp出来, dp[ i ][ ...
- 【CodeForces300D】Painting Square
[题目链接] 点击打开链接 [思路要点] 首先,很重要的一点:"The bear chooses some row and some column inside the chosen squ ...
- [CodeForces 300D Painting Square]DP
http://codeforces.com/problemset/problem/300/D 题意:每一次操作可以选一个正方形,令边长为n,如果n为奇数那么可以从中间画一个十字,分成4个大小相等的边长 ...
- Codeforces 300D Painting Square 题解
题意 一个四周围都是黑色的由n行n列小格子组成的方块,每次可以选择一个已经由黑框包围的正方形将它的一行一列涂黑要求分割出的部分还都是正方形,问涂k次可以有多少种不同的涂法 思路 因为只能分割成正方形, ...
- [Codeforces Round #195 DIV2E (CF336E)] Vasily the Bear and Painting Square
题意 当n=0n=0时有如下图像 当n=1n=1时有如下图像 当n=2n=2时有如下图像 题目要求对定的nn的图像,染k个三角形(并不要求染最小的三角形),求染色方案数. 需要注意的是:即使染色完毕后 ...
- hdu 5079 Square
http://acm.hdu.edu.cn/showproblem.php?pid=5079 题意: n*n网格,每个格子可以涂黑色或白色,有的格子必须涂黑色 问最大白色正方形边长分别为0,1,2,- ...
- [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...
- 概念艺术绘画学习教程 Schoolism – Foolproof Concept Painting with Airi Pan
Schoolism--万无一失的概念绘画潘 大小解压后:3.19G 含课程素材文件 1920X1080 .mp4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 信息: 万无一失的概念绘画潘 本课 ...
- 367. Valid Perfect Square
题目: Given a positive integer num, write a function which returns True if num is a perfect square els ...
最新文章
- scala学习笔记-面向对象编程之Trait
- CodeForces 518A - Chewbaсca and Number(思路)
- POJ 2785 4 Values whose Sum is 0
- UVA 10603 - Fill(dijkstra + 状态图)
- 性能监控—spotlight监控mysql性能
- 新手Java程序员找工作更看重Java项目经验?
- Pytorch基础(十)——优化器(SGD,Adagrad,RMSprop,Adam,LBFGS等)
- python3绘图_python3绘图示例2(基于matplotlib:柱状图、分布图、三角图等)
- 用Java控制小电灯-树莓派PI4J
- Android沉浸式(侵入式)标题栏(状态栏)Status(三)
- windows 2008之可重启的AD服务
- 身为一名Java程序员,在面试的时候常常被问到的,下面我总结一些常常别问到的问题。
- 计算机之父ppt,24计算机之父童年的故事.ppt
- 50种常见Matplotlib科研论文绘图合集!赶紧收藏~~
- 如何建设企业入侵防御体系
- (1)Air Band调研
- Linux.date命令详解
- Python+Selenium 实现新理念外语网络教学平台 自动答英语听力 -- 山东科技大学
- windbg r eip=0xxxxxxxxx如何实现?
- 计算机相关的队名,有创意的队名和口号(精选80个)