首页 > 其他分享 >暑假集训D24 2023.8.22 contest I

暑假集训D24 2023.8.22 contest I

时间:2023-08-25 11:11:41浏览次数:40  
标签:22 contest 折叠 D24 碎片 对折 蛋糕 类型 连接

C.City Folding

题意:有一个由 \(2^n\) 条等长线段组成的线,你可以进行 \(n\) 次 对折 ,可以从左向右对折或从右向左对折,给出初始时线段的编号 \(P\) ,问如何对折 \(n\) 次才能使对折后该线段恰好在从下往上数第 \(H\) 层?
\(\operatorname{Solution}\) 构造
可以倒过来考虑这个过程(即从最后一次折叠开始)。
如果H在纸的上半部分,那么在这步之前,它在折叠在另一张纸上的那一半。通过观察,我们可以得出,对于每一步,我们是否应该折叠H所在的部分
如果在这个时刻,这个位置应该是将被折叠的一半的一部分,那么如果P在左半区,答案为L,相反,如果它不应该在折叠的一半上,答案为R
不要忘记,每当我们将一部分折叠在另一部分的顶部时,其元素的顺序就会颠倒。
时间复杂度 \(O(n)\)

K.Kind Baker

蛋糕为100×100网格的方形蛋糕块。如果集合中的每一对碎片都是直接连接的(它们共享一侧)或间接连接的(有一个碎片序列,可以通过直接连接的碎片从一个碎片到另一个碎片),那么一个碎片集合就是连接的。
Flora有一台机器,可以接收一组相连的蛋糕块,并在每一块蛋糕上涂上一定的图案。每次机器运行时都会使用不同的图案。在使用机器给定次数后,每件物品上都会有一个(可能是空的)图案组合。如果两件物品的图案组合不同,则视为不同类型。Flora想知道她必须使用该机器才能获得 \(k\) 种不同类型的蛋糕块的最小次数,以及每次使用该机器时选择一个连接的蛋糕块集合的可能方法。

\(\operatorname{Solution}\) 构造
首先,如果我们使用机器 \(n\) 次,我们最多可以有 \(2^n\) 不同类型的作品。所以我们知道 \(n\) 的值必须至少为 \(log2k\).

证明:
首先,如果k=1,则输出0。否则,用所有 \(n\) 填充第一列和第一行,现在我们有两种不同的类型,所以我们可以从k的值中减去2.
假设 \(k\leq 4000\), \(n\leq12\) .\(2^\frac{n}{2}\leq100\).此外。令 \(k_1=⌊n/2⌋\) ,\(k_2=(n+1)/2\) 。对于每个值 \(i\in[0,k1)\) ,在从2到100的所有行上迭代,如果当前行的id设置了第i位,则将颜色i添加到整行。对于其他 \(k_2\) 值,对列执行同样的操作.
不难注意到,通过这样做,我们正好生成了 \(2^n\)种不同类型的碎片。此外,由于我们在第一行和第一列的每个单元格中使用了每种颜色,每种颜色都形成了一个连接的组件。所以这个方案是正确的。

剩下还需要做的部分是使不同类型的数量恰好等于 \(k\) 。这可以通过几种方式来实现。可以只执行所描述的过程,直到检测到已经有 \(k\) 个类型,或者可以生成所有 \(2^n\) 个类型,然后清除一些单元格,直到数量减少到刚好 \(k\) 即可。
时间复杂度 \(O(k)\)

标签:22,contest,折叠,D24,碎片,对折,蛋糕,类型,连接
From: https://www.cnblogs.com/oijueshi/p/17655323.html

相关文章

  • 暑假集训D23 2023.8.21 contestH
    H.HardcoreHangman题意:现在有一个隐藏字符串,你可以进行最多\(7\)次询问,每次询问一个字符串,系统会回答这个字符串中所有字符的位置(从小到大依次).现在请你做出合理的询问,找出这个隐藏的字符串.\(\operatorname{Solution}\)......
  • 『题解』JOISC2022B 京都観光 (Sightseeing in Kyoto)
    AtCoder题目链接Luogu题目链接观察题目,不自觉地想到了dp,但是再一看\(\text{1e5}\)数据范围,意识到大概是\(2^{\text{1e5}}\)的复杂度,绝望了……然后就很自然地想到了最优策略。(思路很巧妙但是我当时没想到。)考虑有三行(或三列),分别记为\(i,j,k\),如果\(j>i\landj>......
  • Ubuntu22隐藏鼠标的指针(cursor)
    目标:一段时间鼠标没有移动,则隐藏游标(cursor)1.安装unclutter-xfixes(unclutter的修复版)$sudoapt-getupdate$sudoapt-getinstallunclutter-xfixes2.启动unclutter-xfixes(一般启动)#5秒钟没有移动鼠标,则cursor消失$unclutter--timeout53.启动unclutter-xfixes(......
  • Ubuntu22.04(禁用)彻底删除Snap以及出现“rm: 无法删除"XXX":只读文件系统”的解决方案
    Ubuntu22.04(禁用)彻底删除Snap以及出现”rm:无法删除"XXX":只读文件系统“的解决方案导语Snaps是Ubuntu的母公司Canonical于2016年4月发布Ubuntu16.04LTS(LongTermSupport,长期支持版)时引入的一种容器化的软件包格式。自Ubuntu16.04LTS起,Ubuntu操作系......
  • Ubuntu22上隐藏top bar(顶部导航栏)
    前言我的这篇博客已经介绍了如何使用hidetopbar隐藏顶部导航栏目,但是在桌面的状态下,顶部导航栏依然存在,如下图。因此使用hidepanellite这个插件。hidepanellite全局隐藏顶部导航栏(除了在overview窗口)具体步骤1.按照博客中方法下载好extensionmanager(插件管理器)这个软件......
  • Ubuntu22安装Chrome浏览器
    翻译自博客1.将下载的chrome安装包放在~/Downloads文件夹下$cd~/Downloads#wget是一个下载工具$wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb2.安装chrome#dpkg是一个安装软件软件的工具sudodpkg-igoogle-chrome-stable_curre......
  • AtCoder Beginner Contest 314
    A-3.14#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongint32_tmain(){ios::sync_with_stdio(0),cin.tie(0);strings="141592653589793238462643383279502884197169399375105820974944592307816406286208998628034......
  • Ubuntu 22.04上编译Android 13 AOSP系统
    背景因为最近空闲期,刚好遇到了一个小项目,需要AOSP系统的,因此就花费了一些时间捣鼓了一下,源码编译aosp13环境:vm22.04空间350g内存24g环境配置以下所有操作需要全球通上网,已经安装git环境。把Ubuntu源切到国内,下载速度快很多。sudoaptinstallunzipziplibssl-devli......
  • ChatGPT 问答00022 Guava Retryer使用
    使用GuavaRetryer进行方法异常重试的步骤如下:添加GuavaRetryer依赖:在项目的构建文件(如pom.xml)中添加以下依赖项:<dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version></de......
  • Ubuntu22 安装中文输入法(凑合着用版本)
    翻译自stackoverflow的参考博客本文是参考博客的汉化版1.打开设置->区域与语言->管理已经安装的语言->点击安装/删除语言2.选择中文(简体中文),同时键盘输入法系统选择IBUS,然后点击右下角的应用3.重启电脑4.打开设置->键盘->点击输入法下面的+->选择中文->选择中文(智能拼音),设......