大家好,时隔一年,我复活了!

这两题并没有什么关系,只是一起A掉了就顺便一起写个题解吧……


CF 285D

打表

看了好久没有什么想法,猜测答案不会太大就直接打表。
发现n为偶数答案就是0。
n为13可以秒出,n为15大概等一会儿就好了,恩然后就过了。
打表代码不小心删了,反正不难写吧。


CF 285E

计数DP

第一反应记f[i][j][k][0/1][0/1]表示1~i已经填进去,且此时恰有j个位置满足good position,k表示下标大于i+1的位置有多少数,后面两个0/1表示i+1和i+2位置有没有数。因为下标大于i+1的数对i没有影响,所以每一个位置有数字的概率都是相等的,这样乘上一个分数就能知道i+2有数字的方案数。转移就是枚举i+1放哪里,这样且不论是不是对的,已经是三方的了。

发现有个k很难受,考虑优化掉它。之所以要记k,是因为不满足good position的数放在后面是有后效性的。要免去k,就干脆不放这些数,最后乘上阶乘表示随便放。那么这样就不能保证恰好j个位置满足,然而我们发现这样就能使用容斥了。观察发现对于状态中的j个good,一个实际上有m个good的方案会被算C(m,l)。那就直接容斥吧。

#include<cstdio>
#define N 1005
#define MOD 1000000007
using namespace std;
int f[N][N][2][2], F[N];
int C[N][N], fac[N];int main()
{int n, k;scanf("%d%d",&n,&k);C[0][0] = 1;for(int i = 1; i <= n; i++){C[i][0] = 1;for(int j = 1; j <= i; j++)C[i][j] = (C[i-1][j] + C[i-1][j-1]) % MOD;}fac[0] = 1; for(int i = 1; i <= n; i++) fac[i] = 1ll * fac[i-1] * i % MOD;f[1][0][0][0] = 1;f[1][1][0][1] = 1;for(int i = 1; i < n; i++)for(int j = 0; j <= i; j++){for(int s1 = 0; s1 <= 1; s1++) for(int s2 = 0; s2 <= 1; s2++){if(!s1) (f[i+1][j+1][s2][0] += f[i][j][s1][s2])%=MOD; // put i+1 on iif(i != n-1) (f[i+1][j+1][s2][1] += f[i][j][s1][s2])%=MOD; // put i+1 on i+2(f[i+1][j][s2][0] += f[i][j][s1][s2])%=MOD;}}for(int j = 0; j <= n; j++){F[j] = f[n][j][0][0] + f[n][j][1][0];F[j] = 1ll * F[j] * fac[n-j] % MOD;}for(int i = n; i >= 0; i--)for(int j = n; j > i; j--)(F[i] -= 1ll * F[j] * C[j][i] % MOD) %= MOD;printf("%d\n",(F[k]+MOD)%MOD);}

CF 285D 285E相关推荐

  1. 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!

    前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...

  2. OC对象 vs CF对象

    2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...

  3. CF 990A. Commentary Boxes【数学/模拟】

    [链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...

  4. 推荐算法——基于协同过滤CF

    https://www.toutiao.com/a6643326861214482957/ 2019-01-06 18:21:09 前边我们已经介绍了推荐算法里的基于内容的推荐算法CB,今天我们来介绍 ...

  5. 索引贴——移动开发(.Net CF 停止更新)

    这是关于本人博客的技术索引贴,希望能方便的让您阅读到相关技术文章--不断更新中.一整理才发现,好多啊,哈哈- 一..Net CF技巧:搜集.转载一些和CF开发相关的辅助文章,比较适合初学者.开发入门者 ...

  6. 解答:CF截图保存在哪

    为什么80%的码农都做不了架构师?>>>    大家玩CF(穿越火线)的时候遇到精彩的画面总希望截图保存下来,然而有些游戏玩家截图后却不知道CF截图保存在哪!这不得不说是个悲剧,但是 ...

  7. CF里面的资源载入问题

    前一段时间已经发现CF在载入资源的时候会怪怪的,但是这一段时间都不曾记起要对这个问题研究一下.最近又发现这个问题了,实在是恼火.俗话说择日不如撞日(粤语),唉,就今天啦.这个问题是在VS2k5里面调试 ...

  8. [CF.Skills]播放嵌入资源的声音文件

    [CF.Skills]播放嵌入资源的声音文件 摘要:本文阐述了在Windows Mobile中如何播放潜入资源的声音文件KeywordsPlaySound, Windows Mobile, Embed ...

  9. CF#190DIV.1

    1 /* 2 CF#190DIV.1-C 3 题意:给你n个结点的树,给这些结点标记字母AB..Z,对于标记相同的结点路径上 4 的结点的标记必须有一个是大于该标记的:问是否可以标记(A是最大标记) ...

  10. 汇编SF、CF、 OF 、ZF、 PF

    SF=0(最高位是什么,ZF就是什么) CF=1(最高位有进位或借位就置1) ZF=0(结果为0,ZF就置1) OF=1(两个负数相加变成正数,溢出) PF=0(反映结果"1"的个 ...

最新文章

  1. 多任务训练的模式结构扩散
  2. python launcher怎么使用_QMUI实战(一)—为何我们要使用 LauncherActivity?
  3. Code-First Migrations随Entity Framework 4.3一同发布
  4. 手工编译Android程序
  5. CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解
  6. 联想e431笔记本更改硬盘模式bios设置的详细教程
  7. 分享一份 sublime 的个人配置文件
  8. mysql留存率除了存储过程_基于MySQL分析线上充值留存率
  9. java lambda 原理_Java Lambda表达式原理及多线程实现
  10. python 自动化测试面试题及答案_自动化测试面试题及答案
  11. Windows目录下SysWow64文件夹与System32文件夹
  12. 私人助手android,私人助手Pro专业版
  13. 施努卡:机器视觉公司排名(机器人视觉系统)
  14. 张人蟠 : 币改项目的多复合通证设计经验分享
  15. python实现划词翻译
  16. 查询出生日期到现在的天数
  17. MATLAB小技巧(20)矩阵分析--主成分回归
  18. 领英:全球人工智能人才25万 我国人才潜能不输欧美
  19. 克鲁斯卡尔kruskal算法(Java)
  20. [Android应用开发] 01.快速入门

热门文章

  1. 小白量化《穿云箭集群量化》(1)小白草根超级量化软件介绍
  2. 我来告诉你,一个草根程序员如何进入BAT
  3. 阿里云 搭建flink 后 web界面可以访问 但是没有task manager节点存活
  4. 数据库系统概念-第六版 - charter 3 - 笔记
  5. oracle报1653解决办法,oracle 建立查询账号ORA 1653和ORA 01502错误处理方法
  6. PNG图片背景透明-简单方法
  7. 给WordPress加个评论关闭时间提示
  8. 【Git】从本地上传到github的文章显示图片的方法
  9. vue运行报错冒号问题,browser.js:158 Uncaught SyntaxError: Unexpected token ‘:‘
  10. imagemagick对于图像处理的一些方式