TKK-ICPC Round#8 题解

竞赛链接:http://xujcoj.org/Home/Contest/cs/cid/696/ctype/1 1、形单影只   位运算题目,由于每次操作只能在原来数字的基础上加 2,所以在不考虑这个数字二进制最低位的情况下,每次把 n 加上 lowbit(n),直到 count_one(n) = 1 或 n = 0,前 […]

XUJCOJ 1348 题解

题目简述:勇者的初始攻击力为 a,每次增长的攻击力为 b,恶龙的血量为 c,问勇者杀死恶龙至少需要多少个回合。 首先我们明确,勇者最优的打法一定是先增加攻击力(可能是零次),再打龙,也就是说,勇者的操作序列一定是若干次加攻 + 若干次攻击。 暴力思路:从零开始枚举加攻次数,直到攻击力大于等于恶龙血量时退出,期间维护最小 […]

XUJCOJ分数制比赛规则

一、计分规则 1、每道题的分值是100分。 2、每道题由若干组数据构成。 3、每通过一组数据就会获得 (1 / 数据总数 * 100) 的分数。 4、通过所有数据会获得25%的额外分数,即125分。 5、首次提交并通过所有数据还会获得25%的额外分数,即150分。 6、每道题的得分为:选手对该题所有提交中得分的最大值。 […]

取消ThinkPHP内置日志记录

今天打开宝塔面板,发现我校OJ内存再次岌岌可危。 按照学长指示,在命令行敲完 du * -B MB | sort -nr | head 后发现如下情况。 Runtime目录下的Logs文件夹占用了17G,百度以后才知道,这是TP内置日志记录,那如何关掉它呢? 找到 ThinkPHP/Conf/debug.php,把日志 […]

把id相同的多行数据合并到一起

表结构如上图所示,现在需要将name相同的数据合并到一起。 这张图是合成以后的结果,具体代码如下。 其实文章写到这里就已经结束了,但是在实际操作中难免还是会有一些问题。 问题一:查询结果可能会出现BOLB类型的字段。 解决方法:使用cast(字段名 as 类型)完成类型转换,例:cast(id as char) 问题二 […]

反向并查集

并查集主要处理的是元素之间合并与查询的问题。合并,实际上就是连边的过程,这对于并查集来说是最基础也是最重要的操作;但是对于合并的逆操作,也就是断开某两个元素之间的联系,是一件比较困难的事,这里,就用到了反向并查集。 断开联系可以通过断开两个点之间的边或者是直接移除某个点来完成,而后者的本质就相当于是断开与这个点相连的所 […]

位运算之BitMask

之前出过一道题 http://xujcoj.org/Home/Problems/status/pro_id/1034 目的是为了让做这道题的同学掌握利用位运算实现20以内的暴力搜索,因为2的20次方大概在1e6左右,刚好符合一般题目的复杂度。 后来在Codeforces上做了这样一道题 http://codeforce […]

TKK-ICPC Round#7 题解

1、圣诞树 扎实的星号阵列题目,注意反斜杠需要转义后输出。 2、How many bugs? 设置三个变量 a、b、c 分别保存 可用 的 ‘b’、’u’、’g’ 的数量。 每遇到一个 ‘b’,a++。 每遇到一个 &#82 […]

TKK-ICPC Round#6 题解

1、比大小 如果我们用 double 或 long double 对它们相除的结果进行比较,势必会出现精度问题导致返回错误的答案。 所以我们考虑比较 a * d 与 b * c 的大小关系。但是题目中给出的数据范围会造成两数相乘后的结果超过 long long 的最大限度。 正确做法是,先比较 a / b 和 c / […]