首页 > 其他分享 >USACO2024 OPEN

USACO2024 OPEN

时间:2024-03-24 21:34:10浏览次数:22  
标签:子串 面试官 le USACO2024 OPEN Silver sim 字典

Silver A

先用随便一个优先队列求出最短时间(怎么分配面试官对总时间没影响)。

赛时的想法是用并查集维护所有曾同时间结束的面试官,但是是错的。

Hack:若面试官 \(a\) 与面试官 \(b\) 同时结束,之后 \(b\) 又与 \(c\) 同时结束。用并查集会认为 \(a,b,c\) 都是绑定的整体。但如果 \(a\) 可以,不一定能推出 \(c\) 可以。

那怎么做?如果牛 \(i_1\sim i_m\) 同时结束了面试,同时 \(m\) 头牛的面试官又面试了牛 \(j_1\sim j_m\)。令 \(i_1\sim i_m\) 向一个中间结点 \(P\) 连边,\(P\) 向 \(j_1\sim j_m\) 连边。则 \(u\) 可达 \(v\) 说明 \(u,v\) 能被同一个面试官面试。

则面试官 \(i\) 能面试 \(n+1\) 就等价于牛 \(i\) 可达 \(n+1\)。

Silver B

难点只在于怎么把多边形的顶点排序。如果排好序了就套个前缀和就行了。

怎么排序?对于同一 \(x\) 上的一些点 \(p_1\sim p_m\),一定有竖向边 \((p_1,p_2),(p_3,p_4),\dots\)

横向边也同理。这样就能找出所有边,自然也能排序。

Silver C

题意简化:给定字符串 \(s\)。对于 \((K,L)\),从 \(s\) 中取出每个长度为 \(K\) 的子串,再从每个子串中取出长度为 \(L\) 的字典序最小的(字典序相同选左边的)子串。设 \(|P(K,L)|\) 表示有多少个位置不同的长度为 \(L\) 的子串被选择了。

对于每个 \(i=1\sim n\),求有多少个 \(|P(K,L)|=i\)。\(1\le n\le 3000\)。

注意当有多个字典序最小的,会选择最靠左的。

用 \(O(n^2)\) 的时间预处理出这两个数组:\(l_{L,i}\) 是最大的 \(<i\) 的且 \([l_{L,i},l_{L,i}+L-1]\) 的字典序 \(\le\) \([i,i+L-1]\) 的字典序的数。

\(r_{L,i}\) 是最小的 \(>i\) 的且 \([r_{L,i},r_{L,i}+L-1]\) 的字典序 \(<\) \([i,i+L-1]\) 的字典序的数。

则一个字符串 \([A,B]\) 会以 \([i,i+L-1]\) 作为其字典序最小的最靠左的子串的要求,就是 \([A,B]\) 包含 \([i,i+L-1]\),且不包含 \([l_{L,i},l_{L,i}+L-1]\) 和 \([r_{L,i},r_{L,i}+L-1]\)。

显然可得 \(L\le B-A+1\le r_{L,i}-l_{L,i} + L - 2\)。

所以每个 \([i,i+L-1]\),会给所有满足 \(L\le K\le r_{L,i}-l_{L,i} + L - 2\) 的 \((K,L)\) 贡献 \(1\),用差分即可统计出所有

标签:子串,面试官,le,USACO2024,OPEN,Silver,sim,字典
From: https://www.cnblogs.com/FLY-lai/p/18093037

相关文章

  • Python+openpyxl 拆分Excel合并的单元格
    图片数据是举例子。在实际使用中,从需求网页上下载的生产资料是带有合并单元格的,但在处理的时候需要拆分开,不然不好操作。使用openpyxl可以实现操作如果没有安装openpyxl库,首先安装openpyxl在命令行执行pipinstallopenpyxl点击查看代码importopenpyxlpath=r"test.......
  • centos7 Packstack allinone安装openstack
    centos7Packstackallinone安装openstackPackstack是一种用于自动化部署OpenStack环境的工具,它可以快速安装和配置OpenStack的各个组件,同时提供了一些默认设置以方便快速上手。All-in-One模式是Packstack的一种安装模式,它在一台物理或虚拟机上部署了所有OpenStack的核心组件,包......
  • 分享:vue3+OpenTiny UI+cesium 实现三维地球
    效果图使用vue3+OpenTinyUI+cesium实现三维地球node.js>=v16.0opentinyvue3ui安装指南https://opentiny.design/tiny-vue/zh-CN/os-theme/docs/installationyarnadd@opentiny/vue@3项目依赖"dependencies":{  "@opentiny/vue":"3"......
  • Open CASCADE学习|显示文本
    目录1、修改代码Viewer.h:Viewer.cpp:2、显示文本OpenCasCade你好啊霜吹花落1、修改代码在文章《OpenCASCADE学习|显示模型》基础上,增加部分代码,实现对文本显示的支持,具体如下:Viewer.h://-----------------------------------------------------------------------......
  • cenots7升级openssl到 3.x
    原文地址:https://www.jianshu.com/p/e83595604846升级步骤:Openssl官网:https://www.openssl.org/source/#查看SSL版本[root@cnki-120-145-80~]#opensslversionOpenSSL1.0.2k-fips26Jan2017#获取旧的openssl命令的位置[root@cnki-120-145-80~]#whichopenssl/us......
  • openstack云平台创建卷以及使用卷挂载
    参考:openstack上创建云主机步骤:打开卷,选择创建名称为test-lv大小为10GB 创建卷好之后,还需要和实例关联才可以使用,点击编辑卷下拉列表框中选择管理连接 使用SSH登录云主机控制台,查看磁盘情况 对磁盘进行分区 格式化磁盘,挂载在/mnt目录下写入一个test文件 ......
  • openstack glance 运维命令
     创建一个centos7.2的镜像[root@localhost~(keystone_admin)]#lsanaconda-ks.cfgDesktopDownloadskeystonerc_demooriginal-ks.cfgPicturesTemplatesCentOS7.2.qcow2Documentskeystonerc_adminMusicpackst......
  • 前端问题:Watchpack Error:too many open files
    近日在前端上偶遇WatchpackError:toomanyopenfiles这一奇葩问题,经过一番检索,先将修复过程记录.核心问题:WatchpackError(watcher):Error:EMFILE:toomanyopenfiles,watch'/home/bizuser/work/net-work/abp02/angular/node_modules/@babel/runtime/helpers'W......
  • WPF initialization for opening and unitialization for closing process
    //xaml<Windowx:Class="WpfApp10.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic......
  • Claude3发布成为大模型之王,Openai是否真的跌落神坛,附试用链接
    人不走空                                          ......