纪中集训d2 提高A组模拟

来源:互联网 发布:淘宝托管公司被骗18万 编辑:程序博客网 时间:2024/05/17 07:57

这次情况稍微好了点,但是还是各种写跪23333……不得不说,纪中的OIer数学推演能力好像都太好了点,就是讲的课很容易让人听不懂……
【T1】【JZOJ 3777】
这道题目是一类特殊图的最短路,这种题目一般是打表+找规律+证明(一般不会去想?)……讲的是对于一个格点图,对于点(i,j)定义权值为F(i,j)=F(i1,j)+F(i,j1),边界i=0j=0F(i,j)=1,同时在(i,j)(i,j1)(i1,j)间相应分别连两条零权值边,问(0,0)(n,m)的最短路。
容易发现最短路就是沿着边走,不妨设n<m,那么最短路就是(0,0)(0,m)(n,m),因为从另一个方向的折线显然比它长。那么问题就变成了求m+i=1nF(i,m)。由于我们马上可以发现F(i,j)其实对应杨辉三角,进而对应组合数,所以上面那个式子=m+i=1nC(i+m1,i
怎样快速求呢?这里有两个思路:
思路一,注意到

C(i,j)=j!i!(ji)!
C(i+1,j+1)=(j+1)!(i+1)!(ji)!

那么我们得到
C(i+1,j+1)=j+1i+1C(i,j)=(j+1)(i+1)1C(i,j)

就可以很方便地用逆元直接推啦~
直接搞是O(nlgn),如果用线性推逆元(推到nm)就可以直接做到O(n),但是比较麻烦。
思路二,考虑到
C(i,j)=C(i1,j)+C(i1,j1)
我们再次注意到那个式子里面我们如果把C(m,0)给补上去,然后由上面那条式子,可以得到
C(m,0)+C(m,1)+C(m+1,2)+

=C(m+1,1)+C(m+1,2)+C(m+2,3)+

==C(m+n1,n)

这个可以直接算若干阶乘,然后全部阶乘完再做逆元,这样似乎比较快?而且还挺好写的,时间复杂度O(n+lgn)
【T2】【JZOJ 3769】
题意是考虑一种特殊的斐波那契进制来表示数,即把数表示成每位权值分别为1,2,3,5,8...Fib(i)的向量a,使得这个a最大,也就是|a|最大且对于任意一个表示同样数且长度一样的的向量a,设从高位到低位第一个不同的是aiai,那么都要满足ai>ai。这里给出两个这样的向量,求把这两个向量对应加起来之后的最大向量。
我们发现,满足最大的向量一定没有相邻的两个一,而且也不可能有大于一的数,前一个可以合并两个一,后一个可以分拆,比如2xi=xi2+xi+1,这样向量都会更大。于是我们先定义一次迭代操作就是先把所有的大于一的数分拆,然后再统一合并相邻的非零数,接着听说跑个玄学次就能过了,我也不会证……不过还是有可能构造出数据的。隔壁zmz dalao认为跑lgn次就可以了,但是我也还是证不了,根据数据只用10+次。

【T3】【JZOJ3771】
对于这道题目,我们直接来讨论下满分算法。考虑到如果不算所有乘上了2i的数,那么第一个盒子里的数都是奇数。那么我们容易发现,第一个盒子里面的所有数实际上就是所有形式为a2mi的数,其中a都是奇数,结合标号条件,我们还需要a2mi+m+1n。这时我们考虑枚举下i,就可以求出对应的a的范围,然后全部加一块就行了。我们发现,实际上我们给[n2](这里[x]表示下取整)每次除多2m就行了……反正高精度里面压压位,然后直接用位运算加速就好了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 凉鞋买大了一码怎么办 皮鞋小了一码怎么办妙招 图书馆借的书本损坏了怎么办 把人打伤没钱赔怎么办 小孩不小心打伤了老师怎么办 高考进了三段怎么办 工作中和领导产生冲突怎么办 酒店不给员工发工资怎么办 裙子没有解开超市的锁怎么办 接待老外听不懂他说的怎么办 脚脱皮又痒又臭怎么办 成都应聘平面模特被骗了怎么办 文明6开场一堆蛮族怎么办 幼儿园里出了水痘怎么办 穿高跟鞋脚容易出汗怎么办 粗跟鞋走路太响怎么办 粗跟鞋鞋跟很响怎么办 皮鞋跟走路太响怎么办 穿高跟鞋脚崴了怎么办 高跟鞋小了一码怎么办 高跟皮鞋磨脚怎么办 大同同煤集团三供一业人员怎么办 小孩被猫咪抓了怎么办 长得特别丑的人怎么办 锅巴放的不脆了怎么办 淘宝买到假货了怎么办 单位不给解约函怎么办 安卓个人热点打不开怎么办 密码忘记无法进入主机怎么办 流放之路w10闪退怎么办 电脑网站被劫持了怎么办 苹果手机浏览器被劫持怎么办 苹果手机网站被劫持怎么办 a37手机网站被劫持怎么办 耳朵被震的耳鸣怎么办 液晶电视怎么办断屏坏还是逻辑板 门保险拧坏了怎么办 锁的保险坏了怎么办 鞋子里面长霉了怎么办 塑料瓶盖滑丝了怎么办? 塑料杯盖滑丝了怎么办