/ Vijos / 题库 / C数列 /

题解

31 条题解

  • 0
    @ 2007-10-16 22:51:56

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    同楼下的……

  • 0
    @ 2007-10-16 19:03:26

    肥:从后面往前找。。 不要从前往后找。。 这样不优。。

    然后我终于知道这题里面所谓的位运算优化怎么用了。。

    但是话说其实也不是的。。 只不过是一个小技巧吧。。

    最后Orz秒杀群众大牛~~

  • 0
    @ 2007-10-17 22:47:33

    --New Modified--

    嘛,IDDFS过了…不过我原来的方法貌似是能求出最小解…?我的调整是调整到小的比较优,因为我是从n往前推的Orz……

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案错误...

     ├ 标准行输出 1 2 4 8 12 13 26 39 47

     ├ 错误行输出 1 2 3 5 10 13 23 24 47

    ├ 测试数据 03:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 96 100

     ├ 错误行输出 1 2 3 6 12 24 25 50 100

    ├ 测试数据 04:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 65 130 195 203

     ├ 错误行输出 1 2 3 6 12 13 25 50 100 103 203

    ├ 测试数据 05:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 128 136 137 274 411

     ├ 错误行输出 1 2 3 6 12 24 27 51 102 204 207 411

    ├ 测试数据 06:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 128 192 193 386 579 611

     ├ 错误行输出 1 2 3 6 9 10 19 38 76 152 304 307 611

    ├ 测试数据 07:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 128 256 288 296 592 888

     ├ 错误行输出 1 2 3 6 12 15 27 54 57 111 222 444 888

    ├ 测试数据 08:答案错误...

     ├ 标准行输出 1 2 4 8 16 32 64 128 192 200 400 800 1000

     ├ 错误行输出 1 2 3 5 10 15 30 60 65 125 250 500 1000

    ---|---|---|---|---|---|---|---|-

    贪心+DFS调整………………

  • 0
    @ 2007-10-12 17:31:17

    原来a[k]:=a[k-1]+a[i](1

  • 0
    @ 2007-10-12 20:18:21

    现在好了

    迭代加深搜索+位运算剪枝=0ms

  • 0
    @ 2007-10-07 22:19:50

    不踩太可惜了~~

  • 0
    @ 2007-10-07 22:01:06

    kkkkkkkkkkkkk

  • 0
    @ 2007-10-07 21:27:48

    搜索吧

    第11个AC

  • 0
    @ 2007-10-07 19:48:07

    似乎有多解……

  • 0
    @ 2007-10-07 19:19:56

    第8个AC的~

  • -2
    @ 2017-07-02 16:49:50

    如果只是求最长序列,log n即可

    #include<stdio.h>
    int n,s[1000],t=0;
    void dfs(int x){
        if(x==1) return;
        if(x&1) {
            int q=x>>1;
            dfs(q&1?q+1:q);
            t+=2;
        } else {
            dfs(x>>1);
            t++;
        }
    }
    int main(){
        scanf("%d",&n); dfs(n);
        printf("%d\n",++t);
    }
    
    • @ 2017-09-28 21:13:01

      .-.这好像不是这道题的正解吧。

信息

ID
1350
难度
6
分类
搜索 点击显示
标签
(无)
递交数
226
已通过
58
通过率
26%
被复制
4
上传者