零散的东西

  • 三角函数与反三角函数

需要引入math头文件,需注意使用函数时传入的参数应当是弧度制,返回值类型为double类型

三角函数

  1. sin( )
  2. cos( )
  3. tan( )

反三角函数

  1. asin( ) = arcsin
  2. acos( ) = arccos
  3. atan( ) = arctan
  • π
  1. pai = 3.14159265358979323846
  2. 用atan(1)*4来计算,得到值为3.14159265358979311600在第16位出现误差
  3. 用acos(-1)来计算,得到的值与atan(1)*4相同
  • 角度制与弧度制的互相转化

给定角度a,其弧度制为b
b = a * (π / 180)
a = b * (180 / π)

  • 对数

需要引用math头文件

  1. log( ),默认以e为底,即 ln
  2. log10( ),以10为底的对数函数,即 lg

常见的应用

  1. a = 10log10(a)
  2. aa = 10log10(a的a次方) = 10a*log10(a)
  3. an = 10n*log10(a)
  4. log(a)b = log(s)b / log(s)a (括号里的是底数)-------换底公式
  • 菜勒公式
int whatday(int d,int m,int y)//月日年计算星期几
{
   int ans;
   if(m == 1 || m == 2)
   {
       m += 12;
       y--;
   }
   if((y < 1752)||(y == 1752 && m < 9) || (y == 1752 && m == 9 && d < 3))
       ans = (d+2*m+3*(m+1)/5+y+y/4+5)%7;
   else
       ans = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
   return ans;
}
  • 枚举一个序列内所有区间和,每个元素被计算的次数

含有n个元素的序列,枚举所有区间,第i个元素被计算的次数为i*(n-i+1)
如n == 3时
有(1,1) (1,2) (1,3) (2,2) (2,3) (3,3)

  • 异或
  1. a ⊕ a = 0
  2. a ⊕ b = b ⊕ a//交换律
  3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;//结合律
  4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
  5. a ⊕ b ⊕ a = b.
  • Manacher

p[i]表示以i为中心的回文串半径,为1表示只有自己本身
一个字符串中的回文串个数等于p数组从0~len2-1所有值除以二之和

  • TIPS

三个数和为a,其乘积最大值为 a3/27
两个数和为a,其乘积最大值为 a2/4

  • 莫队排序
bool cmp(node a, node b)
{
   return belong[a.l] ^ belong[b.l] ? belong[a.l] < belong[b.l] : belong[a.l] &1 ? a.r < b.r : a.r > b.r;
}
  • 费马二平方定理

费马二平方定理是指除了2这个特殊的素数,所有的素数都可以分两类:被4除余1的素数,如5,13,17,29,37,41;第二类则是被4除余3的素数如3,7,11,19,23,31.第一类素数都能表示为两个整数的平方和,第二类都不能。
5 = 1 * 1 + 2 * 2;
13 = 2 * 2 + 3 * 3;
17 = 1 * 1 + 4 * 4;
29 = 2 * 2 + 5 * 5;
此即费马二平方定理。

  • Dilworth定理

在一个偏序集里面,最少链划分等于最长反链的长度
其对偶定理是:对于一个偏序集,其最少反链划分数等于其最长链的长度。
例如给定一个数组,让你把他划分成多个非递减子序列,其数量等于数组中最长递减子序列的长度

  • 组合数学

在这里插入图片描述
C(n, m) = C(n, n - m)
C(n, m) = C(n - 1, m - 1) + C(n - 1, m)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值