zoukankan      html  css  js  c++  java
  • Codeforces #345 Div.1

    Codeforces #345 Div.1

    打CF有助于提高做题的正确率。

    Watchmen

    题目描述:求欧拉距离等于曼哈顿距离的点对个数。

    solution
    签到题,其实就是求有多少对点在同一行或同一列。

    时间复杂度:(O(nlogn))

    Image Preview

    题目描述:给定看一张照片的时间,翻页的时间,把图片翻转的时间。一开始屏幕显示第一张照片,可以向左或向右翻,不能跳过还没有看过的图片,方向不对的图片要先翻转再看,看过的不消耗翻转时间与看照片时间,问在一定时间内,最多能看多少张照片。

    solution
    易得只会转向一次,即开始时向左翻,然后向右翻,或者一开始向右翻,然后向左翻。部分和处理一下就可以了。

    时间复杂度:(O(nlogn))

    Table Compression

    题目描述:给出一个矩阵,求另一个矩阵,使得这个矩阵的同一行和同一列的数的大小关系一致,并使这个矩阵的最大值最小,输出这个矩阵。

    solution
    如果没有相同的数字,那么将每一行每一列分别排序,然后连边,求每个点的最长路径即可。如果有相同数字,就要用并查集来维护这些在同一行同一列相同的数字,再做最长路径。

    时间复杂度:(O(nlogn))

    Zip-line

    题目描述:给出一个序列,每次修改其中的一个数,求序列最长严格上升子序列,每次修改是单独的,即修改后会还原。

    solution
    用线段树维护原序列的最长上升子序列(正反)。
    答案有两种情况:
    1、修改后的数在最优子序列中,这时答案为(正向最大+反向最大)线段树求。
    2、修改后的数不在最优子序列中,所以答案应该是原序列的最长上升子序列或次长序列。问题转化为该位置是否在原序列的所有最优解中,是则答案为原序列最优解减一,否则为最优解。
    这个问题可以通过先求原序列最优解,然后看最优解序列的某一位是否是唯一的位置,如果是,该位置则是一定出现在所有最优解中,否则反之。

    时间复杂度:(O(nlogn))

    Clock Bomb

    题目描述:给出一棵树,现在要把它变成另一种形态,操作为删掉一条边,再加一条边,此过程中不能出现有环(包括自环),输出操作方案。

    solution
    这题还没想出怎么做,但删去一条边后就会把树分成两部分,而后来加上去的边一定要在这两部分之间相连。

  • 相关阅读:
    ocos 信号量
    C 语言 输入字符串 并计算输入的字符的长度
    C 语言简历一个文件夹 并自己输入字符 来取文件夹名字
    C语言 创建一个 txt 文件 bin输入字符 保存文件在工作文件夹里
    C语言 之 printf () 函数你真的会用吗?
    Impala的命令COMPUTE STATS
    python 函数eval
    YouTube排名第一的励志英文演讲《Dream(梦想)》
    impala 表迁移方式 partquet数据文件移动方法
    Python中@staticmethod和@classmethod的作用和区别
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/5284940.html
Copyright © 2011-2022 走看看