SRM 467
来源:互联网 发布:利达128eii主机编程 编辑:程序博客网 时间:2024/04/28 00:33
这场比赛之悲剧。。跌了15分。。。。。
250分写了半天依旧调不出第二个样例的,结果囧到500题目都没开的。。。。然后就挂0了的。。。。啥也不说了。。今天写了一天的TC了。。今天的这场除了DIV1的1000没写,其他都写了还学了两个好耍的东西。。。。
DIV1
250 暴力+小技巧
题意:一个学生等老师来上课的,但是他不知道老师啥时候会来的,然后他等waiting时间后觉得无聊就会出去转walking时间,回来等待waiting时间后老师没来就会再次出去。老师会在a...b区间时间任意时刻来,是等概率的。但是老师等t时间后,就会不会让你进来了的。让你求你进不去教室的概率是多少。
所有数据的范围都为1....10^9内的数的。
解法:1:可以直接枚举循环的时刻,去求他出去的时刻和老师来的时刻+t的区间的交。然后长度去除以总长度就是概率了的。注意处理边界条件可以只有一个时间点的情况,就不会挂了的。ST挂了很多人的。。。
解法2 :因为那个同学很白,所以行动都是循环的,所以你只需要把老师的来到时间枚举起,然后看i ....i +t 这两个对waiting + walking取模,然后判断是否完全包含在waitng ...waiting + walking区间内就可以了的。注意点:注意边界,因为边界我一直调不过。老师来的区间a...b你从a+1....b去枚举。然后判断的时候,前端点不能重合,后端点可以重和,看下题意理解下就只WHY了。。。。
500 数学
题意:
SuperSum(0 , n) = n, for all positive n.
SuperSum(k , n) = SuperSum(k-1 , 1) + SuperSum(k-1 , 2) + ... + SuperSum(k-1 , n), for all positive k, n
给你K,N让你求supersum(k,n)%p;范围为1.....10^9
解法:1:你可以爆小数据,看出规律很像斜着的杨辉三角形。所以问题转换成为了C(N+K,K+1)的值.但是数据很大不是很好求的。所以要转换思想。先搁在这里,待会说。。。
2:很强大的一个拟合方法,所有的多项式公式都可以如此方法去做,详情请参考:http://222.197.181.37/bbs/read.php?tid=670 这种方法也需要求组合数的。
3:构造矩阵,快速求幂去做,队内一位大牛构造出来的矩阵。k为多少就构造多少阶的下三角全为1的矩阵去求n-1次幂。结果为最后的矩阵的最后一行的加和。至于如何构造,那只能说我们都很笨的想不到如此巧妙的方法了的。。。
如何去求大数的组合数去模一个素数。
首先一个定理就是:如果p为素数,对于任意的整数x , x^p-1=1(mod p )
然后乘法的一遍相乘一遍取模 ( a *b )%mod= (a %mod )* ( b *%mod)%mod;
所以( a/b )%mod = ((a %mod) *(1/b)%mod)%mod;
但是如何去求(1/b)%mod呢?看上面那个定理,左右同除以一个x ----- x^p-2 = 1/x (mod p);
然后就很容易得解了的。快速求幂去求那个x^p-2然后就很容易求解了的。
但是如此方法只能算p为素数的情况下,不是素数的情况下,就没辙了的,需要继续学习的。
学完了会写一篇完整的文章的。。
1000 :依旧不敢开,因为早上一个房间的TARGET 大牛1000都写挂了的,估计我等凡夫俗子是做不出来的。。果断没开。。。
DIV2
250暴力;
就是DIV2 500的简化版,N , K 都是只有14的,所以你直接爆就可以了的,我直接贴了500的代码的。
500 :同DIV250的
哎,看来DIV2的500我还是不是每次都出的,弱的很啊。。。。路漫漫其修远兮。。。。。
1000 bfs暴力。
题意:就是给你n*m的矩阵,$ 代表你自己,#代表墙,.代表空格 F代表火。会每一秒都会想相邻的格子去蔓延,但是穿不透墙,问你最多可以坚持多少秒,如果可以永远坚持,就返回-1
解法:很暴力,跑2遍的BFS就可以了的。对于每一个F 去BFS他到每一个可以到达的格子的时间。这样处理完了就可以得到每个格子被火烧可以最早时间是多少。
然后就很简单了,直接BFS你可以坚持的不是就可以了的。格子是有墙不能去,有火到的时间比你的时间小的不能到达。然后BFS就可以了的
注意点:第二遍BFS不需要记录格子是否访问过,只需要有个DP数组记录下到达当前格子最久的持续时间,出队列了的就直接复制-1就可以了的。
然后如何处理返回-1情况,只要你求的的步数大于n*m就可以了的,因为最左上角的格子要蔓延到最右下角的格子的最长时间。
这场TC做的确是很囧,需要多加练习啊。。。。太弱了的。。。。。
- SRM 467
- srm
- topcode srm SRM 557
- [Topcoder SRM 467]均匀字符串Next…
- SRM 443
- SRM 442
- SRM 439
- SRM 438
- SRM 444
- SRM 434
- SRM 445
- SRM 426
- SRM 456
- SRM 466
- SRM 465
- SRM 466
- SRM 469
- SRM 470
- 私有IP地址范围
- 无论做什么,快乐用心的去做好,要潇洒!
- VirtualBox Guest Additions导致Linux不能正常启动
- 今天刚开通,大家来看看呀
- TCP的服务流程
- SRM 467
- struts2中文乱码解决方法
- SRM 465(DIV1 DIV2)
- UDP协议和TCP协议的区别
- SRM 466
- 四月十六日
- linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用
- struts2 中获取参数
- 编号(长度)为状态的动态规划(LCS,LIS等)