JLOI2015试题大意及部分题解

原创 2015年04月20日 11:55:42

================Day1===============

T1:求(b+d2)n的整数部分对p取模后的值
其中bmod2=1,dmod4=1,b2d<(b+1)2,n1018

思路:
构造数列an=ban1+db24an2
其中a0=2,a1=b
然后我们求出这个数列的通项公式,得到an=(b+d2)n+(bd2)n
因此得到(b+d2)n=an(bd2)n
由于bmod2=1,dmod4=1,因此db24一定是个正整数,故我们可以利用矩阵乘法来求出这个数列的第n
然后对于80%的数据b2d<(b+1)2,对于20%的数据b=1,d=5,因此bd2(1,0]
故后面那一项对答案有贡献当且仅当db2n为偶数
时间复杂度O(log2n)

TMD我居然看错题了= = 我居然没有看到【整数部分】这四个字= =
当我反应过来这道题的意思时只剩20min了。。。20min。。。
我只能把b100,n5的40分交上去了QwQ
跪95pts的KuribohG……

T2:给定一棵树,每个节点是一座城池,有一个坚固程度hi,和两个参数aivi,其中ai{0,1}
m个骑士,每个骑士有一个初始攻击力xi,从某个节点出发,沿该节点向父亲节点一路攻克
当骑士到达某个节点时,若骑士的攻击力小于城池的坚固程度,骑士将会牺牲在这个城池,否则骑士的攻击力将会发生一个变化并继续攻略这个节点的父亲节点。攻击力变化如下:
若该节点的ai=0,那么骑士的攻击力将会增加vi
若该节点的ai=1,那么骑士的攻击力将会乘上vi
数据保证当ai=1vi>0
注意不同骑士的攻击是相互独立的,你可以认为这m个骑士存在于m条不同的世界线中。
最后输出每个骑士牺牲在了哪座城池(未牺牲输出0),以及每座城池中牺牲了多少骑士

思路:由于攻克一个城池之后骑士之间的攻击力大小关系不变,因此我们可以维护一个可并堆来维护每个城池中的骑士
对于每个节点,首先将所有儿子节点上的可并堆合并过来,然后将<hi的堆顶弹掉,然后搞一搞标记就好了

