zoukankan      html  css  js  c++  java
  • bzoj 1432 数学(找规律)

    我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那

    两个线段所在的直线如图中左

    那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每

    加一对儿就多两条线段,一共要加k对儿,所以答案是2*k,由于图是对称的,就是

    这张图从上往下看和从下网上看是对称的,所以上面第k个是下面第n-k+1个,所以

    比较下这两个大小,k取min然后输出2*k就行了

    /**************************************************************
        Problem: 1432
        User: BLADEVIL
        Language: Pascal
        Result: Accepted
        Time:0 ms
        Memory:220 kb
    ****************************************************************/
     
    //By BLADEVIL
    var
        n, k                    :longint;
    begin
        read(n,k);
        if n-k+1<k then k:=n-k+1;
        if n=1 then writeln(1) else writeln(2*k);
    end.
  • 相关阅读:
    c++常用库
    boost
    android
    UITableView 多选
    c++ 比较两个集合
    事件加不上的另一种原因
    ios多线程
    ubuntu android
    jna StdCallCallback 回调问题查证
    java
  • 原文地址:https://www.cnblogs.com/BLADEVIL/p/3473758.html
Copyright © 2011-2022 走看看