首页 > 其他分享 >2024.10.29 test

2024.10.29 test

时间:2024-10-29 20:32:12浏览次数:6  
标签:2024.10 le log 分治 29 ask test 考虑 每个

A

已知 \(n\) 边形的一个三角剖分,你可以进行若干次“城市建造”操作,可以选择三个点并新建一个点为这三个点的内心并连边。构造方案,使得城市建造次数最少,且新图可以划分为两棵树。

只需要进行一次城市建造操作,就可以使边数变为 \(2n\),点数为 \(n+1\),显然即可划分。
考虑取出一个三元环,要求有两条边是多边形边,操作后形成四个点的团,把这个团的边分配好。
对于外面的考虑每次删一个度数为 \(2\) 的点,两条边分属两棵树。类似拓扑排序。

B

有 \(n\) 个点排成一列,执行 \(q\) 次修改每次区间加,最后形成序列 \(A\)。在 \(i\) 点可以跳跃至 \(i+k\),贡献为 \(a_i\),或走向 \(i+1\),没有贡献,问从 \(1\) 到 \(n\) 贡献最大多少。\(n,k\le 10^{12},q\le 2.5e5\)。

离散化划分为若干个权值相同的段,贪心地,要么是取段的开头,要么是接在上一个跳 \(+k\)。
所以对于每个段,只需要知道其左端点前 \(k\) 的位置的信息,以及往前信息的最大值即可。
考虑线段树维护所有同余 \(k\) 的信息,支持区间加,单点取 \(\max\) 即可。

C

一棵树,一开始 \(0\) 号点有病毒,每个点有人,每个人的活动范围是距离其不超过 \(p_i\) 的点。两个点活动范围有交集,就可以在有交集的地方传播病毒。每个点传播病毒的时间是 \(C_i\),问每个点被传播到的时间。

考虑点分治处理。对于分治中心,求出所有点到中心的距离,然后前缀优化建图即可。
这是一个套路题,可以与点分树联系起来。

D

一棵树边权为 \(1\),你可以通过若干次询问来找到所有的边,单次询问是询问 \(ask(u,S)\) 表示查询 \(u\) 到 \(S\) 集合里所有点的距离之和。要求询问次数 \(\le 8500\),\(\sum |S|\le 3e5\)。\(n\le 1000\)。

一个想法就是每次找重心出来,然后做点分治。重心的性质就是到每个点的距离之和最短。
重心的儿子距离其为 \(1\),然后一个个点去确认其属于重心的哪个儿子。考虑用集合的二分去处理。
所以一层的询问次数是 \(O(n\log n)\),总共有 \(O(\log n)\) 层,总的为 \(O(n\log ^2n)\)。\(\sum |S|\) 应是 \(O(n^2)\) 级别。
另一个想法就是定一个根然后一层一层确定两层之间的边。假设现在确定 \(A\) 到 \(B\) 的边,\(A\) 是较浅的。
考虑把 \(A\) 随机对半分成两份为 \(A_1,A_2\)。
考虑调用 \(ask(B_i,A_1),ask(B_i,A_2)\),那么 \(ask(B_i,A_{1/2})=ask(fa_{B_i},A_{1/2})+|A_{1/2}|\)。
那么很显然我们可以按照 \(ask(fa_x,A_1)\) 的值分类,对于分在不同类的 \(B_i\),他们的父亲势必不同。
现在我们就考虑把父亲也分类,直接调用 \(ask(A_i,A_1)\) 分类即可。对于分的每一类考虑继续分治下去。
这个题充分考察了集合的二分,以及通过随机化来给分治划定标准。

标签:2024.10,le,log,分治,29,ask,test,考虑,每个
From: https://www.cnblogs.com/Simon-Gao/p/18514375

相关文章

  • 24.10.29
    A记少加一个取地址符怒挂90pts。虽然本身也不是正解吧。先用A造个线性姬,然后用这个线性姬把剩下的数变成B,再用处理好的部分造线性姬,回头处理A。上面这个在\(n\)较大的时候表现良好,因为用B可以造出一个完整的线性基。上面是没加取地址符挂的90pts。(下面的东西大概......
  • 2024.10.29
    1.reverse函数:翻转对于数组a,a+n;对于字符串或者向量a.begin(),a.end();具体在https://blog.csdn.net/YMWM_/article/details/1154682972.字符串的一种赋值方式点击查看代码for(inti=0;i<n;i++)s[i]=string(7*n/2,'')其中s[]=string(数量,'')是说将s[]这一行赋值为......
  • 10.29随笔
    这里是10.29随笔。这里留一下今天写的代码,用队列实现回文:includeincludeincludeboolisPalindrome(conststd::string&str){intleft=0;intright=str.size()-1;while(left<right){while(left<right&&isspace(str[left])){++left;......
  • 10.29
    软件设计                 石家庄铁道大学信息学院 实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模......
  • AtCoder Beginner Contest 366 - VP记录
    A-Election2高桥日常出镜,kkk好好学学。点击查看代码#include<cstdio>usingnamespacestd;intmain(){ intn,t,a; scanf("%d%d%d",&n,&t,&a); if(t>n-t||a>n-a)printf("Yes\n"); elseprintf("No\n"); return0;......
  • 10.29 视图
    数据库之视图(一)视图的介绍=============================一、什么是视图?视图是一个虚拟表,它是一个虚拟表,它不在数据库中以存储的形式保存(本身不包含数据),是在使用视图的时候动态生成。二、视图的优点?1、提高查询效率数据库中的数据查询非常复杂,可以简化sql语句2、安全有些......
  • 9.29
    桥接模式 挺难的桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类,这两种类型的类可被结构化改变而......
  • 2024.10.29人工智能学记5
    一、提示语设计要点1.明确目标:明确你想要AI完成的任务,构建一个直接且目标明确的提示。2.简洁:提示语应简洁明了,避免不必要的复杂性,AI更清晰地理解你的意图。3.上下文相关性:提示语应该与上下文相关,提供足够的信息以便AI理解问题的背景。4.避免歧义:确保提示语尽可能明确,避免模糊......
  • 2024.10.29 人工智能技术学 第六课时
    复习——任务导向RTRI/问题导向RPGS通过引用/po原文,并引用用于回答问题的文章段落。格式:({“引文”:。。。})“内心独白法”——辅助课业可以将不想让学生看到的内容,隐藏地放到一个结构化的格式里,然后再把输出展示给学生,解析一下这段输出。只展示能给学生看到的那部分。评估反......
  • 2024/10/29人工智能课
    一:给大语言模型发阅读材料如果你手边现成有原文,而且长度合适,建议自带原文去找大语言模型①SYSTEMUsetheprovidedarticlesdelimitedbytriplequotestoanswerquestions.Iftheanswercannotbefoundinthearticles,write"Icouldnotfindananswer."请使......