这题不难啊= = 似乎只有我一个AC的= =?(不知道聂恺辰Rejudge之后的细分= =
18357写了个Splay启发式合并调了3h然后爆零。。。
wyfcyx写了倍增不知道为什么也爆零了。。。
【wyfcyx:等代码发下来之后你们看看我代码就知道怎么回事了】
= =

T3:给定n个武器,每个武器有m个属性和一个价格,如果一个武器的属性可以被其它几个武器线性表示,那么B君就不会购买这个武器,求最多买多少武器以及买最多武器的前提下最少花多少钱
n,m500

思路:
裸拟阵……
维护线性基,将武器按价格排序,从小到大塞进去,如果能塞进去就买,塞不进去就不买

精度问题?卡了10pts
其他人最高30分……
这是裸题啊……

于是230分拿到Rank1= = 第二150。。。

================Day2===============
T1:求有多少个nm列的矩阵满足每个数都在[0,m]之间且ai,j<ai,j+1,ai,j<ai1,j+1

思路:
把互相有大小关系的点对连上一条有向 容易发现任意一条边都在至少一条长度为m的链上 而取值最多有m+1个,因此任意一条链上最多有一条边两端的点相差2
然后转化一下就变成了这样一坨东西:
我不是图片描述
如图,只能向右和向上走,求从左下角走到右上角不跨越两条对角线的方案数

……很不幸我只会处理nm的情况= = n>m的情况貌似很复杂?
反正搞到了50分= = 暴力60= =

UPD:扒了一下午毕姥爷的标程之后终于看懂怎么做了QAQ
首先我们考虑用方案的全集减掉跨越了的方案
如果用全集-跨越第一条的方案-跨越第二条的方案+两条都跨越的方案
第四种情况将会十分难以计算
(官方题解中写的Cn2n+m是不对的!~)

我们画两条辅助线 分别是直线y=x+1和直线y=x(m+2)
为了方便我们称这两条直线为A和B
那么容易发现如果一种方案不合法 那么路线一定触碰了直线A或直线B
但是触碰的情况可能非常复杂 比如ABABBABBBAA啥的= =
为了避免重复计数我们把相同的都缩掉 变成ABABABA这样的串
然后怎么搞呢?
我们令初始点为(n+m+1,n),然后我们做这样的操作:
将当前点沿直线A翻转,然后把原点到当前点的方案数从答案中扣除;
将当前点(注意此时已经翻转过了)沿直线B翻转,然后把原点到当前点的方案数从答案中加回来;
反复如此直到某一坐标<0 此时无论如何进行下去方案数都是0了
这样做相当于把以A和AB为后缀的方案删除,然后把以BA和BAB为后缀的方案加回去,然后把以ABA和ABAB为后缀的方案删除……
最后我删除了什么?没错,以A为前缀的所有方案!
然后我们先沿B翻转再做一次,就删掉了以B为前缀的所有方案
这样这题就在O(n)的时间搞出来了……
不得不说毕姥爷太神了QwQ

T2:给定一张n1000,m3000的图,每条边有边权,有p10个关键点,每个关键点有一个颜色,现在要求一个边权和最小的生成子图,使同种颜色的关键点互相连通

思路:
fS表示颜色S的所有点构成的最小斯坦纳生成森林(其中S是颜色的集合)
那么我们首先我们先求出每个状态的所有点构成的最小斯坦纳生成树
然后跑DP
fS=max{fS,fT+fST|TS}
复杂度上界似乎是(3pn+2pSPFA(n,m))2p2+3p2?
不过分析一下可以得到更好的上界
如果一种颜色只有一个点 那么这种颜色显然对答案没有贡献
因此极限情况应该是p2种颜色 每种颜色有两个点
那么我们做斯坦纳树的时候 其实复杂度应该是这样的(下面以3p项为例)
3p+C(p2,p21)3p2+C(p2,p22)3p4+...+C(p2,0)30
=10p2
因此最终的复杂度是10p2n+5p2SPFA(n,m)+3p2
大概1E的复杂度……尊口怕呀尊口怕

UPD:我傻逼吧一遍斯坦纳树就能搞出所有颜色集合的最小斯坦纳树了为何要做2p2遍= =
复杂度O(3pn+2pSPFA(n,m))

考场上判掉每种颜色都只有一个点的情况,然后无视颜色,斯坦纳树裸跑可以拿到90分
(我写的不好只拿到80分

T3:给定一棵满二叉树,每个点有AB两种状态,你可以任意指定,若某个节点和子树中的某个叶节点同时选择A状态会产生一个贡献,若同时选择B状态会产生另一个贡献,要求选择A状态的人不超过m个,求贡献总和最大
二叉树深度10

题解戳这里
AC爷就是屌

我没写这题= = 没时间了

Day2就这样130滚粗了= = 然后我居然Rank2(3)?
18357凭借第三题的Accepted怒拿Rank1 跪跪跪跪跪

代码戳这里

【脑洞大开】一种神奇的[网络流?]——PoPoQQQ流

来源: PoPoQQQ大爷脑洞一开,就想出一种流进来是a,流出去是ak的边,他称之为“带变压器的边”,然后我们称之为PoPoQQQ流。 来一个应用模型(鬼畜题)(鬼畜题) 题目: 题目...
  • Vmurder
  • Vmurder
  • 2015年03月05日 14:01
  • 3260

BZOJ 3930 CQOI2015 选数 莫比乌斯反演

题目见 http://pan.baidu.com/s/1o6zajc2 此外不知道H-L #include #include #include #include #includ...
  • PoPoQQQ
  • PoPoQQQ
  • 2015年04月07日 11:16
  • 18382

BZOJ 3884 上帝与集合的正确用法 欧拉定理

题目大意:求2^(2^(2^(2^(2^...)))) mod p的值 SB出题人被各种乱艹系列…… 其实是某天脑洞比较大突然想算算这东西= = 然后就发现了这个好玩的性质= = 其实+∞个2看...
  • PoPoQQQ
  • PoPoQQQ
  • 2015年02月26日 11:20
  • 6428

排序算法之三路划分的快速排序

当待排序元素序列中有大量的重复排序码时,简单的快速排序算法的效率将会降到非常之低。一种直接的想法就是将待排序列分成三个子序列:一部分是排序码比基准元素排序码小的;一部分是与基准元素排序码等值的;一部分...

洛谷1725 琪露诺(单调队列)

洛谷1725 琪露诺 本题地址: http://www.luogu.org/problem/show?pid=1725 题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻...

[题解]bzoj4002(JLOI2015)有意义的字符串

DescriptionB 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input一行三个整数 b;d;nOutput一行一个数表示模 75284434...

2015ACM/ICPC亚洲区长春站部分题解

所有题目链接:http://acm.hdu.edu.cn/search.php?field=problem&key=2015ACM%2FICPC%D1%C7%D6%DE%C7%F8%B3%A4%B4%...

2015ACM浙江省省赛部分题解

The 12th Zhejiang Provincial Collegiate Programming Contest总体感觉题目有大概7道不涉及算法的题目。听群里讨论,现场赛有队伍一小时ac了7道题...

CCPC 2015 部分题解

【A Secrete Master Plan】http://acm.uestc.edu.cn/#/problem/show/1215 【题意】水题,题意就是给了两个2*2的矩形,判断通过旋转是否这两...

cug2015ACM集训数学进阶部分题解

  • 2015年07月17日 17:26
  • 64KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JLOI2015试题大意及部分题解
举报原因:
原因补充:

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