zoukankan      html  css  js  c++  java
  • 2016年四川省赛补题

    4/10

    赛后反思

    C题WA了三发。。。。反思一下wa了赶紧找队友帮忙调错。。。。不要单干。。。。。

    A. Nearest Neighbor Search [Megumin]

    求出区间[x1,x2]内的数与x0差的绝对值的最小值,对y和z也求出对应的值,然后加起来即为所求

    E. Coins [Megumin&wqf]

    分类讨论

    首先讨论面值为1和2的硬币的有无,若两者都有,则能取到从1到(a+2*b+3*c)的所有面值;若有1没有2,需要考虑1的个数是否大于1,若大于1,则能取到从1到(a+3*c)的所有面值,否则只能取到模3余1的面值(c+1种)和3的倍数(c种),共(2*c+1)种;若1和2都没有,答案显然是c;若有2没有1,若没有3,答案就是b,否则情况比较复杂,这里将能取到的面值按模3的余数分开考虑:3的倍数有(b/3*2+c)种,模3余1的,首先用两个2得到4(若没有两个2,这部分答案为0),然后用剩下的2和3构成3的倍数,于是这部分答案为((b-2)/3*2+c),模3余2的,首先拿出一个2,然后用剩下的2和3构成3的倍数,这部分答案是((b-1)/3*2+c),将三部分答案相加即可

    I.Longest Increasing Subsequence [wqf补 难]

    先$5!$枚举一下排列,这样LIS的长度大小就确定了 然后$dp[i][j]$表示第$i$个数取$j$的LIS的个数,转移方程为$dp[i][j] = sum_{k=0}^{j-1 else j}dp[i-1][k]$ ,可以用前缀和优化一下 其中当比较排列rk[i-1]与rk[i]的时候会是两种情况,一种把小于j的情况放前面,另一种是把小于等于j的情况放后面 例如order是1, 2 dp[2][2] += dp[1][1] (对应实际序列1,2); order是2 1的时候 dp[2][2] += dp[1][1]+dp[1][2] (对应实际序列2,1和2,2), 并且相等的情况只出现在这里,可以保证没有重复计数; 代码: http://paste.ubuntu.com/24386827/

    J. Matrix Transformation[wqf]

    用双向循环 十字链表把矩阵串起来,每次操作其实只会改变 O(n) 个地方,暴力维护下就行。

    代码:
    http://paste.ubuntu.com/24386890/

  • 相关阅读:
    1.5环境变量与文件查找(学习过程)
    1.4程序的机器级表示(学习过程)
    1.3信息的表示和处理(学习过程)
    hdu4706
    【多重背包】Transport Ship
    【动态规划】Mathematical Curse
    【动态规划】subsequence 1
    学习线性基
    学习秦九韶算法
    学习裴蜀定理
  • 原文地址:https://www.cnblogs.com/ACGO/p/6714667.html
Copyright © 2011-2022 走看看