• 2018 Multi-University Training Contest 1 1002 /hdu6299 贪心 1007 /hdu6304 找规律


    1002 /hdu6299 Balanced Sequence

    题意:
    给出 n 个括号串,要把这 n 个串任意排序连接成一个串,求最后连接成的串中,最长匹配子序列。
    题解:
    所有 n 个串中,本身能匹配的就先匹配掉,最后剩下三种串, "(((" 、 ")))((((" 、 ")))))" 。给这三种串按以下优先级排序:
    1、"((((" ;
    2、"))))((((" 中 ')' < '(' 的 , 按 ')' 从小到大排序 ;
    3、"))))((((" 中 ')' >= '(' 的 , 按 '(' 从大到小排序 ;
    4、")))))" ;


    ###[1007 /hdu6304 Chiaki Sequence Revisited](acm.hdu.edu.cn/showproblem.php?pid=6304) 题意: 给出序列生成函数,if(n<=2) a[n] = 1; else a[n] = a[n-a[n-1]] + a[n-1-a[n-2]]; T组数据,每次求前 n 项和。 1≤T≤1e5,1≤n≤1e18 。 题解: 找规律,打表前面几个数,1, 1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 8, 8, 9, 10, 10, 11, 12, 12, 12, 13, 14, 14, 15, 16, 16, 16, 16, 16, 17, 18, 18, 19, 20, 20, 20, 21, 22, 22, 23, 24, 24, 24, 24, 25, 26, 26, 27, 28, 28, 28, 29, 30, 30, 31, 32, 32, 32, 32, 32, 32, 33, 34, 34, 35, 36, 36, 36, 37, 38, 38, 39, 40, 40, 40, 40, 41, 42, 42, 43, 44, 44, 44, 45, 46, 46, 47, 48, 48, 48, 48, 48, 49, 50, 50, 51, 52, 52, 52, 53, 54, 54, 55, 56, 56, 56, 56, 57, 58, 58, 59, 60, 60, 60, 61, 62, 62

    发现,
    出现1次的:3,5,7,9...... 公差为2的等差数列
    出现2次的:2 ,6,10,14....... 公差为4的等差数列
    出现3次的:4,12,20,28...... 公差为8的等差数列
    出现4次的:8 ,24,40,56..... 公差为16的等差数列
    ......
    每个数出现次数就是 lowbit() 。

    所以二分出第 n 个是哪个数,再等差数列求和即可。

  • 相关阅读:
    C#调用WinAPI(转)
    C++升级到C#,内存数据读取问题
    锦里未成行
    创业用人九招成功法则
    彩霞满天
    特别提醒: 7种不良习惯直接影响你晋升!
    生意大展示:49种简易创业方法大比拼
    阴阳天
    受益无穷的28条职场语录
    哈佛:创业者需具备的素质及培养方法
  • 原文地址:https://www.cnblogs.com/sbfhy/p/9455988.html
Copyright © 2020-2023  润新知