构造入门

构造死磕

什么是构造

  1. 小学中学奥数
  2. 先用数学解决再编程实现的构造题
  3. 一般算法无法解决
  4. \(NOI+\)难度\(PJ-\)代码量

构造举例

CF743C Vladik and fractions

  • 题目让我们构造一组数字,满足\(\frac{2}{n} = \frac{1}{x} + \frac{1}{y} + \frac{1}{z}\)
  • 第一眼看到就想到听老师讲了半天才知道这不是简单的OI题目,而是先用数学解决再编程实现的构造题
  • 我们考虑如何构造:

\[ \dfrac{2}{n} = \dfrac{1}{x} + \dfrac{1}{y} + \dfrac{1}{z} \]

  • 首先容易想到\(\frac{2}{n} = \frac{1}{n} + \frac{1}{n}\)
  • 这样我们可以令\(x = n\),对原式化简可以推出\(\frac{1}{n} = \frac{1}{y} + \frac{1}{z}\)
  • 我们考虑人人都要在推数列时用到的一个公式:

\[ \dfrac{1}{x} - \dfrac{1}{x-1} = \dfrac{x}{x \times (x-1)} - \dfrac{x-1}{x \times (x-1)}= \dfrac{1}{x \times ( x-1)} \]

  • 那么我们就有了\[\frac{1}{x} = \frac{1}{x-1}+\frac{1}{x \times (x - 1)}\]
  • 把上式中的\(x\)替换成\(n\)这一题就出来了.
#include <iostream>using namespace std;int N;int main()
{cin >> N;if(N == 1){cout << -1 << endl;return 0;}else {cout << N <<' '<< N+1 <<' '<< N*(N+1);}return 0;
}

P3599 Koishi Loves Construction

  • 这一题就是个,虽然大多数构造都是坑,但是您就不能给一组std的结果么?

task1

  • 我们先考虑\(task1\),要求求出一组\(1-N\)排列使得其前缀和在\(\% N\)意义下各不相同.
  • 我们发现排列中\(N\)前一项和自己这一项的前缀和相等,所以\(N\)只能处于排列首位
  • 我们考虑取模的性质,对数字加上或者减去\(N\)并不影响答案.
  • 那么第一项为\(N\),其前缀和取模后为\(0\).我们是否能构造出前缀和依次递增\(1\)的序列呢?
  • 想了想好像不行,因为如果想依次递增\(1\),那么每一项都为\(1 + k \times N\ (k \in\ N)\),这显然是不可能的,因为只有\(1\)满足这个条件.
  • 那么我们可以让序列来回震荡么?
  • 考虑前缀和为\(0,1,-1,2,-2,3,-3,\cdots\),我们想想是否可以构造.
  • 第一项为\(N\),第二项为\(1\),第三项为\(N-2\),第四项为\(3\),第五项为\(N-4\) \(\cdots\cdots\)
  • 显然可以构造,只要满足\(N\)偶数即可!
  • \(N\)为奇数时是否可以构造呢? \(N=1\)时显然可以,之后的\(N=3,5,7\cdots\)时,根据官方题解:\(\sum^{N}_{i=1}{i} = \frac{N\times(N-1)}{2}\)\(N\mid\frac{N\times(N-1)}{2}\).故无解.

task2

  • 我们同样发现,\(N\)出现后的前缀积全为\(0\),所以\(N\)必须在最后一位出现,同理\(1\)出现前一位的前缀积和自己这一项的前缀积相等,所以\(1\)必须出现在第一项.
  • 然后考虑如何构造,先考虑递增的.
  • 第一项为\(1\),我们是否能构造出第\(k,k\not = N\)项前缀积为\(k\)呢?
  • 那么,每一项应该为\(1,\frac{2}{1},\frac{3}{2},\frac{4}{3},\cdots\),考虑\(x \cdot inv(x)\equiv1(mod\ N)\),我们可以有如下转化\(\frac{k}{k-1} = k \cdot inv(k-1)\),然后坑比样例不是这样给的,但是这样是对的.
  • 思考下什么时候无法构造,如果\(N\)不为质数和\(4\),那么\(N\mid (N-1)!\)是一定的,对于\(4\),其因子在\(3!\)只出现一次,成立.
  • 特判一下\(1\)\(4\),这一题也做完了.

