zoukankan      html  css  js  c++  java
  • Codeforces Round #389(div 2)

    A

    =w=

    B

    QvQ

    C

    题意:在一个格子图里给出一个路径 里面有UDLR四种移动方向 问 我在格子路径里面最少选几个点 可以让我沿着格子路径走 其实是在相邻的点与点之间走最短路

    分析:贪心+模拟

      尽可能选取长的一段,满足这一段里L和R只出现一种,U和D只出现一种

      模拟即可

    D

    题意:给出n个字符串,每个字符串长为k(n*k<=100000),每个字符串都有一个权值(可正可负可为0),选取若干个字符串组成一个回文串,让这个回文串权值和最大,输出这个最大权值和

    分析:贪心+map+vector

      先用map把所有字符串hash一下

      把所有相同字符串对应的不同权值全部放入vector中并从大到小排序

      要先明确一点,构成字符串,可以是完全左右对称的,也可以中间有一个自身是回文串的子串

      从前到后遍历每个第一次出现的字符串,得到他的反转串,若反转串map里没有则跳过

      若反转串存在且和自身不同(也就是本身不是回文串),记两个字符串编号分别为u和v

        从前到后遍历u和v对应的vector,从大到小将他组成一对,即g[u][0]+g[v][0],g[u][1]+g[v][1]....,直到终止或者某两个和为负数

      若反转串存在且和自身相同(也就是本身是回文串),记这个字符串编号为u

        看这个字符串的所有权值中正的有多少个

          若为偶数个,什么都不用想,直接两两配对

          若是奇数个,考虑两种情况

             若最后一个正数加上下一个负数的结果为负数,那么这最后一个正数可以作为预备中间数(弄个变量t不断更新最大值,t=max(t,v[i])),前面配对

             若最后一个正数加上下一个负数的结果为正数,那么这个奇数权值可能作为两边的也可能作为中间的,我们不妨先把其当作两边的,用-v[i+1]表示如果该字符串作为中间字符串能给结果带来多少增益,那么t=max(t,-v[i+1])

      ans=sum+t(t是某个自身回文串在中间给结果带来的增益)

    E

    题意:n个橘子,每个橘子都有自己的片数a[i],每次可以将一个橘子或者切成的一部分对半分,如果是奇数就对半分成相邻的两个数。最后分出的许多块橘子中取最大的k块,让这k块橘子中最小的片数最大。(n<=1e6,a[i]<=1e7,k<=2e9)

    分析:二分答案

      先二分答案mid

      如果一般的判定,扫一遍a数组,判断每个a[i]切成>=mid的最多能有多少块,这样复杂度是nlognlogc(会TLE)

      判定可以这样考虑

      设f[i]表示片数为i的橘子有多少块,那么f[i/2]+=f[i],f[(i+1)/2]+=f[i] 这里可以先开始通过O(C)的预处理得到

      然后弄个后缀和,二分的时候就可以根据后缀差得到对应mid的答案,判定时间是O(1)

      总的时间复杂度是O(C)

    F

    题意:给定2k个队伍分别住在2k个城市里,需要设定若干个城市,然后选取2个队伍要在它们的最短路径上设一个城市作为休息站。要求设立最少的休息站,然后输出如何安排2个队伍

    分析:结论题

      其实这个休息站只需要1个

      将那些有队伍的城市权值设为1,其它城市权值设为0

      那么这个休息点就是这棵树的权值重心(也就是说某个点为根,所有子树的权值和<=所有点权值和的一半)

      所以只需要找到这个休息点就找到了答案

      至于方案,可以以这个休息点为根,dfs,先遍历到的k个点放一边,后遍历到的k个点放在另一边(因为是权值重心),所以这样一一对应是合法的

  • 相关阅读:
    假设用一个名为text的字符串向量存放文本文件的数据,其中的元素或者是一句话或者是一个用于表示段分隔的空字符串。将text中第一段全改为大写形式
    迭代器介绍
    从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写为大写字母。
    标准库类型vector
    css 滤镜之AlphaImageLoader
    css设置背景图片自适应
    网易云音乐怎么免费下载付费歌曲
    font-family,font-size,color
    css设置图片居中、居左、居右
    数据库语句之建表、拷贝数据表
  • 原文地址:https://www.cnblogs.com/wmrv587/p/6266805.html
Copyright © 2011-2022 走看看