A、最长树链(loj6159)

分析:

对于每个质因数,取出所有是它倍数的点组成一个树,然后找最长路径

每个数操作次数是其质因数的个数

所以总的复杂度不超过O(nlogA)

B、二分图染色(loj6160)

分析:

先转换模型——一个n*n的棋盘上,对于每个格子,可以下黑子,可以下白子,可以不下子,要求同一行同一列颜色相同的棋子最多只有一个

考虑黑白两种颜色不太好考虑,我们去考虑单个颜色

设An表示n*n的棋盘上,放若干个棋子,同一行同一列最多只有一个棋子的方案数

那么有An=ΣC(n,i)*P(n,i) (枚举哪些行放棋子,然后这些行棋子的列做排列)

再考虑两种颜色,我们把两个棋盘拼起来,发现矛盾点就是不能有格子既有黑子又有白子

那么想到容斥:An*An- 至少有一个格子重叠 + 至少有两个格子重叠 - 至少有三个格子重叠……

对于重叠怎么计算呢?一个格子如果重叠了,那么这个格子所在行列都不能放其它棋子了,所以这行这列相当于删去了

所以至少有i个格子重叠可以表示成:C(n,i)*P(n,i)*A(n-i)*A(n-i)

看一下时间复杂度,题目要求在线性时间内完成,求An就成为了一个问题

其实An可以递推求得:An=2nA(n-1)-(n-1)*(n-1)*A(n-2) (留个坑,暂时不太弄懂啥意思?)

C、倒水(loj6161)

分析:

容易发现当大水缸里水的容量介于水杯水之间的时候,一定是无解的

只有在两边才有解

如果在左边,那么答案一定是最小的那个;如果在右边,那么可以二分

D、身体训练(loj6162)

分析:

期望式子推一推就出来了

E、合并回文子串(loj6163)

分析:

考虑dp

dp[i][j][k][l]表示a[i..j]和b[k..l]结合能否成为一个回文串

那么显然一共有4种转移

注意下初值就行了

F、数列互质(loj6164)

分析:

第一想法肯定就是莫队,也容易想到记录当前区间每个数出现次数以及“出现次数”的出现次数

那么时间复杂度就是O(nsqrt(n)+m*MAX*logA)

其中MAX是出现次数的最大值,logA是求gcd的时间

如果MAX是根号级别的就好了,但明显此题中MAX会很大,那么怎么办呢?

我们可以先做一个这样的处理:挑出所有在数组中出现次数>=sqrt(n)的数字,把这些数字用一个桶一刷,求个前缀和,然后遍历所有询问,算这个数字对每个询问的贡献

因为出现次数>=sqrt(n)的数字个数肯定不会超过sqrt(n)个,所以这个的时间复杂度就是O(sqrt(n)*m)

然后对于那些出现次数<sqrt(n)的数字进行莫队,那么MAX就是sqrt(n)了

所以整个复杂度就是O(nsqrt(n)+msqrt(n)+m*sqrt(n)*logA)

2017CodeM初赛A场的更多相关文章

  1. 2017CodeM初赛B场

    A.合并字符串价值(loj6174) 分析: 普通暴力:枚举两个分界线,那么ans=Σmin(Al(c)+Bl(c),Ar(c)+Br(c)),这样是O(n^2),会TLE 考虑枚举a的分界线,b的答 ...

  2. 2018 计算之道初赛第二场 阿里巴巴的手机代理商(困难)(反向可持久化Trie)

    阿里巴巴的手机代理商(困难) 阿里巴巴的手机代理商正在研究 infra 输入法的新功能.他们需要分析单词频率以改进用户输入法的体验.于是需要你在系统内核里面写一个 API. API 有如下功能: 添加 ...

  3. # 「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程)

    「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程) 题链 题意:n条边n个节点的连通图,边权为两个节点的权值之和,没有「自环」或「重边」,给出的图中有且只有一个包括奇数个结点的环 ...

  4. 动态规划-hdoj-4832-百度之星2014初赛第二场

    Chess Problem Description 小度和小良近期又迷上了下棋.棋盘一共同拥有N行M列,我们能够把左上角的格子定为(1,1),右下角的格子定为(N,M).在他们的规则中,"王 ...

  5. 计蒜之道 初赛第一场B 阿里天池的新任务(简单)

    阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次. 首先,定义一个序列 ww: \displ ...

  6. 2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)

    题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI ...

  7. 2019 计蒜之道 初赛 第二场 A 百度AI小课堂-矩阵问题 ( 等差数列求和公式)

    题目背景 ​91029102 年 99 月 11 日,百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的 ...

  8. 2014百度之星初赛第二场hdu 4831 Scenic Popularity

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. 【AStar】初赛第一场

    1. All X1.1 基本思路k和c的范围都不大,因此可以考虑迭代找循环节,然后求余数,判定是否相等.这题还是挺简单的.1.2 代码 /* 5690 */ #include <iostream ...

随机推荐

  1. Summary of 2016 International Trusted Computing and Cloud Security Summit

    1)      Welcome Remarks 2)      The advancement of Cloud Computing and Tursted Computing national st ...

  2. 使用Eclipse进行PHP的服务器端调试

    最近工作需要对PHP的服务器端代码进行远程调试,涉及到Eclipse里环境的设置.在网上找了很多资料,大多不全,或者缺少配图,于是把自己做的过程中遇到的问题记录了下来,希望对需要的朋友们有所帮助. 首 ...

  3. 关于mybatis的一些用法

    resultMap 的用法 <resultMap id="唯一标识" type="映射的pojo类"> <id column = " ...

  4. 事件捕获 & 事件冒泡

    <body> <div id="div1"> <div id="div2"> <div id="div3&q ...

  5. python django项目断点调试

  6. Vickers Vane Pump Tips - Vane Pump Maintenance Note

    The    Vickers Vane Pump    describes the matters needing attention in the maintenance of the vane p ...

  7. [LUOGU] P1962 斐波那契数列

    求斐波那契第n项. [f(n-1) f(n)] * [0,1] = [f(n) f(n+1)] [1,1] 由此原理,根据矩阵乘法的结合律,用快速幂算出中间那个矩阵的n次方即可. 快速幂本质和普通快速 ...

  8. RPM Package Manager

    本文大部分内容来自鸟哥的Linux私房菜,并且由作者根据自己的学习情况做了一些更改,鸟哥原文链接 1. 程序的安装方式 源代码安装:利用厂商释出的Tarball 来进行软件的安装,每次安装程序都需要检 ...

  9. C语言程序内存分布

     一个进程的数据在内存中的布局如下图: bss段(bss segment):可读可写不可执行,通常用来存放程序中未初始化的全局变量.bss是英文Block Started by Symbol的简称.b ...

  10. Python爬虫-爬取京东商品信息-按给定关键词

    目的:按给定关键词爬取京东商品信息,并保存至mongodb. 字段:title.url.store.store_url.item_id.price.comments_count.comments 工具 ...