• SRM 587 DIV1


    要掉到DVI2了。。好不容这次的250那么简单,500的题知道怎么做,可惜没调出来500

    250的题很简单,从第1步到第N步,每次要么不做,要么走i步,且X不能走,问说最远走多远。

    #include <iostream>
    #include <vector>
    #include <string>
    #include <string.h>
    using namespace std;
    
    class JumpFurther {
    public:
        int furthest(int N, int badStep) {
            int sum = 0;
            for (int i = 1; i <= N; i++) {
                sum += i;
                if (sum == badStep) {
                    sum--;
                }
            }
            return sum;
        }
    };

    500的题,用g(i)表示不重叠的面积和,n(i)表示异或后的一层的面积和,则最后的答案n(0)+n(2)+...,最重要的发现是g(i)=(w + 1 - i) * f(i) - (w - i) * f(i + 1),f(i)表示一层中的一个三角形的面积,还个重点是分析出对角线被分割的比例,那个比例可以转换为宽度的比。

    #include <iostream>
    #include <vector>
    #include <string>
    #include <string.h>
    using namespace std;
    
    class TriangleXor {
    public:
        int w;
        double h(int i) {
            return w * 1.0 / (w + i);
        }
        double f(int i) {
            return w * h(i) / 2.0;
        }
        double g(int i) {
            if (i > w) {
                return 0;
            }
            return (w + 1 - i) * f(i) - (w - i) * f(i + 1);
        }
        double n(int i) {
            return g(i) - g(i + 1);
        }
        int theArea(int W) {
            w = W;
    
            double s = 0;
            for (int i = 0; i <= w; i += 2) {
                s += n(i);
            }
    
            return (int)s;
        }
    };
  • 相关阅读:
    查看资源加载各环节具体耗时的利器
    WebStorm 格式化代码快捷键
    Android 如何使edittext默认失去焦点
    html语义化练习易牛课堂代码
    html网页练习豆瓣网
    HTML前期学习总结
    视频课阶段基础知识总结
    MQ、JMS 关系的理解
    Jvm参数配置
    Java泛型
  • 原文地址:https://www.cnblogs.com/litstrong/p/3232465.html
Copyright © 2020-2023  润新知