zoukankan      html  css  js  c++  java
  • 一些刷题过程中的结论

      

    来源UVA 10313 整数i拆分成不超过j个整数的拆分方案数,是和整数i拆成若干个值不超过j的整数的拆分方案数是相同的

    原理 Ferrers图像 详:http://blog.csdn.net/shiqi_614/article/details/7001949

    关于C++引用带的的不易发现的错误。来自于一个4维DP。UVA 10913 例如int&res=dp[i][j][p][q].如果在这个记忆化搜索子过程中需要更新i,j,p,q;比如在当前递归中p++,那么此时的res是dp[i][j][p-1][q];而不是更新的dp[i][j][p(执行p++之后[q];

     http://vjudge.net/contest/viewSource.action?id=2590324

    double类型,POJ出现%lf WA %f AC.为啥就暂且放下,,

    矩形主副对角线存在坐标和相等,坐标差相等的规律。两点横纵坐标和互为奇偶则两点不在同一主副对角线上。source:codeforces 264 C

    手算开平方:例

    26244进行开平方:
    1)对26244进行划分,从最后两位两位的向前划分,结果为2 62 44
    2)从最高分段开始计算:只有1 平方小于2,第一次运算的结果为,被除数是2,除数是1,商是1,余数是1
    3)用余数1和接下来的两位组成新数162,用公式 商(1*20+X)*X<=162,试探后x = 6,则本次运算的结果是
    被除数是162,除数是(1*20+X)=26,商是6,余数是162 - (20+6)*6 = 6;
    4)用余数6和接下来的两位组成新书644,用公式(16*20+X)*X<=644,试探得x = 2,则本次运算的结果是
    被除数是644,除数是(16*20+X)=322,商是2,余数是0;
    则最后的结果是162;
    斐波那契素数:与所有比其小的斐波那契数互质的素数;定理:从第5项开始,某项位斐波那契素数当且仅当他的项数位素数即3,4,5,7.....项位斐波那契素数。黑书221
    设字符一空K类,个数分别是n1,n2,n3...nk则这个多重级的全排列个数是(n1+n2+n3....nk)!/n1!*n2!*....*nk!
    UVALIVE 2955 关于梅森素数 

    我们把满足 E = 2 ^ i - 1 的素数E称作梅森素数。

    关于梅森素数,有一个重要的定理:“一个数能够写成几个不重复的梅森素数的乘积” 等价于 “这个数的约数和是2的幂次”,但是不能重复,比如说3是梅森素数,9就不满足约数和为2的幂。详见UVALIVE 2955

    对于最大流无向图双向建边是4条边。临接表建图注意反向容量为0。如果有向图同样也是反向边为0.邻接矩阵可以直接memset(cap,0);  //总结的暂时可能需要纠正。

    关于点联通度 边联通度

    http://hi.baidu.com/lerroy312/item/5a5f36f2f5bba61bcf9f322e

    竞赛图:图中的任意两点间有且仅有一条有向弧连接

    求竞赛图中的哈密顿路的算法:

    首先,由数学归纳法可证竞赛图在n>=2时必存在哈密顿路;

    (1)n=2时显然;

    (2)假设n=k时,结论成立,哈密顿路为V1,V2,...,Vi,...,Vk;

         现添加第k+1个结点,若存在弧<Vi,Vk+1>和弧<Vk+1,Vi+1>,则可得哈密顿回路V1,V2,...,Vi,Vk+1,Vi+1,...,Vk;

         若不存在上述的vi,考虑到Vk+1与v1~vk的连通状况,则只有下面种原哈密顿路的情况:

         1.所有的Vi(1<i<k)与Vk+1的弧的方向都是<Vi,Vk+1>,那么可得哈密顿回路V1,V2,...,Vi,...,Vk,Vk+1;

         2.所有的Vi(1<i<k)与Vk+1的弧的方向都是<Vk+1,Vi>,那么可得哈密顿回路Vk+1,V1,V2,...,Vi,...,Vk;

         3.存在一个中间结点m,使得所有的Vi(1<=i<=m)与Vk+1的弧方向为<Vk+1,Vi>,所有的Vj(m<j<=k)与Vk+1的弧的方向为<Vj,Vk+1>,这时依然可以构造哈密顿路 V1,V2,...,Vi,...,Vk,Vk+1;

    引用:http://blog.csdn.net/dgq8211/article/details/7602807

    有一堆个数为n的石子,游戏双方轮流取石子,满足:

    1)先手不能在第一次把所有的石子取完;

    2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。

    约定取走最后一个石子的人为赢家,求必败态。

    这个和之前的Wythoff’s Game 和取石子游戏 有一个很大的不同点,就是游戏规则的动态化。之前的规则中,每次可以取的石子的策略集合是基本固定的,但是这次有规则2:一方每次可以取的石子数依赖于对手刚才取的石子数。

    这个游戏叫做Fibonacci Nim,肯定和Fibonacci数列:f[n]:1,2,3,5,8,13,21,34,55,89,… 有密切的关系。如果试验一番之后,可以猜测:先手胜当且仅当n不是Fibonacci数。换句话说,必败态构成Fibonacci数列。

    anti-num 普通去石子游戏取光着输,结论 http://blog.csdn.net/acm_cxlove/article/details/7854530   定义:若一堆中仅有1根火柴,则被称为孤单堆。若大于1根,则称为充裕堆。
    定义:T态中,若充裕堆的堆数大于等于2,则称为完全利他态,用T2表示;若充裕堆的堆数等于0,则称为部分利他态,用T0表示。 

      必败态: T2,S0 
      必胜态:    S2,S1,T0.

    先手必胜(1)当且仅当所有石子数为1,且游戏SG值为0;有些堆的石子数大于1,且SG不为0;
     

    题目:多棵树,删边游戏,最后一次操作的人输

    其中树的删边游戏:叶子节点的SG值为0;中间节点的SG值为它的所有子节点的SG值加1 后的异或和。

    ANTI-SG:先手必胜当且仅当:(1)游戏的SG函数不为0且游戏中某个单一游戏的SG函数大于1;(2)游戏的SG函数为0且游戏中没有单一游戏的SG函数大于1。

    K倍动态减法http://blog.csdn.net/acm_cxlove/article/details/7836544

    C(n,2*(i+1))*CAN(i+1)=(n-2*i)*(n-2*i-1)/(i+1)/(i+2)  *  (C(n,2*i)*CAN(i))

    A^x % m = A^(x%phi(m)+phi(m)) % m (x >= phi(m))

    若一个数可以写成若干个不同的梅森素数的乘积,那么这个数的所以因子和可以写成2x.
    232−1的范围内只有8个梅森素数 幂分别为2, 3, 5, 7, 13, 17, 19, 31

    在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。
    即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )

    也可以写作:若p为质数,则p可整除(p-1)!+1

    LUCAS定理

    A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。
    则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0])  modp同余

    即:Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p) 

    //有这么个公式cosa=cosb*cosc+sinb*sinc*cosA
    //其中小写a,b,c表示球面三角形边长所对应的圆心角 大写A表示三角形内角,求球面三角形内角可用
    struct node
    {
        double x,y;
    };
    //计算圆心角lat表示纬度,lng表示经度,-90 <= w <= 90;
    //计算两点所在大圆劣弧对应圆心角,0 <= angle <= pi;
    double angle(double lng1,double lat1,double lng2,double lat2)
    {
        double dlng = fabs(lng1 - lng2) * PI / 180;
        while(dlng + eps > PI + PI)
            dlng -= PI + PI;
        if (dlng > PI) dlng = 2 * PI - dlng;
        lat1 *= PI / 180; lat2 *= PI / 180;
        return acos(cos(lat1) * cos(lat2) * cos(dlng) + sin(lat1) * sin(lat2));
    }
  • 相关阅读:
    SpringMVC:拦截器拦截时机和原理
    SpringBoot:MessageConverter自动配置原理
    SpringMVC:返回值处理器原理和MessageConverter原理
    SpringMVC:自定义Converter
    XML-RPC协议学习
    ContentControl 与 ViewModel (一)
    C# 获取相对路径(绝对路径转相对路径)
    WPF 最简单的TextBox水印
    WPF/Silverlight开发的15个最佳实践(转发)
    WPF 打印崩溃问题( 异常:Illegal characters in path/路径中有非法字符)
  • 原文地址:https://www.cnblogs.com/Commence/p/3976008.html
Copyright © 2011-2022 走看看