首页 > 其他分享 >2024.8.2 test

2024.8.2 test

时间:2024-08-02 19:50:51浏览次数:11  
标签:le 2024.8 sum 路径 最小 序列 test 我们

A

有长度为 \(n\) 序列 \(A\),你要把构造长度相同的序列 \(B\) 使得 \(\sum B_i=m\)。
满足随机打乱 \(B_i\) 后,期望 \(\sum [A_i>B_i]\) 最小,求这个值。\(n\le 1000,m\le 5000\)。

我们考虑背包,也就是 \(0\sim m\) 的数选 \(n\) 个出来,和为 \(m\)。
设 \(sum_i\) 表示 \(A_i\) 里不超过 \(i\) 的个数,选 \(i\) 的期望代价是 \(g_i=\dfrac{n-sum_i}{n}\)。
那么我们有 \(nm\) 个状态,\(f_{n,m}\) 表选了 \(n\) 个数和是 \(m\),我们如果枚举选的数是要 \(O(n^2m)\) 的。
我们更改枚举顺序,不难发现是 \(g\) 和 \(f_{i}\) 做 \(n\) 次 min + 卷积。
那么我们有两种优化方式:第一是优化 min + 卷积,用民可夫斯基和,但是 \(g\) 是非凸的。
所以我们优化 \(n\),类似快速幂,做 \(\log n\) 次即可。

B

有向图上强制在线询问 \(s\to t\) 经过点序列字典序最小的路径第 \(k\) 个点,注意这里路径可以重复经过点。
如果路径一直绕环走,判断无解。
\(n\le 2000,m\le 5000,q\le 4e5\)。

字典序最小那么这是直接贪心可做,每次都向后走编号最小的点。
路径重复经过点的话,可能会一直在环上走,我们判一下当前位置会不会由环而来即可。
不妨每个点为起点都跑一遍,跑出来是一棵树。
询问也就是在线求 \(k\) 级祖先,求简单直接分块,预处理所有 \(kB\) 级祖先。

C

维护序列 \(A\),支持区间加。查询从 \(l\) 或 \(r\) 出发,仅遍历 \([l,r]\) 每个点恰好 \(A_i\) 次,可以向左或向右走。
\(n,m\le 2e5\)。

我们先有一条从 \(l\to r\) 的路径,所以可以把 \(A_i\) 都减去 \(1\),我们现在相当于插入环。
我们是可以走出这样的覆盖情况:\(11,121,1221\) 这种,不难发现只用走 \(11\) 就可以包括所有情况。
那么很简单了,分奇偶性讨论,线段树。

D

\(n\) 个点,每个点有权值,有 \(m\) 个关系 \((i,j)\),表示选了 \(a_i\) 必须选 \(a_j\),最大化 \(\dfrac{(\sum a_i)^2}{\sum a_i^2}\)。
\(n\le 60\)。

考虑分数规划,二分 \(k\),同时设 \(d_{i}\) 表示 \(a_i\) 是否被选中,设 \(d_{i,j}=d_id_j\),判断是否有
\(\sum_{i\neq j}d_{i,j}a_ia_j-k\sum_i d_{i,i}a_i^2>0\).
那么 \(d\) 跑最大权闭合子图,但是原来的约束是 \(d_{i,i}\to d_{j,j}\) 之间,加上 \(d_{i,j}\to d_{i,i},d_{j,j}\)。
而且不会出现 \(d_{i,i}\) 和 \(d_{j,j}\) 同时存在,因为 \(d_{i,j}\) 明显选了更优。
跑 flow。
如果数据范围小的话记得想高复杂度的东西,比如 flow。

标签:le,2024.8,sum,路径,最小,序列,test,我们
From: https://www.cnblogs.com/Simon-Gao/p/18339491

相关文章

  • C高级(学习)2024.8.2
    目录1.指针函数概念格式2.函数指针概念格式基本用法3.函数指针数组概念格式  4.共用体格式定义共用体变量特性5.枚举定义格式6.存储类型(1)auto(2)static(3)extern(4)register7.条件编译(1)根据宏是否定义(2)根据宏值(3)防止头文件重复包含(放在头文件中)1.指针函......
  • Pytest 找不到我的设置目录
    我尝试启动pytest,但pytest找不到设置文件我在virtualenv中Python3.11.9和pytest8.3.2ImportError:Nomodulenamed'drf.settings'pytest-djangocouldnotfindaDjangoproject(nomanage.pyfilecouldbefound).Youmustexplicitlyadd......
  • 【笔记】计数选讲:容斥、LGV、集合幂级数、GF 2024.8.2
    今天写的很乱。[HEOI2013]SAO容斥。因为我们已经知道父亲\(<\)儿子时的情况(\(n!/\prod_isiz_i\),也适用于森林),那么儿子\(<\)父亲的情况就容斥掉,无限制的就当作那条边不存在。树上背包,记录当前节点为根的连通块大小和容斥系数的积。*[ECFinal23A]DFSOrder4转写为:统计多......
  • 2024.8.1 总结(集训)
    今天和昨天都是学图论。wwlw给我们讲了Tarjan求强连通分量、(有向图)缩点、欧拉路径和欧拉回路、2-SAT和某个奇妙的容斥DP题。感觉有收获,但是没有理解透。感觉lr好强啊,好多题好像都有思路。xwb也好强啊,在洛谷团队里的图论题单里rank1,1200分。我今天的主要问题还是理解......
  • 2024.8.1随笔
    前言今天下午最后的时间不想写题了,于是就准备拿来随便写写什么。上午讲的是一些图论中常见的考点的应用(大概),题目难度都在蓝到紫,感觉也不是完全不可做,或多或少都能有一些想法,有时能想到点子上,但也常常乱整。今天讲了有关连通分量、欧拉路、2-sat等知识的题,其中2-sat我全部遗......
  • 2024.8 - 做题记录与方法总结
    2024.8-RecordofQuestionsandSummaryofMethodology先分享一个歌单:永无止境的八月!2024/08/01先来点重量级的P4768[NOI2018]归程题面:[NOI2018]归程题目描述本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定。魔力之都可以抽象成一个\(n\)个节......
  • 2024.8.1 test
    A\(n\)个点的完全图,\(i\toj(i<j)\)的边权是\(u_j-u_i\),问最小生成树。\(n\le3e5\)。考虑boruvka算法。boruvka算法是重复以下过程,直到只有一个连通块。找到所有连通块的连向外面的最小边,并把这些边加入最小生成树。不难发现这是最多做\(\logn\)次的。我们现在考虑......
  • RK rk-pcba-test新增测试功能
    testcase_info结构体用来存储有关测试用例的信息。#include<stdio.h>#include<stdlib.h>#include<time.h>#include<sys/time.h>//时间相关头文件#include"extra-functions.h"#include"common.h"#include"rt_test.h"#include&q......
  • 2024.8.1 作业
    使用两个线程完成两个文件的拷贝,分支线程1拷贝前一半,分支线程2拷贝后一半,主线程回收两个分支线程的资源代码:/*******************************************/文件名:threadwork.c/*******************************************/#include<myhead.h>//创建传输信息的结构体......
  • C高级(学习)2024.8.1
    目录shell命令数组数组的赋值数组的调用遍历数组函数函数的定义方式函数调用分文件编程源文件头文件include引用时“”和<>的区别编译工具gcc编译工具gdb调试make工具定义Makefile格式Makefile管理多个文件Makefile变量自定义变量预定义变量自动变量Ma......