首页 > 其他分享 >How to AK ABC306

How to AK ABC306

时间:2023-06-18 10:46:23浏览次数:36  
标签:frac 题意 AK ABC306 long How 然后 考虑 sum

How to AK ABC306

A

题意:吧字符串的每个字符连续输出两遍,记得不要快读,不要忘记输入 $ n $

纪念 Qinzh A 题 WA 掉

B

题意:给定长度为 $ 64 $ 的数组 $ A $,输出 $ \sum_{i = 0}^{63} A_i2^i $

暴力模拟即可

注意要开 unsigned long long

纪念我 WA 了 $ 2 $ 次,第一次用的 int,第二次 long long,第三次 unsigned long long AC

C

题意:给定一个数组 $ A $,里面每个数出现 $ 3 $ 次

把每个数第二次出现的下标排序

只需要用 map < int, int > 来记录出现的次数

然后就过了

D

题意:

孔祥琸去了一家餐厅,他要吃 $ n $ 份饭,每份饭可能是有毒的

他要是吃了有毒的饭,会肚子疼

如果他现在肚子疼,而且又吃了一份有毒的饭,那么世界上的祸害就少了一个,否则他的肚子立刻就会好起来

每份饭有美味度 $ y $,和是否有毒的标识 $ x $,求他不死的前提下能品尝的最大美味度(他可以选择不吃哪份饭)

(题里 $ n $ 的范围是 $ 3 \times 10^5 $,他这么能吃吗?)

这个题我们需要写 dp

设 $ dp_{i, 0/1} $ 表示他吃到第 $ i $ 份饭,和他肚子的状态

然后考虑有毒的情况

他吃的话,肚子一定疼,所以他之前肚子是好的,也就是上一份饭是无毒的

不吃就是,上一盘把上一盘的状态延续

无毒的情况如下:

他如果吃,就不论之前的状态如何,直接更新

否则就可以考虑把之前的情况延续

然后就做完了

E

题意:$ n $ 个数,$ q $ 次操作,每次操作令 $ a_{x_i} = y_i $,每次操作完求前 $ k $ 大之和

这个题考虑平衡树,可以很方便的求出每个数的排名

我们考虑前 $ k $ 大的和用一个变量记录

我们先考虑插入,插入的时候我们需要查询排名,如果能排到前 $ k $ 大,就把原先的最小的顶替掉,同时处理答案

删除的时候,如果删掉了前 $ k $ 个,就把第 $ k + 1 $ 大的顶上

然后每次把 $ a_{x_i} $ 删掉,然后插入 $ y_i $

接着输出答案就可以了

F

题意:有 $ n $ 个长度为 $ m $ 的集合 $ s $,定义 $ f_{s_i, s_j} $ 表示把两个集合并起来中集合 $ i $ 中所有数排名的和(从小到大)

求所有 $ f_{s_i, s_j} $ 保证 $ i < j $

所有集合的数互不相同

考虑计算的东西是 $ \sum_{i = 1}^{n - 1} \sum_{j = i + 1}^{n} f(s_i, s_j) $

这里考虑枚举一个 $ k $,表示枚举 $ s_i $ 中的元素,然后他的排名如下:

在 $ s_i $ 里面的排名是 $ k $,在 $ s_j $ 里面的排名暂时记为 $ c_{j, a_{i, k}} $

然后我们要求的东西就变成了 $ \sum_{i = 1}^{n - 1} \sum_{j = i + 1}^{n} \sum_{k = 1}^{m} (k + c_{j, a_{i, k}}) $

考虑把 $ k $ 提出来: $ \sum_{i = 1}^{n - 1} \sum_{j = i + 1}^{n} \frac{m(m + 1)}{2} + \sum_{i = 1}^{n - 1} \sum_{j = i + 1}^{n} \sum_{k = 1}^{m} c_{j, a_{i, k}} $

这里 $ \sum_{k = 1}^{m} k $ 也就是从 $ 1 $ 加到 $ m $,等于 $ \frac{m(m + 1)}{2} $

然后我们把前面的枚举完全拆开,得到 $ \frac{n(n - 1)}{2} \cdot \frac{m(m + 1)}{2} + \sum_{i = 1}^{n - 1} \sum_{j = i + 1}^{n} \sum_{k = 1}^{m} c_{j, a_{i, k}} $

接下来考虑优化后面,我们可以把所有数离散化后插入到值域树状数组里面,然后一下子求得在所有集合里面的排名

具体操作是倒着枚举,一边计算一边插入,就可以实现不重复,可以自己想一想

