zoukankan      html  css  js  c++  java
  • 6.11(J,K,L,M,N)

    J - Magic Stones

    题意:

      给定两个序列c和t,每次可以进行一个操作让c[i]=c[i-1]+c[i+1]-c[i](1<i<n)

    思路:

      首先c1和t1,cn和tn必须相等,先设一个数组c1,c2,c3,c4和t1,t2,t3,t4,如果我们改变c3,那么c3'=c4+c2-c3,那么c4-c3'=c3-c2,c3'-c2=c4-c3,可以发现交换的是c4-c3和c3-c2,所以判段两个差分数组就可以了。

    K - Perfect Triples

    题意:

      每次选择一个数字不重复的三元组(a,b,c),满足a xor b xor c=0,加入序列S中,求序列S的第n项

    思路:

      看了半天没发现什么规律,数列的前几项是(1 2 3)(4 8 12)(5 10 15)(6 11 13)(7 9 14)...由于是要xor,写成二进制

      1 10 11   100 1000 1100   101 1010 1111  110 1011 1101  111 1001 1110  10000 100000 110000  10001 100010 110011...

      就可以发现除去第一组,剩下的数字结尾都是以00 01 10 11循环,然后第三第四位也是如此,第一个数在最前面加个1,第二个数在最前面加个10,第三个数在加个11

    L - Sum of Digits

    题意:

      定义f(x)为数字x的各位数之和,给一组n和k,找到x满足f(x)+f(x+1)+...+f(x+k)=n

    思路:

      题目范围k<9,所以最多有一次进位,且n<=150,所以最多10+位,所以可以枚举数字x的位数.进位的位置i和第一位数字j,第一位到第i位之间全部填9,最后判断剩下的值%k是否等于0

    M - Kuroni and the Score Distribution

    题意:

      构造一个数列a满足ai+aj=ak(i<j<k)的情况共有m组

    思路:

      对于一个数列,最多的情况就是1,2,3,4...,每增加一个数字x,满足条件的组数就加(x-1)/2,先一直加到边界,下一个数字枚举,剩下的位置从大到小

    N - Koa and the Beach (Hard Version)

    题意:

      有n片沙滩,有个初始深度,每2k秒内,前k秒+1,后k秒-1,当深度大于l时会淹死,每秒可以前进一格或不动,问是否能穿过

    思路:

      这个没有要求最快的时间,只问了能否通过,沙滩中在d[i]+k<l的位置是可以无限停留的,那么就是要从穿过安全点之间的区域,所以时间为下降段到上升段之间的时间,然后每个位置可以求出一个最早到达的时间,然后保证时间递增且在上升段时不超过l,否则NO

  • 相关阅读:
    Leetcode 647 回文子串
    计算机专业课程——答案搜集
    Centos搭建go环境以及go入门
    android studio实现圆角的button
    关于区块链的认识和看法
    LeetCode 96. 不同的二叉搜索树
    LeetCode 120. Triangle (三角形最小路径和)详解
    LeetCode 64最小路径和
    微信发起摄像头接口请求 上传头像 图片
    Vue解决项目白屏以及(反向代理)
  • 原文地址:https://www.cnblogs.com/Tokisaki-Kurumi/p/14876673.html
Copyright © 2011-2022 走看看