zoukankan      html  css  js  c++  java
  • 一些应该记住的东西(持续更新?再也不会更新了)

    没什么用的目录

    1.积性函数与杜教筛

    2.搜索的几种优化与考试期望得分

    3.乱讲

    4.模拟退火系列

    5.生成函数系列

    2018.1.18

    首先写写数学方面的吧(因为现在在学)……毕竟这里面的公式浩如烟海……

    对着表推了十分钟愣是没发现……明明上午还证明过……

    还有就是通过算贡献化简一些东西:

    可以通过换元成d的倍数来证。

    以及上面那对的第一个式子可以变换成

    有了这个就好杜教筛了对吧……

    第二个有时也可以构造成杜教筛……

    2018.1.19

    杜教筛的套路:求g(i)的前缀和G(i),可以构造

    其中f(i)和h(i)都是比较好求前缀和的函数,比如id(i)=i,id2(i)=i2,或者别的

    然后求f(i)的前缀和:

    于是就有

    把右边的h(1)·G(n)提出来,就变成了:

    因为之前说过f和h应该都是很好算前缀和的函数,比如i^2,比如[i==1]等。

    预处理出G的前n2/3项,然后哈希+记忆化搜索爆算即可。

     2018.1.26

    说起来最近考的几场试里面有几题的暴力得分是这样的:

    如果你写一个裸的搜索,你将获得10分。

    如果你加上最优性剪枝、估价函数等一系列手段,你将获得20分??

    如果你再加上卡时这个东西,你将获得30分???

    这都是些什么玩意儿……

    话说回来,我在联赛之前看见过这么一套理论并且好像还是对的:

    在有最优性剪枝的搜索(找最小值)中,应该把大的先拿去搜索,因为这样更快剪枝。

    这又是个什么玩意儿……

    反正考场上看见搜索题,要顺着下面的思路想:

    优秀的估价函数>不优秀的估价函数>可行性剪枝>最优性剪枝>搜索顺序剪枝。

    没错估价函数就是这么神奇……

    2018.2.2

    [OI无关][pkuwc血的教训]

    网站上在动的时间并不一定是准的……隔一会刷新一次你会发现你的几分钟没了(-1s)

    特别是某ku的百练,可以1个小时差4分钟……

    下考我一脸懵逼看着旁边小哥,旁边的小哥:“确实已经6点半了呀”也是一脸懵逼看着我。

    这都是些什么东西吧……

    2018.2.9

    模拟退火系列

    精髓思想:温度越高,越不稳定,越容易发生跃动。

    写一个接受函数判断,p=nowans-lastans:

    inline bool Access(double p,double temp){
      if(p<=0)return true;
      return rand()<exp(-p/temp)*RAND_MAX;
    }
    接受函数

    具体而言,如果p<0,即当前答案比之前答案小,肯定接受。

    如果p>0,exp(x)计算的是e的x次方,图像是这样的:

    在x<0时返回一个(0,1)的实数。

    p>0,当p越大,此时跃动越亏,(-p/temp)越小,exp越小。

    当temp越小,(-p/temp)越小,exp越小。

    是一种很合理的接受判断。

    网上还有什么rand()%初始温度<当前温度就跃动之类的

    都没有很好地利用p和temp两个量。

    本来式子是这样的,两边都是0~1的实数:

    因为除法常数太大,RAND_MAX移到右边去就可以了。

    算法显然是非完美的,于是下面这一句话就很重要了:

    模拟退火初温可以低,但一定要多烧。

    实例:烧1000次,每次退10000下 = WA,烧10000次,每次退1000下=AC

    也许烧出来的东西还是和初始状态关系很大吧……

    然后就是退火时的判断。

    因为温度很高时很不稳定,这个时候各种乱搞反而不容易进入正解。

    于是可以掺一点贪心的东西进去,让p尽量<=0。

    温度低了,稍微稳定了,这个时候常规退火效果可能更好。

    比如说 BZOJ2428 均分数据 第一眼没人想的到退火

    反倒很容易想到扔进和最小的组的贪心策略。

    在温度大的时候用这个贪心可以提高正确率。

    (事实上只要烧得够多(10086次选手)不用也能过)

    2018.2.10再开一坑

    生成函数/母函数系列

    先引着几个东西:

    (1):广义组合数

    一般组合数都是C(n,m)=n!/m!/(n-m)!,其中n,m均为非负整数且n>=m。

    广义组合数也差不多,n可以是任意实数。

    比如说C(-1.4,2)=(-1.4)*(-2.4)/2!=1.68。

    于是引申开来这样的式子:

     

    由此我们可以得出一个重要规律:

    1/(1-x)k (即(1-x)-k)在xn项的系数为C(n+k-1,n)。

    稍作推广可得:

    也可以写成

    组合数上面的那个东西就不变了。

    很多生成函数都会化到这种形式。

     

    (2):指数型母函数的两个重要等式

              

    所以有这么个东西(要背的好多啊)

    序列<1,1,1,1,1...>的指数型母函数是ex

    序列<1,-1,1,-1,1...>的指数型母函数是e-x

    然后再附赠两个:

    序列<0,1,0,1,0...>的指数型母函数是(ex-e-x)/2

    序列<1,0,1,0,1...>的指数型母函数是(ex+e-x)/2

    好难记啊

    放缩求导什么的……考场自己推吧……

     

    2018年03月17日

    感觉好久没碰博客园这个东西了……

    看见网格图网络流想到黑白染色难道不是公理么?我这个××,×,×××。

     

    好吧正事。 

    (x,y)每次可以上下左右走的题目,可以转化为(x+y,x-y)。

    这样,不管怎么走,横纵坐标都会改变,而且两维互不影响,就可以分开考虑了。

    方案数也可以直接相乘什么的。

    相当于坐标系旋转45°。

     

    题面看见排列应该怎么想:

    1.二分图,二分图上的连通块。

    2.不用考虑重复元素的情况。

    3.位置和值一一对应,从位置的改变映射到值的改变。

    4.从小往大插入。

    ……

     

    2018年04月07日之后

    二阶差分(加一个等差)是可以只开一个数组的......

    高斯消元……要判0……有些是自由元……(特别是异或消元!)

     

     

    跟什么人说什么话,有些人的有些话不要听,有些话不要信,世界并非你心中一样真诚。

  • 相关阅读:
    iOS Xcode8的适配
    iOS从生成证书到打包上架-02(详细2016-10最新)
    iOS从生成证书到打包上架-01(详细2016-10最新)
    PHP读取CSV文件
    magento批量导入评论加星
    magento调用static block
    Magento Block的几种调用方式
    JFinal项目中获取根目录
    清除UTF-8编码文件前端的DOM
    PhpStorm注册码(2,3,4,5)通用
  • 原文地址:https://www.cnblogs.com/fenghaoran/p/remember.html
Copyright © 2011-2022 走看看