推荐文章

转载于:https://www.cnblogs.com/byha/p/11249141.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

王成录华为鸿蒙系统,华为手机销量仍在增长!华为王成录:手机会是鸿蒙OS系统的中心...

【天极网手机频道】由于制裁&#xff0c;华为遭到前所未有的断供&#xff0c;外界有不少声音都在担心华为手机出货量将会出现暴跌。不过昨日华为开发者大会举办期间&#xff0c;华为消费者业务软件部总裁王成录表示&#xff0c;华为手机销量仍在增长中。昨天的华为开发者大会&a…

28线程

进程&#xff1a;计算机执行的任务 线程&#xff1a;执行任务中的小任务 多线程 计算机再执行过程中&#xff0c;再同一时间只能让cpu的一个核执行一个进程。进程有多个线程构成&#xff0c;再同一时刻Cpu只能处理一个线程。 引入多线程 当线程被cpu执行时cpu开始工作&#xff…

什么是javax.ws.rs.core.context? [第3部分]

如何使用Context批注 在什么是javax.ws.rs.core.context的第2部分中&#xff1f; 您学习了如何使用Context批注从SecurityContext类的注入实例检索安全信息&#xff0c;以及如何通过ResourceContext实例使用JAX-RS资源类。 在本文中&#xff0c;您将学习如何将Context批注与请…

html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数

制作滚动字幕效果&#xff1a;marquee标签 如下:&#xff1c;MARQUEE directionup height146 οnmοuseοutstart() οnmοuseοverstop() scrollAmount4&#xff1e; &#xff1c;/marquee&#xff1e;参数说明&#xff1a;direction滚动方向&#xff1a;up向上滚动&#xff0…

静态点分治总结

点分治是世界上最好的算法QwQ 点分治可以解决各种树上的边权点权问题&#xff0c;然后如果你发现这个题好像问的特别玄学&#xff0c;lca&#xff0c;树差都做不了&#xff0c;树上动‘龟’更做不了&#xff0c;只能暴力时&#xff0c;这个题大多数情况就是点分治了 点分治的思…

html节点上下移动,关于前端:数组元素上下移动

