zoukankan      html  css  js  c++  java
  • hdu 2725

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2725

    题意:给一个字符串表示一条河。'.'表示水,其它字符表示障碍。人在岸上用石子打水漂,每次可以选择一个击中的距离和跳跃间隔。石子多次跳跃后击中障碍物或越过河则结束。每种打水漂的方案按跳跃次数(大者优)、最后在河中的距离(大者优)、起始位置(大者优)、跳跃间隔(小者优)比较,问最好的方案是哪种。

    mark:无坑。直接写就好。

    #include <stdio.h>
    #include <string.h>
    
    
    int count, length;
    int rcount, rlength, ri, rj;
    int len;
    char str[100];
    
    
    int calc(int pos, int skip)
    {
        count = 0, length = pos;
        while (pos < len && str[pos] == '.')
        {
            pos += skip, count++;
            if (pos < len) length = pos;
        }
    }
    
    
    void update (int c, int l, int p, int k)
    {
        if (c < rcount) return ;
        if (c > rcount){
            rcount = c, rlength = l, ri = p, rj = k;
            return ;
        }
        if (l < rlength) return ;
        if (l > rlength){
            rcount = c, rlength = l, ri = p, rj = k;
            return ;
        }
        if (p < ri) return ;
        if (p > ri){
            rcount = c, rlength = l, ri = p, rj = k;
            return ;
        }
        if (k > rj) return;
        rcount = c, rlength = l, ri = p, rj = k;
    }
    
    
    int main()
    {
        int i, j;
        while (~scanf ("%s", str) &&strcmp(str, "END"))
        {
            rcount = rlength = ri = -1;
            rj = 0x0fffffff;
            len = strlen(str);
            for (i = 0; i < len; i++)
                for (j = 1; i + j <= len; j++)
                {
                    calc(i, j);
                    update(count, length, i, j);
                }
            printf ("%d %d
    ", ri, rj);
        }
        return 0;
    }
  • 相关阅读:
    前端优化技巧
    AngularJS 细节
    Xamarin.ios 目录结构
    Java编程中“为了性能”需做的26件事
    Java中的反射Reflection
    在MyEclipse中导入Datebase方法以及在MyEclipse项目工程里加载jar驱动的方法
    Solr 使用 Log4j
    solr学习笔记linux下配置solr
    Java程序员应该了解的10个面向对象设计原则
    Java堆内存的10个要点
  • 原文地址:https://www.cnblogs.com/lzsz1212/p/4271465.html
Copyright © 2011-2022 走看看