首页 > 其他分享 >2.2 如何把一道简单思维题变难

2.2 如何把一道简单思维题变难

时间:2024-02-05 23:12:25浏览次数:26  
标签:思维 log 一道 题变 2.2 1000

今天是搞笑场,符合“精神状况记录”的 tag。

方法一:将 \(O(n)\) 甚至 \(O(\log n)\) 的需要一定思维的题目,将 \(n\) 开到 \(1000\),\(100\) 等两级。

ARC108D AB

给定 \(c_{A/B,A/B}\in\{A,B\}\),每次可以在 \(XY\) 间插入 \(c_{X,Y}\),问可以得到多少种长 \(n\) 序列。

重要:数据范围,\(n\le 1000\)。

想必在看完“方法一”时,大家都已经秒了吧!

首先如果有 \(c_{A,B}=B\) 且 \(c_{B,B}=B\) 那么就没救了。否则 \(c_{B,B}=A\)。我们先给序列中插上若干个 \(B\),然后两个 \(B\) 之间可以插入零个或一个 \(A\)。

然后再看 \(c_{B,A}\),如果 \(c_{B,A}=B\) 那么就没救了,答案为斐波那契数列。如果 \(c_{B,A}=A\) 那么相邻的 \(A\) 填什么都可以。答案为二的幂次。

\(C_{A,B}=A\) 就同理了。

然后就做完了吗?我们再看一看数据范围,\(n\le1000\)!

所以我们绝对不能写 \(O(n)\) 的递推,更不能写 \(O(\log n)\) 的快速幂。

于是,求解 \(c_{B,A}=A\) 的那个的时候,我们竟然发现 \(f_n=\sum_{i<n} f_i\)!于是 \(O(n^2)\) 搞定。

方法二:对于一道操作数为 \(n\)(或 \(n-1\)) 的构造题,将其构造步数限制设为 \(c\times n\),其中 \(c\) 可以为 \(>1\) 的正整数,或者设为 \(O(n\log n)\)。

例子是我和 black_trees 的一道构造题,但是不方便公开。应该有部分人看到过。

标签:思维,log,一道,题变,2.2,1000
From: https://www.cnblogs.com/TetrisCandy/p/18008987

相关文章

  • 【2024潇湘夜雨】WIN11_Pro_23H2.22635.3139软件选装纯净版2.04
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22635.3139.2.增加部分优化方案,手工精简部分较多。3.OS版本号为22635.3139。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.16.0.0》网卡版、运......
  • 2024.1.21 ~ 2024.2.2 集训总结
    集训大纲Week1:图论:拓扑排序、欧拉回路、二分图、最小生成树数据结构:并查集、堆、单调队列week2:图论:连通性数据结构:线段树图论拓扑排序将DAG上的点以关联性进行排序,得到一个有关联的枚举顺序。有了这种特别的枚举顺序,使得在DAG上DP的转移过程更加合理且有......
  • PyTorch 2.2 中文官方教程(十六)
    介绍torch.compile原文:pytorch.org/tutorials/intermediate/torch_compile_tutorial.html译者:飞龙协议:CCBY-NC-SA4.0注意点击这里下载完整的示例代码作者:WilliamWentorch.compile是加速PyTorch代码的最新方法!torch.compile通过将PyTorch代码JIT编译成优化的......
  • PyTorch 2.2 中文官方教程(十八)
    开始使用完全分片数据并行(FSDP)原文:pytorch.org/tutorials/intermediate/FSDP_tutorial.html译者:飞龙协议:CCBY-NC-SA4.0作者:HamidShojanazeri,YanliZhao,ShenLi注意在github上查看并编辑本教程。在大规模训练AI模型是一项具有挑战性的任务,需要大量的计算能力和资源......
  • PyTorch 2.2 中文官方教程(十九)
    使用RPC进行分布式管道并行原文:pytorch.org/tutorials/intermediate/dist_pipeline_parallel_tutorial.html译者:飞龙协议:CCBY-NC-SA4.0作者:ShenLi注意在github中查看并编辑本教程。先决条件:PyTorch分布式概述单机模型并行最佳实践开始使用分布式RPC框......
  • PyTorch 2.2 中文官方教程(二十)
    移动设备在iOS上进行图像分割DeepLabV3原文:pytorch.org/tutorials/beginner/deeplabv3_on_ios.html译者:飞龙协议:CCBY-NC-SA4.0作者:JeffTang审阅者:JeremiahChung介绍语义图像分割是一种计算机视觉任务,使用语义标签标记输入图像的特定区域。PyTorch语义图像分割De......
  • PyTorch 2.2 中文官方教程(十一)
    使用PyTorchC++前端原文:pytorch.org/tutorials/advanced/cpp_frontend.html译者:飞龙协议:CCBY-NC-SA4.0PyTorchC++前端是PyTorch机器学习框架的纯C++接口。虽然PyTorch的主要接口自然是Python,但这个PythonAPI坐落在一个庞大的C++代码库之上,提供了基础数据......
  • PyTorch 2.2 中文官方教程(十二)
    自定义C++和CUDA扩展原文:pytorch.org/tutorials/advanced/cpp_extension.html译者:飞龙协议:CCBY-NC-SA4.0作者:PeterGoldsboroughPyTorch提供了大量与神经网络、任意张量代数、数据处理和其他目的相关的操作。然而,您可能仍然需要更定制化的操作。例如,您可能想使用在论......
  • PyTorch 2.2 中文官方教程(十三)
    在C++中注册一个分发的运算符原文:pytorch.org/tutorials/advanced/dispatcher.html译者:飞龙协议:CCBY-NC-SA4.0分发器是PyTorch的一个内部组件,负责确定在调用诸如torch::add这样的函数时实际运行哪些代码。这可能并不简单,因为PyTorch操作需要处理许多“层叠”在彼此之......
  • PyTorch 2.2 中文官方教程(十四)
    参数化教程原文:译者:飞龙协议:CCBY-NC-SA4.0作者:MarioLezcano注意点击这里下载完整示例代码在本教程中,您将学习如何实现并使用此模式来对模型进行约束。这样做就像编写自己的nn.Module一样容易。对深度学习模型进行正则化是一项令人惊讶的挑战。传统技术,如惩罚方法,通......