题面

首先这 \(n\) 个数是互相独立的,所以我们不需要统一的去考虑,只需要考虑其中一个数即可。

我们以 \(k=5\) 的情况举例。

我设 \(f_i\) 为最后一行只填前 \(i\) 个点的情况数, \(g_i\) 为 \(k=i\) 时总共的情况数。

显然, \(f_0\) 就是 \(g_{k-1}\) ,在这里就是 \(g_4\) 。



然后 \(f_1\) 其实就是图中黑色部分一定填,白色一定不填,红色部分可选的种类数。进一步观察,这个红色部分其实就是 \(g_3\) 。





再进一步由图可以得到, \(f_2=g_2,f_3=g_1\) 。

再往下, \(f_4\) 和 \(f_5\) 都没得选了,所以 \(f_4=f_5=1\) 。

为了下面讲述方便,我们设 \(f_4=g_0=1\) 。

那么我们已经得到了 \(g_5=\sum^5_{i=1}f_i\) ,那么我们可以推广到其他数,可知 \(g_k=\sum^k_{i=1}f_i\)

再进一步观察,当 \(k=5\) 时, \(f_0=g_4,f_1=g_3,f_2=g_2,f_3=g_1,f_4=g_0\) ,

所以 \(g_5=\sum^5_{i=1}f_i=\sum^4_{i=1}g_{4-i}+f_5=\sum^4_{i=1}g_i+1\) 。

推广到其他数,可知 \(g_k=\sum^{k-1}_{i=1}g_i+1\)

那么我们可以根据 \(g_0=1\) 推出 \(g_1=2,g_2=4,g_3=8\) 。

观察规律,可以发现 \(g_i=2^i\) 。

如何证明呢?我们使用数学归纳法。

首先当 \(i=0\) 时,\(g_0=1=2^0\) ,结论成立。

再假设 \(i=k\) 时,结论已成立,那么 \(g_{k+1}=\sum^{k}_{i=1}g_i+1=\sum^{k-1}_{i=1}g_i+1+g_k\) ,而 \(\sum^{k-1}_{i=1}g_i+1=g_k\) ,所以 \(g_{k+1}=\sum^{k-1}_{i=1}g_i+1+g_k=2\times g_k=2\times 2^k=2^{k+1}\) ,所以 \(i=k+1\) 时仍然成立。

所以我们就证明出了 \(g_i=2^i\) 。

回到最开始。我们有 \(n\) 个数,每个数有 \(g_k=2^k\) 种选择,那么根据乘法原理,总计的选择数就是 \(2^{nk}\) 。用快速幂算一下即可。代码就不贴了。

洛谷P6075题解的更多相关文章

  1. [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码

    [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起 ...

  2. 洛谷P5759题解

    本文摘自本人洛谷博客,原文章地址:https://www.luogu.com.cn/blog/cjtb666anran/solution-p5759 \[这道题重在理解题意 \] 选手编号依次为: \ ...

  3. 关于三目运算符与if语句的效率与洛谷P2704题解

    题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形上最 ...

  4. c++并查集配合STL MAP的实现(洛谷P2814题解)

    不会并查集的话请将此文与我以前写的并查集一同食用. 原题来自洛谷 原题 文字稿在此: 题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先. ...

  5. 洛谷P2607题解

    想要深入学习树形DP,请点击我的博客. 本题的DP模型同 P1352 没有上司的舞会.本题的难点在于如何把基环树DP转化为普通的树上DP. 考虑断边和换根.先找到其中的一个环,在上面随意取两个点, 断 ...

  6. 洛谷 P6075 [JSOI2015]子集选取

    链接:P6075 前言: 虽然其他大佬们的走分界线的方法比我巧妙多了,但还是提供一种思路. 题意: %&¥--@#直接看题面理解罢. 分析过程: 看到这样的题面我脑里第一反应就是DP,但是看到 ...

  7. 【洛谷】题解 P1056 【排座椅】

    题目链接 因为题目说输入保证会交头接耳的同学前后相邻或者左右相邻,所以一对同学要分开有且只有一条唯一的通道才能把他们分开. 于是可以吧这条通道累加到一个数组里面.应为题目要求纵列的通道和横列的通道条数 ...

  8. 洛谷P3572题解

    这道题实在是一道 毒瘤 题,太坑爹了.那个写 \(deque\) 的题解亲测只有80分,原因 不言而明 ,这道题居然 丧心病狂 到 卡STL . 好了,不吐槽了,进入正题 题目分析: 这是一道十分 简 ...

  9. [洛谷P1972][题解][SDOI2009]HH的项链

    别碰我! 自己还是太蒟了…… 看了好久,最后抄参考题解打出来的…… 前面的可能影响后面的,所以按照询问右端点排序 这时候维护一个前缀和数组就可以了, 那么问题又来了,去重? 可以这样,从前往后枚举,如 ...

随机推荐

  1. linux下C编程初篇

    对于程序设计员来说,makefile是我们绕不过去的一个坎.可能对于习惯Visual C++的用户来说,是否会编写makefile无所谓.毕竟工具本身已经帮我们做好了全部的编译流程.但是在Linux上 ...

  2. DNS地址列表

    DNS测试工具(DNSBench):https://www.grc.com/dns/benchmark.htm DNS列表收集: Google DNS [URL]https://developers. ...

  3. Javascript - Vue - vuex

    vuex 这是一个与vue配套的公共数据管理工具,可以将一些需要共享的数据保存到vuex中,以此方便项目中的任何组件都可以从vuex中得到共享数据.cnpm i vuex -S 装包 读取数据 //在 ...

  4. EL表达式学习(一)

    一.初次接触EL表达式: <%@ page language="java" import="java.util.*" pageEncoding=" ...

  5. SpringCloud升级之路2020.0.x版-24.测试Spring Cloud LoadBalancer

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 通过单元测试,我们 ...

  6. 了解Flask

    了解Flask 什么是Flask Flask 是一个微框架(Micro framework),所谓微框架,它就是很轻量级的,作者划分出了Flask应该负责什么(请求路由.处理请求.返回响应).不应该负 ...

  7. 乌班图安装redis问题

    ot@DESKTOP-5382063:/usr/local/redis/redis-3.0.4# make\ > cd src && make all make[1]: Ente ...

  8. 在EXCEL中,判断同列数据重复,并标识出来

    推荐方法:建立辅助列,查找B列数据是否重复.=IF(COUNTIF(B:B,B1)>1,"重复","")按住公式单元格右下角实心十字,向下拖拽复制公式.= ...

  9. python decorator 修饰器

    decorator 就是给函数加一层皮,好用! 1 from time import ctime 2 3 def deco(func): 4 def wrappedFunc(*args, **kwar ...

  10. linux系统配置本地yum源

    1. 前言 学习Linux系统需要大量的实验,而每次安装系统和准备安装系统后的基础配置比较耗时费力.如果在生产环境中,遇到内网(无法访问互联网)情况下,就需要利用挂载的ISO文件内的Packages中 ...