zoukankan      html  css  js  c++  java
  • Codeforces Round #436 (Div. 2)

    Codeforces Round #436 (Div. 2)

    第一次算rate的cf比赛,排名还算不错,但也看到了竞争的激烈,一题可以秒掉几百人,可怕。。。(那些人为什么会有空去hack别人)

    A. Fair Game

    题目描述:给出一个有(n)(偶数)个元素的数组(a),判断给数组是否只由两个不同的数组成,并且这两个数的个数相等,如果是,则输出这两个数,否则输出"NO"

    solution
    模拟题
    时间复杂度:(O(n))

    B. Polycarp and Letters

    题目描述:给出一个长度为(n)的字符串(st),从(1)(n)选出若干个数组成集合(A),若集合(A)满足:1、(st[A[i]])为不同的小写字母 2、对于所有的(A[i]<A[j])都有(st[k])不是大写字母((A[i]<k<A[j]))。问(A)最多有多少个元素。

    solution
    将集合(A)中的元素从小到大排序,题目中的第二个条件就相当于是(A)相邻两个元素对应的位置之间的字符不是大写字母。所以大写字母就把字符串(st)分为了多个字符串,这些每个字符串中不同字母个数最多的就是答案。
    时间复杂度:(O(n))

    C. Bus

    题目描述:有一辆巴士在数轴上的(0)(a(a>0))之间来回移动,从(0)出发或回到(0)为一趟,巴士一共要走(k)趟。在(f(0<f<a))处有一个加油站,巴士可以停下来加油,巴士的油箱容量为(b),每次加油都会把油箱装满,初始时巴士的油箱是满的。问巴士至少要加多少次油才能走完(k)趟,若无解则输出"NO"

    solution
    贪心。若不能走到加油站,则输出无解,到加油站后,若能坚持到下一次到加油站(或终点),则这次不加油,否则加油,若加完油还是不能坚持到下一次到加油站(或终点),则输出无解。
    时间复杂度:(O(k))

    D. Make a Permutation!

    题目描述:给出一个有(n)个元素的数组(a),数组(a)中的元素都在([1, n]),现在要就数组(a)修改为一个(n)排列,修改操作为每次将一个元素改成另一个数,问最少要修改多少次,在修改次数一样下,输出修改后字典序最小的排列。

    solution
    数组(a)缺了多少个元素,就要修改多少次,问题在于字典序最小。
    假设当前枚举到第(i)个元素,当前最小的缺失的数为(j),某个数(num),在[i, n]有多少个为(sum[num]), 某个数(num)是否可以修改为(changeable[num])
    若$ (changeable[a[i]]==true || ( sum[a[i]]>1$ && (a[i]>j))),那么就将(a[i])修改为(j)。后一个条件挺好理解的,就是如果(a[i])在后面还有多个,而且(a[i])比缺失的数大,那么修改之后肯定更好。
    (changeable)是什么呢?当(changeable[a[i]]==false)时,相当于第一次碰到(a[i])这个数,((sum[a[i]]==1 || a[i]<j)),这个数只有一个,肯定不能修改,(a[i]<j),修改后字典序不优,所以该位置不修改,但(a[i])可能在后面会有出现,而后面的位置必须修改,所以将(changeable[a[i]]=true),表示这个数一定要修改。
    时间复杂度:(O(n))

    E. Fire

    题目描述:现在发生了一场大火,有(n)个物品可以拯救,每个物品有三个属性(t_i, d_i, p_i),分别表示拯救所需时间,物品烧坏的时刻,物品的价值。选择要拯救的物品以及次序,使得拯救的物品的总价值最大。

    solution
    dp。首先按(d_i)进行排序,然后做一次背包,如果不用输出方案,则数组可以只用一维,但现在要记方案,那就只能用二维。
    时间复杂度:(O(max(d_i)n))

    F. Cities Excursions

    还没有调试出来。。。

  • 相关阅读:
    系统角色权限问题
    解析JQuery Ajax
    JavaScriptSerializer序列化时间处理
    Javascript加载talbe(包含分页、数据下载功能)
    代理模式
    工厂模式
    单例模式
    Oracle内置函数
    Oracle大数据SQL语句优化
    Oracle大数据查询优化
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/7609433.html
Copyright © 2011-2022 走看看