clj在某场hihoCoder比赛中的一道题,表示clj的数学题实在6,这道图论貌似还算可以... 题目链接:http://hihocoder.com/problemset/problem/1167 由于是中文题目,题意不再赘述. 对于任意两条小精灵的活动路径a和b,二者相交的判断条件为b的两个端点的LCA在a的路径上:那么我们可以首先将每个活动路径端点的LCA离线预处理出来,对每个节点LCA值+1. 然后以某个节点(我选择的是节点1)为根进行深搜,算出一条从节点1到节点x的LCA值和,那么任意…
[题意] 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 少女幽香这几天正在学习高等理论计算机科学,然而她什么也没有学会,非常痛苦.所以她出去晃了一晃,做起了一些没什么意义的事情来放松自己.门前有一颗n个节点树,幽香发现这个树上有n个小精灵.然而这些小精灵都比较害羞,只会在一条特定的路径上活动.第i个小精灵会在ai到bi的路径上活动.两个小精灵是朋友,当且仅当它们的路径是有公共点的.于是幽香想要知道,有多少对小精灵a和b,a和b是朋友呢?其中a不等于b,a,b和b,…
题目地址:http://hihocoder.com/problemset/problem/1264 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 我们说两个字符串是非常相似的,当且仅当它们的编辑距离小于等于1. 现在我们有两个字符串A和B, 每个单位时间你可以交换字符串A的相邻的两个字符. 问最少需要多少时间,你可以让A和B变得非常相似?保证存在一种这样的方案. 输入 第一行一个字符串,表示A. 第二行一个字符串,表示B. 所有字符串都仅有英文小写字母组成. A和…
题目3 : 树的方差 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 对于一棵 n 个点的带标号无根树,设 d[i] 为点 i 的度数. 定义一棵树的方差为数组 d[1..n] 的方差 给定 n ,求所有带标号的 n 个点的无根树的方差之和. 你需要将答案对 998244353 取模. 方差的定义:https://en.wikipedia.org/wiki/Variance 输入 仅一行:一个正整数 n 2 ≤ n ≤ 106 输出 仅一行:一个非负整数表示答案 样…
题目2 : 二进制翻转 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 定义函数 Rev(x) 表示把 x 在二进制表示下翻转后的值 例如: Rev(4)=1,因为 4 等于(100)B,翻转后是 (001)B,也就是 1 Rev(6)=3,因为 6 等于(110)B,翻转后是 (011)B,也就是 3 定义 Cnt(x) 表示 x 在二进制表示下 1 的个数,求: 输入 仅一行,一个非负整数 n 0 ≤ n ≤ 1015 输出 仅一行:一个非负整数表示答案 样例输…
题目1 : 异或排序 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个长度为 n 的非负整数序列 a[1..n] 你需要求有多少个非负整数 S 满足以下两个条件: (1).0 ≤ S < 260 (2).对于所有 1 ≤ i < n ,有 (a[i] xor S) ≤ (a[i+1] xor S) 输入 第一行一个正整数 n 第二行 n 个非负整数表示序列 a[1..n] 1 ≤ n ≤ 50 0 ≤ a[i] < 260 输出 一个非负正数,表示答…
题目: 一个n × n的矩阵,其中每个位置都是一个非负整数. 一个福字被定义成是大小为 k 的正方形,满足其中的每个位置上的数都恰好比他的左边的那个和上边的那个大1(如果左边或上边的那个不存在的话就无此要求). 比如 1 2 3 2 3 4 3 4 5 就是一个福字.(注意左上角可以是任何非负整数). 你想找到这个矩阵中最大的福字的大小. 题解:判断正方形的dp,但是要注意有细节 首先开两个二维数组: hor[i][j]:i行j列对于左方是否成立 ver[i][j]:i行j列对于上方是否成立 接…
算了前三项.....发现是个大水题...   #include<stdio.h> int main() { int n; while (~scanf("%d", &n)) { double k = 1.0*n; printf(); } ; } 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 大家对斐波那契数列想必都很熟悉: a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1). 现在考虑如下生成的斐波那契…
Descroption 原题链接给你一棵\(~n~\)个点的树和\(~m~\)条链,求两两相交的链有多少对,两条链相交当且仅当有至少一个公共点.\(~1 \leq n, m \leq 10 ^ 5~\). Solution 一个很直观的想法是把每一条链路径上的权值\(+1\),然后计算每一条链内多出来的权值为多少,显然这样是错的,因为两条链的交集可能不止有一个点,那么可以把每一条链路径上的点权\(+1\),边权\(-1\),再算多出来多少就好了.然而我不会这个啊. 考虑一个性质: 两条链相交当且…
hihoCoder挑战赛23 A.Emulator 题意 给一张图,有\(N(N \le 300)\)个点, 给出任意两点之间的最短路. 求最多可以去掉多少条边,使得任意两点的最短路长度不变. 思路 若一条边\((i,j)\)可以去掉,那么必然存在路径\(d(i, k) + d(k, j) = d(i, j)\). 代码 hihoCoder_1379 B.Certificate 题意 已知有\(N(N \le 14)\)个变量,变量取值\(0\)或\(1\). 已知\(f(0,0,\cdots,…