CF1027E Inverse Coloring
题意:n × n的矩阵,每个位置可以被染成黑/白色。
一种gay的染色是任意相邻两行的元素,每两个要么都相同,要么都不同。列同理。
一种gaygay的染色是一种gay的染色,其中没有哪个颜色的子矩阵大小大于等于k。
求有多少种gaygay的染色。
解:首先手玩这个gay的染色到底是什么情况。
然后发现,每种gay的染色都一一对应一种只有第一行第一列的染色。换句话说,决定了第一行第一列,就可以得到唯一一种gay的染色,并且每种gay的染色都可以用这种方式得到。
然后考虑gaygay的染色,显然,找出第一行最长连续段和第一列最长连续段。这两者的长度乘积 < k即可。
又由于第一行和第一列有一个公共元素,而黑白又是轮换对称的,所以把第一个格子固定为黑色,最后×2即可。
DP求出一行的最长连续段恰好为k时方案数。然后前缀和就是最长连续段小于等于k的方案数了。
枚举第一行的最长连续段,可以得到一个第一列最长连续段的限制。方案数乘起来就行了。
注意这个限制要对n取min。
DP这个环节,具体来说,f[i][j][1/0]表示前i个,最大连续段为j,当前有没有长度为j的连续段的方案数。刷表法转移,枚举当前放长为多少的连续段即可。复杂度n3。
- #include <cstdio>
- #include <algorithm>
- const int N = , MO = ;
- int f[N][N][], sum[N];
- inline void add(int &a, const int &b) {
- a = (a + b) % MO;
- return;
- }
- int main() {
- int n, k;
- scanf("%d%d", &n, &k);
- for(int j = ; j <= n; j++) {
- f[][j][] = ;
- }
- for(int i = ; i <= n; i++) {
- for(int j = ; j <= n; j++) {
- // f[i][j][0/1]
- for(int k = ; k < j && i + k <= n; k++) {
- add(f[i + k][j][], f[i][j][]);
- add(f[i + k][j][], f[i][j][]);
- }
- if(i + j <= n) {
- add(f[i + j][j][], f[i][j][]);
- add(f[i + j][j][], f[i][j][]);
- }
- }
- }
- // f[n][i][1]
- for(int i = ; i <= n; i++) {
- sum[i] = (f[n][i][] + sum[i - ]) % MO;
- }
- int ans = ;
- for(int i = ; i <= n; i++) {
- int t = std::min(n, (k - ) / i);
- add(ans, 1ll * f[n][i][] * sum[t] % MO);
- }
- printf("%d", ans * % MO);
- return ;
- }
AC代码
CF1027E Inverse Coloring的更多相关文章
- codeforces 1027 E. Inverse coloring (DP)
E. Inverse Coloring time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces 1027E Inverse Coloring 【DP】
Codeforces 1027E Inverse Coloring 题目链接 #include<bits/stdc++.h> using namespace std; #define N ...
- 【CF1027E】Inverse Coloring(DP)
题意:给出一个n*n的矩阵,要求在每个位置涂上黑/白色, 要求满足:任意相邻的两行,其颜色要么完全相同,要么完全相反 任意相邻的两列,其颜色也要么相同要么完全相反 且这个矩形中,不存在任意一个大小大于 ...
- CF 1027E Inverse Coloring
当天晚上并没有看懂题意,然后就刚了40分钟F,但是没有弄出来呜呜呜. 推荐博客: https://blog.csdn.net/Dream_maker_yk/article/details/81840 ...
- codeforces 1027E. Inverse Coloring(计数)
一开始发现的性质是确定了第一行后,后面的行只需要考虑和前面的行相同或者不同,整个过程只需要考虑行,构出的图一定符合性质(即同样满足列的性质),但是接下来死活定义不出状态,事实证明自己还是想的太少了 思 ...
- Educational Codeforces Round 49 (Rated for Div. 2)
题目链接 还缺F和G,至少上橙之后把F补了吧. A - Palindromic Twist 题意:每个字母恰好操作一次,变成其之前或者其之后的一个字母,注意'a'和'z'不互通,求是否可以变成回文串. ...
- Codeforces Edu Round 49 A-E
A. Palindromic Twist 由于必须改变.所以要使\(a[i] = a[n - i + 1]\). 要么同向走,但必须满足之前的\(a[i] = a[n - i + 1]\). 要么相遇 ...
- 【POJ】1419:Graph Coloring【普通图最大点独立集】【最大团】
Graph Coloring Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5775 Accepted: 2678 ...
- 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题
解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http ...
随机推荐
- 20155218《网络对抗》Exp2 后门原理与实践
20155218<网络对抗>Exp2 后门原理与实践 常用后门工具实践 1.Windows获得Linux Shell: 在Windows下,先使用ipconfig指令查看本机IP,使用nc ...
- 20155227《网络对抗》Exp8 Web基础
20155227<网络对抗>Exp8 Web基础 实验内容 (1)Web前端HTML (2)Web前端javascipt (3)Web后端:MySQL基础:正常安装.启动MySQL,建库. ...
- POJ2531&&1416&&2676&&1129
搜索专题的最后一块了,也告别了这些老的东西了 接下来就是些全新的内容了啊! 这次的标签是简单搜索技巧和剪枝,也就是优化爆搜 当然,像Dancing links这样的玄学操作还是没有的 2531 题意: ...
- service手动实例化(new)导致类中的spring对象无法注入的问题解决
下面说的这个画横线的可能是错误的,因为我之前用controller继承父类的注解对象的时候成功了,所以可能这次的唯一原因就是 不该把本该从ioc容器中拿出的对象通过new的方式实例化,至于继承注解对象 ...
- centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)
写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用. 当然,在真实的产线环境中需要分析的数据和难度远远高于demo所示,所以demo的作用也仅仅只能起到介绍工具的作用. ...
- 软件测试_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程
这次主要是写一下使用Loadrunner对APP进行性能测试的基本流程,有关性能测试监控指标请查看链接:软件测试_性能测试_关注点. 先决条件:已安装Loadrunner.如未安装,请查看链接:软件测 ...
- debug 在windows下的使用
debug是什么? debug是一款windows和DOS系统下的一款软件,其最早可追溯到1937年的"马克1号"(具体度娘):早期debug主要在DOS和windows系统中,它 ...
- 【SE】Week3 : 四则运算式生成评分工具Extension&Release Version(结对项目)
Foreword 此次的结对项目终于告一段落,除了本身对软件开发的整体流程有了更深刻的了解外,更深刻的认识应该是结对编程对这一过程的促进作用. 在此想形式性但真心地啰嗦几句,十分感谢能端同学能够不厌其 ...
- 《Linux内核分析》第五周:分析system_call中断处理过程
实验 分析system_call中断处理过程 使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shiyanlou.com/xref/l ...
- Linux内核分析第二周学习笔记
linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...