0712

昨天的题目有点奇怪,我就不写了...

今天的题目更奇怪,但是还是比较显然的。

第一题:给你一个无向图的最小割矩阵,然后让你还原这个图。

最小割最多n-1个,由某些显然的性质可知,最终的图是一个树。

然后尝试构造这棵树,怎么构造?

我先找到当前点集中最小的权值,然后依据这个值将点集划分成两块,分治,最后随意连条边即可。

check了一下,发现做法没问题。

正解是找到最大的边,如果这两个点未联通,连起来,否则根据情况判。可以理解为最大生成树。

只有80,我忘了判无解。

第二题:要求你在树上找到一个大小为K联通块,要求联通块的边的长度和*2-链的长度最小。

DP,我先YY了一个DP,设f[i][j]表示i为根的子树有j个点的最小联通块长度。g[i][j]表示i为直径的一端的最小长度。我发现我需要知道哪些点在最优答案中。

然后就有YY了一个做法是每隔K距离就以此点为根做DP,我发现成功率比较低...。因为要检查的点必须恰好是最优解直径的一端。

为了增强单次DP的效果,我又YY了一个Z[i][j]表示i节点是两直径端点LCA的状态,再纪录tt[i]表示以i为根的子树的答案。

最后的结果是我发现这个DP好像直接就能做了.....

死于转移写挂。还是只有80。

第三题:

神奇的hash,但我再也不想见到回文这两个字了....

时间: 2024-10-10 18:56:24

0712的相关文章

杭二信息奥赛学习记录(3)(0712 提高组测试与题解)

1 绕橡皮 (rope.cpp) 1.1 题目描述 最近小D喜欢玩橡皮筋.他发现用一个橡皮筋绕上一个正n边形的n个顶点可以产生许多美丽的形状.他发现用一个橡皮筋不重复也不遗漏地绕过n个顶点产生的图形中,有些图形不存在平行的边,称为“n奇异形“.现在他希望知道是否存在k个“n奇异形”叠置(即形成一个由正k*n边形的顶点及一些边组成的图形)之后形成的图形是否也满足不存在平行的边. 1.2 输入格式 有多组测试数据,每行包含两个正整数n,k,意义同上, 文件末尾为两个0. 1.3 输出格式 对于每组测

杭二信息奥赛学习体会(2) (0712测试)

一.FJ的字母矩阵 (moocrypt) Description 很少有人知道,奶牛对矩阵很感兴趣,尤其是字母矩阵.农夫约翰(FJ)的奶牛创造了一种字母矩阵新玩法:找单词.比如,现在有一个字母矩阵,如下: USOPEN OOMABO MOOMXO PQMROM 作为奶牛,他们只对单词“MOO”感兴趣.我们可以在这个矩阵中找到6个“MOO”(在同一行.同一列或者同一条对角线上) 约翰也是字母矩阵迷,因此奶牛们不希望约翰在他们之前解决这个问题,所以,他们要对矩阵进行加密.所谓加密,就是将矩阵中的字母

0712课程练习

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body bgcolor="aquamarine" leftmargin="40%" rig

OCP 12c最新考试题库及答案(071-2)

2.(4-7) choose the best answer:You need to display the first names of all customers from the CUSTOMERS table that contain thecharacter 'e' and have the character 'a' in the second last position.Which query would give the required output?A) SELECT cus

Oracle分析函数

1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C --

Oracle分析函数参考手册

Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行, 而聚合函数对于每个组只返回一行. 常用的分析函数如下所列: row_number() over(partition by ... order by ...) rank() over(partition by ... order by ...) dense_rank() over(partition by ... order by ...) count() over(part

四、oracle基本sql语句和函数详解

一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构的数据定义语言命令有: create table alter table truncate table drop table eg. --创建tb_stu表数据结构 create table tb_stu( id number, name varchar2(20) );   --修改tb_stu表数

oracle第二天

集合运算 SQL> host cls SQL> /*SQL> 查询部门号是10和20的员工信息SQL> 1. select * from emp where deptno in (10,20);SQL> 2. select * from emp where deptno=10 or deptno=20;SQL> 3. 集合运算SQL> select * from emp where deptno=10SQL> 加上SQL> select * from

oracle中110个常用函数介绍

1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C --