论考试的题目应该是多少年前的原题-解题报告

原创 2017年05月31日 22:14:16

为什么所有的考试题永远只能在远古洪荒时期的OJ和比赛中才能找到。

当时觉得好难好难的题现在已经成了“入门”

T1

用n个不同的数组成一个长p的序列,要求任意两个相同的数之间至少要有m个数。求排列方案数。

我也没有找到哪里的题。
一点点组合数学技巧,只需要求它们的组合方式而无需关心顺序(TJ上表示“因为每个数字都会出现”(死在了这里)),最后乘以一个n!。
然后就是DP,对于dp[i][j](表示前i个序列用j种数):

放一个未出现的数字:dp[i][j]=dp[i-1][j-1];
放一个出现过的数字:dp[i][j]=dp[i][j]+dp[i-1][j]*(j-m);

原因不解释。
(大佬们都是用数论做的啊?其实一开始也是想的数论不过后来到了去重的时候就疯掉了……)

T2

打开了黑魔法师calashock的大门,队员们在迷宫般的路上漫无目的地搜寻着关押demo的监狱的所在地。突然,眼前一道亮光闪过。“我,nandemo,是黑魔法圣殿的守卫者。如果你能通过我的挑战,那么你可以带走黑魔法圣殿的地图……”瞬间,队员们被传送到了一个擂台上,最初身边有一个容量为k的包包。
擂台赛一共有m项挑战,各项挑战依次进行。第i项挑战有一个属性ai,如果,表示这次挑战成功后可以再获得一个容量为ai的包包;如果ai=-1,则表示这次挑战成功后可以得到一个大小为1 的地图残片。地图残片必须装在包包里才能带出擂台,包包没有必要全部装满,但是队员们必须把获得的所有的地图残片都带走(没有得到的不用考虑,只需要完成所有n项挑战后背包容量足够容纳地图残片即可),才能拼出完整的地图。并且他们至少要挑战成功次l才能离开擂台。
队员们一筹莫展之时,善良的守卫者nandemo帮忙预估出了每项挑战成功的概率,其中第项挑战成功的概率为pi/100。现在,请你帮忙预测一下,队员们能够带上他们获得的地图残片离开擂台的概率。

年代久远的CodeForces的题。
数据大统计。
不要以为求概率就是概率DP。
(话说这道题我见过的啊然而并没有什么鬼用实在是很简单?
由于一共只有200张地图,所以凡大于200的直接压成200,其它的不要了。(死在了这里)
然后状态转移方程就很好写了。
f[i][j][k]表示前i项挑战赢j场,背包容量为k,则:

f[i][j][v]+=f[i-1][j][v]*(1-w[i].p);//放弃一场
if(v>=w[i].a) f[i][j][v]+=f[i-1][j-1][v-w[i].a]*w[i].p;//赢这一场

啊如此简单的题我居然没有做出来……

T3

求哈密顿回路数量。

年代久远的CodeForces的题。
状压DP,dp[st][i]表示以i为结束点(强制i为最小结点)、st为点集的哈密顿回路数量。
那么:枚举dp[st][x],对于从x可以到达的j:
jst,则:状态跳转至cnt(总数),如果j是终点,dp[st][j]就可以算入cnt中;
否则,状态跳转至dp[st+(2j)][j],此时dp[st][x]可以算入其中。
翻译成代码:

if((st&(-st))>(1<<j)) continue;
     if((st&(1<<j))) {
        if((st&(-st))==(1<<j)) cnt+=dp[st][x];
    } else dp[st|(1<<j)][j]+=dp[st][x];

由于只有两个点的回路会算,并且其它回路都算了两次,所以最终答案为(cnt-m)>>1。

T4

给定非负序列,选取一些元素使没有任意k个元素相连,使元素和最大

USACO的题(yali老师教育:USACO是你应该爆掉的第一个OJ)
真的是很简单很简单的一道题啊只是维护得比较麻烦,带了笔和草稿纸的孩子们瞬间就可以写出来状态转移方程:
f[i]=f[j1]+sum[i]sum[j] (j[ik1,i])
然后呢,sum[i]恒定,只需维护maxf[j1]sum[j]
一开始还看错了数据范围,以为是1e6,线段树妥妥的超时,我又用不熟单调队列,就并没有打……(眼瞎得治)
这玩意儿我从线段树调到单调队列,错得一模一样,然后发现原来是初始化的锅……
但是单调队列比线段树什么的好打多了吖?

q[0]=-1,q[1]=0;//死在了这里......
for(i=1;i<=n;i++) {  
        for(;h<=t&&q[h]<i-k-1;) h++;
        f[i]=f[q[h]==-1?0:q[h]]+e[i]-e[q[h]+1];
        for(;h<=t&&f[q[t]==-1?0:q[t]]-e[q[t]+1]<=f[i]-e[i+1];) t--;
        q[++t]=i;  
 }

是时候好好学学单调队列了啊
都不是很会这个欸?光颓树去了

最后的总结

蠢死啦蠢死啦明明有200分是送的50分是可以骗的T1认真想想还是可以做的啊T3也只是因为不熟状压DP现在发现状压DP求哈密顿回路原来是个经典的问题啊TSP什么的是入门级别啊……
T1的话……大概是对数论有阴影了吧…….
看到数论就有点虚啊……

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

pku题目解题报告(100多题)

  • 2008年12月20日 23:18
  • 5.57MB
  • 下载

16计科程设考试压轴题 解题报告

【题目大意】有5个人,每人有10个粉丝,现在要从中选出K个人,记这K人拥有的粉丝数为N,求出一种选法使得(N-7*K)最大。...

POJ 225道题目解题报告

  • 2013年02月06日 11:53
  • 196KB
  • 下载

2016 CCF-CSP 计算机职业资格认证考试 解题报告

嘛,参加这次考试属于一连串比较机缘巧合的事情—— 首先是当上了2016年度CCF优秀大学生的荣誉,这个奖颁发的同时也赠予了为期一年的CCF会员资格 而会员……是具有一次免费参加CCF计算机职业资格认证...
  • okcd00
  • okcd00
  • 2017年01月03日 19:38
  • 3992

poj经典动态规划题目解题报告

  • 2008年03月23日 19:09
  • 539KB
  • 下载

10.25.2017 考试总结与解题报告

总结

pku经典题目解题报告

  • 2009年07月20日 18:30
  • 6.45MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:论考试的题目应该是多少年前的原题-解题报告
举报原因:
原因补充:

(最多只允许输入30个字)