FOJ月赛-2008年12月 题解

来源:互联网 发布:推广账户优化思路 编辑:程序博客网 时间:2024/05/01 23:02

Addr:
http://acm.fzu.edu.cn/list.php?volume=7
1672~1679
A

Minimum Adjacent Value

题目的意思很简单,就是给一群数,叫你求出其

中不同的2个数的差的绝对值的最小值.

不过由于一开始题目的描述出了点问题,sample

出现了很可怕的错误,所以一开始AC率非常低,

改完题目以后被无数人秒掉了

这题的考点是排序.

级别:水题

B

typedef long long LL

比赛开始5分钟内就有人AC了,由于受第一题的影

响导致偶以为题目有问题,后来看了下秒掉了.

意思很简单就是把long long ->LL然后从头开始

判断

字符处理的题,可以说是一道C语言练习题。

级别:水题

C

Pop Kart

题目给的背景比较囧,关键是知道减少最好rank

和减少最差rank的条件,稍微思考就可以找到一个

o(n^2)的算法,秒之

级别:水题

D

比赛的时候没怎么看,今天看了下,其实就是一

数论水题,作为扩展可以解得随机挖去m个数字以后的

对W取mod=0的解。求mod的时候使用a^b

mod c,注意用o(logn)的...

当然也可以根据规律.不过如果是随便挖数字那么观察规律是无论如何也做不出来的。

级别:水题

E


Christmas Trees

题目的意思很简单,一开始以为是LIS写错了,原

来是要DP。。。

级别:??

F

Place Ball

WZC神牛出的BT题,其实就是分析复杂点.MS比赛

的时候没人过...Orz WZC大牛

级别:??
G

Simple Permutation


C语言练习题,不会做被鄙视了 ;(

级别:水题

H

String Operation

比赛只有一个队伍过了,据说是DP+hash,不会DP

的人飘过

级别:Orz

总的来说比较水,就是偶太弱小了,虽然没完整

做下来,不过到比赛一半的时候我才过1题。。。

都有点想放弃了,谢谢vge大牛的鼓舞,秒了2题

以后就去复习了

bless me ~~万恶的考试~

顺便膜拜yayamao和wzc这2位神牛。。

Orz...   

顺便贴下某人的解题报告:

FOJ月赛-2008年12月 解题报告
A,nlog(N)排序后求相邻两个元素的绝对值,注意两个数的差的绝对值可能超过INT,要用long long保存结果,第二题题目给了提示
B,简单的模拟题
C,贪心题,很容易找到O(N^2)的方法
D,暴力枚举那四位数,怎么做都可以过,稍微减枝
E,两次nlog(N)求LIS,然后O(N)DP
F,组合数学

这题目的意思就是
有N个箱子,标记为1。。N,有M种小球,每种无限个.
问:往n个箱子恰好放K种小球的放法有多少种.并方案数对MOD=1234567891取模.

思路:
首先对于N个箱子,不超过K种小球的放法,记为P_A(A,K),
P_A(N,K)是很好求的,就是P_A(N,K)=K^N.
而对于N个箱子,恰好放K个小球的放法,记为P_E(A,K).
一种P_E(N,K)的求法是
P_E(N,K)=P_A(N,K)-sigma( P_E(N,J)*C(K,J) ),1<=J<K
就是设初始值为K^N,即不超过K种小球的放法,然后再减去N个箱子中
恰好放J(J<K)种小球的放法乘上从K种小球中取出J种小球的组合数.
算出P_E(N,K)后,答案就很明显了,就是 (P_E(N,K)*C(M,K))%MOD.
上面的处理都要对1234567891取模.这里算C(M,K)可以直接算
C(M,K)%MOD=((M-K+1)*...M)/(1*2*..K))%MOD.
这里由于MOD为素数,且1..k都小于MOD,可以求出1..K关于MOD的逆,
这样就可以变除法为乘法了.即
C(M,K)%MOD=((M-K+1)*..M*invert(1)*...invert(K))%MOD;


G,DFS搜索,基础题
H,很容易得到DP公式,因为字典很大,可以用trie树来存储,或者hash.