/*** 上、下挪动* param {number} code 下标* param {number} dir 1上移 0下移*/onMove(code, dir) {let moveComm (curIndex, nextIndex) > {let arr this.commodityInfoarr[curIndex] arr.splice(nextIndex, 1, arr[curIndex])[0]return arr}this.commodityInfo.some((…

mybatis插入数据后返回自增主键ID详解

1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎…

spring 属性占位符_Spring属性占位符配置器–一些不太明显的选项

spring 属性占位符Spring的PropertySourcesPlaceholderConfigurer用于从XML或Java Config中定义的Spring bean定义外部化属性。 PlaceholderConfigurer支持的一些选项在文档中并不明显&#xff0c;但很有趣&#xff0c;并且可能有用。 首先&#xff0c;以Spring文档中的示例为…

红包雨效果html,js+css实现红包雨效果

//每一个红包都是相对于父元素定位&#xff0c;通过z-index来设置层级let zIndex 1;function bindEvent() {$redPackage.on(click,.js-RedPackageBox,function() {//拿到每个红包的数据const data $(this).data(txt);}}//生成mix-max的随机数function getRandom(min,max) {re…

Delphi下实现全屏快速找图找色 二、矩阵遍历

二、矩阵遍历  矩阵遍历是一个数据结构方面的问题。假设有一个矩阵Matrix&#xff0c;它共有RowCount行&#xff0c;每行有ColCount列&#xff0c;当利用y表示行数&#xff0c;x表示列数&#xff0c;那么利用Matrix[y,x]就可以访问矩阵中的任意元素。假设有一个1010大小的矩阵…

Eclipse MicroProfile:您需要了解的5件事

针对微服务架构优化企业Java Eclipse MicroProfile计划是在JavaOne 2016上发起的&#xff0c;JavaOne是服务器供应商和Java用户组的创意&#xff0c;目的是解决企业Java微服务领域的缺点。 Java EE的发布速度减慢到无法应对Swift发展的微服务趋势的挑战的程度。 MicroProfile通…

html 选择不能重复,人生,就是一次无法重复的选择(深度好文)

作者&#xff1a;彩云追月欧洲著名的政治家托马斯 莫尔说&#xff1a;“在人生中最艰难的是选择”。漫漫人生路&#xff0c;有无数的选择&#xff0c;不同的选择&#xff0c;可能会决定我们不同的人生道路。下面的故事也许对你有所启迪&#xff1a;一天&#xff0c;几个学生问…

用HTML做软件UI用到的的一些技术

做WEB开发的想把网页做成应用程序的界面&#xff0c;开发应用程序的又想把程序界面做得和WEB一样。本文介绍一下用HTML做软件UI用到的的一些技术。 其实HTML UI也不是什么新鲜事了&#xff0c;Norton Antivirus从几年前的版本就开始用了&#xff0c;vs.net2002中的开始页也用了…

html css导航栏字体图标,HTML+CSS入门之两种图标字体库

本篇教程介绍了HTMLCSS入门之两种图标字体库&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTMLCSS入门。<## 0. 前言比较基础的图标加载&#xff1a;和块元素的背景background: url(./x.png).页面多图标时&#xff0c;使用雪碧图(多个png压缩成一个png…

垃圾收集算法,垃圾收集器_弱,弱,最弱,利用专家参考来管理垃圾收集器

垃圾收集算法,垃圾收集器何时以及何时不使用Java中的专家引用 弱引用&#xff0c;软引用和幻像引用既危险又强大。 如果以错误的方式使用它们&#xff0c;则会破坏JVM性能。 但是&#xff0c;如果使用正确的方法&#xff0c;它们可以大大提高性能和程序清晰度。 弱引用和软引用…

ESP8266—“ICACHE_FLASH_ATTR”宏

问&#xff1a;ESP8266_NONOS_SDK中ICACHE_FLASH_ATTR宏的用途是什么&#xff1f;我看到它取决于ICACHE_FLASH&#xff0c;但我不知道何时应该定义该符号。什么时候需要包括它&#xff1f;答&#xff1a;对于ESP8266_NONOS_SDK&#xff0c;用ICACHE_FLASH_ATTR编译的函数编译到…

layui网页html编辑器,layui使用富文本编辑器

HTML代码&#xff1a;这里的原理是你输入的内容会经过处理插入到文本区域textarea中js代码&#xff1a;/*** 文本编辑器*/layui.use([form, layedit], function(){var layedit layui.layedit;//上传图片,必须放在 创建一个编辑器前面layedit.set({uploadImage: {url: upload /…

Java应用程序性能监视:复杂的分布式应用程序的端到端性能

通过从应用程序中学习企业APM产品&#xff0c;发现更快&#xff0c;更高效的性能监控。 参加AppDynamics APM导览&#xff01; 在最复杂和分布式环境中端到端监视Java应用程序性能-专注于业务事务。 自动发现的业务交易&#xff0c;动态基准&#xff0c;代码级诊断和虚拟作战室…

C#设计模式(2)——简单工厂模式

一、引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。 二、简单工厂模式的介绍 说到简单工厂&#xff0c;自然的第一个疑问当然就是什…

计算机应用基础课程基本要求,计算机应用基础课程标准

《计算机应用基础》课程标准一、课程性质&#xff1a;《计算机应用基础》课程是中职学校各专业学生必修的一门公共基础课程&#xff0c;具有很强的实践性和应用性&#xff0c;是各行各业从事现代化办公、计算机设计及应用等领域人材所必须具备的理论知识和实践技能。通过本课程…