然后就可以把 $ j $ 这一层循环给去掉:

$ \frac{n(n - 1)}{2} \cdot \frac{m(m + 1)}{2} + \sum_{i = 1}^{n} \sum_{k = 1}^{m} c_{j, a_{i, k}} $

复杂度是 $ O(nm\log{nm}) $

标签:frac,题意,AK,ABC306,long,How,然后,考虑,sum
From: https://www.cnblogs.com/Tzf-tzf/p/17488781.html

相关文章

  • cmake 常用操作
    #打印变量出来看execute_process(COMMAND${CMAKE_COMMAND}-Eecho"hbbdebuginfoPROJECT_VERSION=${PROJECT_VERSION}PROJECT_SOURCES=${PROJECT_SOURCES}MACOSX_BUNDLE_BUNDLE_VERSION=${PROJECT_VERSION}MACOSX_BUNDLE_......
  • Makefile编写模板 & 学习笔记
    一、模板#伪命令.PHONY:cleancompileSocompileExerun:compileExe@./maincompileExe:compileSo@g++main.cpp-Llib-lsoowCapture-lcamapi-lpthread=lImageProc-ljpeg-lhv_static-omaincompileSo:@g++fPIC-sharedsoowCapture.cpp-Iinclu......
  • ABC306 Poisonous Full-Course
    Atcoder题目链接题目大意Takahashi要品尝\(N\)个菜品.这些菜品中有些是有毒的,有些是解药.当他吃下第\(i\)个菜品时,他的总美味值会增加\(Y_{i}\),同时有以下效果:如果吃下的菜品是有毒的(\(X_{i}=1\)),且他现在的胃是健康的,他的胃转变为不舒服的;如果他现在的胃已......
  • How to enable auto restart of a docker container on system reboot ?
    Howtoenableautorestartofadockercontaineronsystemreboot ?https://amalgjose.com/2021/02/12/how-to-enable-auto-restart-of-a-docker-container-on-system-reboot/#:~:text=How%20to%20enable%20auto%20restart%20of%20a%20docker,Ensure%20the%20docker%20co......
  • 源码泄露+bak备份泄露+vim泄露+.DS_Store(mas迁移泄露)
    源码泄露+bak备份泄露+vim泄露+.DS_Store(mas迁移泄露)1.源码泄露web网站源码打包在web目录下造成泄露,通常以压缩包方式存在,如.zip、.rar、.tar、.tar.gz等,常见命名方式为网站名,www.网站名,backup+网站名等简单入门题目扫描到压缩包文件进行下载,找到对应文件,查看是否有flag,如果没......
  • CMake个人理解和使用
    前言CMake是一个构建工具,通过它可以很容易创建跨平台的项目。通常使用它构建项目要分两步,通过源代码生成工程文件,通过工程文件构建目标产物(可能是动态库,静态库,也可能是可执行程序)。使用CMake的一个主要优势是在多平台或者多人协作的项目中,开发人员可以根据自己的喜好来使选择IDE,......
  • CMake
    转载说明:以下内容来自从零开始详细介绍CMakeCMake说明cmake的定义是什么?-----高级编译配置工具当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了-----CMake!所有操作都是通过编译CMakeLists.txt来完成的—简单......
  • CMakeLists --- 指定安装目录 CMAKE_INSTALL_PREFIX
    cmake指定makeinstall时的安装目录:通过设置CMAKE_INSTALL_PREFIX的值来控制。有两种方法:1.在执行cmake时,指定安装目录:cmake-DCMAKE_INSTALL_PREFIX=/xxx/x..2.直接在CMakeLists.txt中设置set(CMAKE_INSTALL_PREFIX/xxx/x) 编译完成后,执行makeinstall即可。......
  • CMakeLists --- 设置rpath_link方法 编译报错try using -rpath or -rpath-link)
    指令:add_link_options("LINKER:-rpath-link,${THIRD_LIBS_DIR}")THIRD_LIBS_DIR:需要链接的库的目录作用:编译生成一个可执行文件时,依赖一个动态库A,动态库A同时又依赖动态库B.如果我们没有显示集成动态库B时,链接器会去-rpath-link设置的目录中寻找依赖项。 例子:1.库A,依赖库B......
  • How Do ASP.NET Core Services Validate JWT Signature Signed by AAD?
    TableofcontentsBackgroundConfigurationHandleAuthenticationValidateTokenSummaryBackgroundIfweneedtouseJWTBearertokensissuedbyAAD(toeitherauserorserviceprincipal)forauthentication,usuallywecanaddbelowcodeto ConfigureSe......