首页 > 代码库 > 写给自己的考试总结 9.10

写给自己的考试总结 9.10

9月十号

T1 我觉得这个题主要是考虑到时间复杂度的,70分的话总觉得随便搞就过了。看题解,要得满分的话,需要搞莫队算法,把时间复杂度优化到O(nlogn),总之还没学这个,但和我一届的人有人AC。

T2 40分很好拿,应该是贪心法则,一个很简单的背包问题。100的话,题解奉上,希望以后自己学过这个以后可以看懂QAQ。:“100分的话需要用并查集维护装备间的关系,把不能放在一起的装备放在一个集合中,这样就转化为了集合背包问题。”

T3 学长说三十分随便搞,然而我就搞了十五。满分算法是需要搞平衡树的,表示不会。

1.勇士闯塔

  (tower.pas/c/cpp)

【问题描述】

在遥远的东方,有一座膜塔,膜王抓走了公主,并将其囚禁在膜塔的21层,勇士需要闯塔,解救公主。

现在勇士的前方有n个膜怪,每一个膜怪有一个属性值ai,属性值不同的膜怪视为不同种类的膜怪,现在勇士想知道在第qi~qj个膜怪中有多少种不同的膜怪,请你帮忙解决。

【输入格式】

第1行:2个整数n,q,分别表示膜怪数量以及询问数。

第2行:n个整数,表示每个膜怪的属性值。

第3~q+2行:每行2个整数qi,qj.

【输出格式】

共q行,每行一个整数,表示答案。

【数据范围】

对于70%的数据,n ≤ 100,q ≤ 1000;

对于100%的数据,n ≤ 3000,q ≤ 200000,1 ≤ a[i] ≤1000;

数据保证qi ≤ qj。

2.勇士的背包

  (bag.pas/c/cpp)

【问题描述】

经过千辛万苦,勇士终于来到了第15层,这是一个特殊的地方——装备库。

这里一共有N件装备,每一个装备有一个价值Pi和重量Wi,当时由于这些装备没有被长者开光,有些装备不能放在一起,否则会引起共鸣,释放洪荒之力,世界毁灭。并且这种共鸣具有专递性,例如,A不能和B放在一起,B不能和C放在一起,则A也不能和C放在一起。

勇士想知道在他的能力范围内,最多能获得多少价值的装备。

【输入格式】

第1行:3个整数N、M、K,N表示装备件数,M表示勇者的最大负重,K表示有K个(断句)装备不能放在一起的关系。

接下来N行:每行2个整数,Pi、Wi,分别表示每件装备的价值和重量。

接下来K行:每行2个整数A、B,表示第A件装备不能和第B件装备放在一起。

【输出格式】

一个整数,表示所能获得的最大价值。

【数据范围】

对于40%的数据,K=0

对于100%的数据,0≤N,M,K≤1000,0≤Pi≤10000,1 ≤Wi≤ 10,均为整数,A、B不相等

3.勇士斗膜王

  (moking.pas/c/cpp)

 

【问题描述】

“你还是来了!”

“是的,我来了!”

“膜膜膜……”

“不愧是膜王……”

在膜塔的巅峰——21层上,一场惊世对决开始了。

勇士亮出了他的N件法宝,要启动全部的法宝才能击败膜王,但是,启动第i件法宝需要消耗一个法力值不低于Ai且美观程度不低于Bi的魔石,现在勇士有M块魔石,第i块魔石的法力值为Ci,美观程度为Di,勇士想知道为了打败膜王,需要消耗的魔石的法力值的总和最小为多少。

【输入格式】

第1行:2个整数N、M。

接下来N行:每行2个整数Ai,Bi。

接下来M行:每行2个整数Ci,Di。

【输出格式】

一个整数,表示需要消耗的魔石的法力值的总和的最小值。

若无法打败膜王,输出“Failed”。

【数据范围】

对于30%的数据,1≤N≤5000,1≤M≤5000

对于100%的数据,1≤N≤100000,0≤M≤100000

写给自己的考试总结 9.10