首页 > 其他分享 >构造题!

构造题!

时间:2024-07-26 15:08:46浏览次数:13  
标签:发现 那么 .. 可以 构造 我们

构造题真的是能靠做题练出来的吗,看样子只能见一题学一题了

构造题基本都是将题目里的复杂操作都转化成一些基本的,不变的,简洁的操作,以便代码可以处理每种情况

CF1916D
根本没思路。首先打个表,发现可能可以只用1,6,9,0来构造。一种简单的构造是在平方数后面加两个0,通过打表发现,可以在169中间加0,原因是会成为\(1..6..9..=1..3..^{2}\)。同时我们可以用961进行同样的操作。然后发现刚好有n个数,于是就做完了

CF1912E
根本没思路。首先想转化成不变的,那么想让数反转不变,那么这得是回文数。发现回文数很难操作,于是我们就用个位数去操作。那么如果用个位数操作的话,那么反转这个串后结果也是不变的。于是我们写成\(n=A+0-B\)和\(m=B-0+A\)然而这种情况只适用于n+m为偶的情况。考虑转化。发现只需加一个21,变成\(n=21+A+0-B\)和\(m=B-0+A+12\)然后套用上面做法就可以了。注意代码一定要模块化啊!然后保证了这个情况,那么\(A=(n+m)/2,B=(m-n)/2\)即可。那如何打印一个数呢,我们使用九进制就可以了。但发现样例都没过,哈哈。因为在过程中我们使用到了B和-B但是这并没有括号,哈哈。那我们如何将数翻转过来呢,答案是每个数后面都减0就可以了,翻转过来就是相反数,到这里就昨晚了吧。

CF739A
首先答案的上界就是最短的区间的长度。考虑构造方案去达到这个上界。发现只要填0...ans-1,0,...,ans-1,..即可

CF1495C
唯一在课上想出来的题目qwq,这有*2300吗。我们希望通过一些操作将所有点都串成一棵树。一个比较naive的想法就是搞一个m型的主干,发现如果主干空隙为1的话会有环,考虑空隙为2,那么中间都可以串起来。考虑如何将枝干串起来。如果中间空隙为空,那么随便连,否则选择一个X连上就行,因为保证了不八连通

P7115
感觉70分很简单。首先考虑如何交换两个球,那么需要我们可以首先将两个数拎到顶部,再进行交换,这样是不会破坏原有的序列的。然后如果暴力的话最多是\(2n^{2}m\)为了拿到70分或更高分,我们要一点点贪心。我们找出当前颜色相同最多的柱子,然后将这些柱子上不同颜色的换掉,就可以拿70分了。考虑优化,我们发现这题有点像排序,那么我们可以直接归并,然后在交换的时候定义一个输出函数输出就可以了。

标签:发现,那么,..,可以,构造,我们
From: https://www.cnblogs.com/wuhupai/p/18325371

相关文章

  • 如果查询不在构造函数中,为什么 Sqlalchemy 会清理查询结果?
    我创建了一个类Result,它接受sqlalchemy语句,存储该语句,执行该语句,并存储执行结果。如果直接在__init__()中执行该语句,下面的脚本将产生预期的结果:1TestJE12TestJE2但是如果该语句在set_result()中执行,下面的脚本输出Nores......
  • Numpythonic 方式从所需的时间步长和窗口大小构造窗口向量
    给定参数timestep=2window_size=3我已经展平了大小为9的时间序列向量。内容是:arr=np.array([1,2,3,4,5,6,7,8,9])如何使用这些参数重塑/构造窗口时间序列?我希望输出具有形状unknown,window_size)所以,它的输出将是这样的矩阵:windowed_arr=np......
  • 【C++】再探构造函数 - 初始化列表详解
    ......
  • C++(构造函数参数列表初始化)
    目录1.构造函数参数列表初始化的语法2.为什么使用参数列表初始化3.示例4.常量和引用成员的示例5.使用参数列表初始化的注意事项6.总结在C++中,构造函数参数列表初始化(initializerlist)是一种用于在对象创建时初始化成员变量的语法。这种方式在性能和可读性方面具有一些优势,......
  • 【学习笔记】构造函数、原型对象、原型链
    在JavaScript中,每个对象都有一个原型对象,原型对象也是一个对象,它包含了对象的共享属性和方法。每个构造函数(除了箭头函数)都有一个prototype属性,该属性指向构造函数的原型对象。当我们使用构造函数创建一个新对象时,该对象会继承构造函数的原型对象中的属性和方法,这种继承关系......
  • C++深拷贝构造函数解决浅拷贝的堆区内存重复释放问题
    1.简单介绍先简单介绍一下浅拷贝和深拷贝:浅拷贝->简单的赋值拷贝操作,默认的拷贝构造函数就是浅拷贝。深拷贝->在堆区重新申请空间,进行拷贝操作。2.问题展示下面用代码示例明了地展示默认拷贝构造函数浅拷贝带来地堆区内存重复释放问题:#include<iostream>usingnamespace......
  • modint 默认构造函数的一些想法
    今、在zhengruioi.com上参加模拟赛时被卡常了。这道题目涉及对\(998244353\)取模的操作,故我使用我自制的由atcoder::static_modint改写而来的modint完成了代码,这两个板子大致如下://modinttemplate<unsignedumod>structmodint{/*{{{*/staticconstexprintmod......
  • 意外的函数行为关键参数列表构造函数
    我已经将这个简单的代码简化为更大的python代码中的意外行为:deff(n,s=[]):s.append(n)returnsprint(f(3))print(f(5))给出的输出是:[3][3,5]我期望:[3][5]如果明确给出空列表作为参数,则f(5,s=[]),它按预期工作。我认为这是一个不好的做法,......
  • 草图几何关系里面包含哪些关系呢?直线作为构造线是什么操作,为啥变为构造线之后,变成点划
    问题描述:草图几何关系里面包含哪些关系呢?重合、中点、相切、平行、相等、共线、对称。对哪几个元素进行几何约束,就要全选哪几个元素,然后进行操作。直线作为构造线是什么操作,为啥变为构造线之后,变成点划线了呢?问题解答:在SolidWorks中,草图几何关系是用于定义和约束草图元素之......
  • 线段树(原理、构造和区间查询,例题:Balanced Lineup)
    概念原理    线段树是分治法和二叉树的结合,二叉树上的节点都是根据分治得到的。节点所表示的,也就是线段,可以是区间和、最值或者是其他的,,每次分治,左右子树各一半,每个节点的值代表了以它为根的子树上所有节点的值。通过线段树,大区间的解可以从小区间的解合并而来。构......