zoukankan      html  css  js  c++  java
  • [训练日志] 7月17-21日

    codeforces 351C
    [构造一个n*m的括号序列,每个位置根据%n的情况(和)分别有花费,求最小费用]
    [考虑一般dp。有结论状态不会超过n。所以我们以n位为一块,用f[i][k][j]表示目前i位,前缀和最小为k,当前和为j的最小费用,预处理出从状态转移矩阵T。然后用min_plus矩阵加速T^m计算。]
    [状态不超过2n的证明:在刚到达2n的前一刻的前缀和一定>n,所以可以将之后和为负的块往前调整,使得状态不超过2n]
    [此题也可考虑倍增, F[k][i][j]表示2^k * n个括号形成[']' * i + '(' * j)的最小代价。最后将m的二进制1位的答案合并。]
    [有规律,状态又多得时候大胆猜想状态是有范围的。可以将状态放宽至2*n。]
    codeforces 258D
    [给一个排列,以及m个数对。对于每个数对有1/2的概率交换两个位置的数,求最终排列的逆序对数]
    [令f[i][j]表示位置i得数>位置j的数。对于数对x,y  f[x][y]=f[y][x],其他f[i][x]=f[i][y]=(f[i][x]+f[i][y])/2]
    [如果考虑数i个数j之间的关系,会非常难处理,因为他们的位置经常变化。而考虑i和j位置,本身不变化。不变化比变化好处理,这其中富含某种哲理。]
    codeforces 279D
    [注意到变量中出现的数只能是ai,于是我们可以用状态压缩dp]
    [因为最后一位一定出现,所以可以不记录那一位节省空间和时间]
    codeforces 126D
    [给定n求其斐波拉契数的拆分方案]
    [将其贪心地表示为尽可能大的斐波拉契数。可以证明任何一个数一定能被这样表示出来。然后得到一个01序列,001可以变成110。于是我们从低位的1开始做dp。Dp[i][1]表示这个1保留,dp[i][0]表示这个1拆分。如果拆分会发现这个位置又变成了0,因此对于dp[i+1][0]的转移会有影响]
    [如果从高位往低位考虑会发现容易冲突,不利于思考。]
    codeforces 18E
    [给n*m的网格重新染色,要求相邻颜色不一样且每行最多只能有两种颜色]
    [只能交叉染色。F[i][a][b]表示第i层为止按abab染色的最小花费,转移是从f[i-1][x][y](x!=a&&y!=b)记录四个方向的前缀和即可]
    NEERC16 Gym101190F
    [有一叠牌,每次等概率取若干张,如果最上面为反面就把抽的牌都反过来,求最后反面向上的牌的期望]
    [f[i]表示从底往上取完i张牌的期望。等概率的从i+1至n转移来。f[j]+(i到j+1的正面或者反面的数量,由第i张的正反面决定) ]
    HDU 4976
    [你每回合可以使得一个小兵减一滴血,如果死了就得一分。你的回合后所有小兵会减一滴血。求最大得分]
    [先计数。对于c[i]=0的位置,对应之后第一个>=2的位置,代价是位置差。于是可以f[i][j]表示到第i个数,剩下j个行动轮。每次可以把行动轮留着,也可以的一分(c[i]>0),或者花若干代价得一分(c[i]=0)]
  • 相关阅读:
    逆向路由器固件之敏感信息泄露 Part2
    隐匿在iOS文件系统中的隐私信息
    使用Arduino模块实施无线信号的重放攻击
    逆向路由器固件之解包 Part1
    maven 多模块项目
    java中Map,List与Set的区别(转)
    mysql-开启慢查询&所有操作记录日志
    maven阿里云中央仓库
    yii2 RESTful api的详细使用
    Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)
  • 原文地址:https://www.cnblogs.com/jszkc/p/7223244.html
Copyright © 2011-2022 走看看