本页面将简要介绍构造题这类题型。

引入

构造题是比赛中常见的一类题型。

从形式上来看,问题的答案往往具有某种规律性,使得在问题规模迅速增大的时候,仍然有机会比较容易地得到答案。

这要求解题时要思考问题规模增长对答案的影响,这种影响是否可以推广。例如,在设计动态规划方法的时候,要考虑从一个状态到后继状态的转移会造成什么影响。

特点

构造题一个很显著的特点就是高自由度,也就是说一道题的构造方式可能有很多种,但是会有一种较为简单的构造方式满足题意。看起来是放宽了要求,让题目变的简单了,但很多时候,正是这种高自由度导致题目没有明确思路而无从下手。

构造题另一个特点就是形式灵活,变化多样。并不存在一个通用解法或套路可以解决所有构造题,甚至很难找出解题思路的共性。

例题

下面将列举一些例题帮助读者体会构造题的一些思想内涵,给予思路上的启发。建议大家深入思考后再查看题解,也欢迎大家参与分享有趣的构造题。

例题 1

构造一组 ,使得对于给定的 ,满足

例题 2

Task1:试判断能否构造并构造一个长度为 的排列,满足其 个前缀和在模 的意义下互不相同

Task2:试判断能否构造并构造一个长度为 的排列,满足其 个前缀积在模 的意义下互不相同

例题 3

给定一个整数 ,试构造一个节点数为 无向图。令节点编号为 ,要求其满足以下条件:

  • 这是一个简单连通图。
  • 存在一个整数 使得对于任意节点,与其相邻节点的下标和为

保证输入数据有解。

例题 4

经过一天辛苦的工作,小 Q 进入了梦乡。他脑海中浮现出了刚进大学时学 01 背包的情景,那时还是大一萌新的小 Q 解决了一道简单的 01 背包问题。这个问题是这样的:

给定 个物品,每个物品的体积分别为 ,请计算从中选择一些物品(也可以不选),使得总体积恰好为 的方案数。因为答案可能非常大,你只需要输出答案对 取模的结果。

因为长期熬夜刷题,他只看到样例输入中的 ,以及样例输出是 ,看不清到底有几个物品,也看不清每个物品的体积是多少。直到梦醒,小 Q 也没有看清 ,请写一个程序,帮助小 Q 一起回忆曾经的样例输入。

此文件夹下有0条笔记。