QAQ 从IOI搬了一道题目过来

官方题解貌似理论上没有我的做法优,我交到BZOJ上也跑的飞快

结果自己造了个数据把自己卡成了4s多,真是忧桑的故事

不过貌似原题是交互题,并不能离线

说说我的做法吧

首先我们会写暴力,而我的做法只要会写暴力就可以了

对于一个询问A,B

我们有以下几种方法:

1、搞出所有颜色是A的DFS序对应区间的左右端点和所有颜色是B的DFS序对应区间的左右端点

然后把所有端点排个序,线性扫一遍,维护一个扫描线cnt,当遇到A的左端点时++cnt,遇到A的右端点时--cnt

遇到B的左端点时ans+=cnt,这样我们就可以统计答案了

我们可以预处理出所有颜色的DFS序分别排序后的结果,每次做的时候归并排序一下就可以了

时间复杂度O(S(A)+S(B)) 即A颜色的个数+B颜色的个数,空间复杂度O(n)

2、我们DFS整棵树,记录上面DFS的时候经过了多少个A,经过B的时候更新答案就可以了

时间复杂度O(n),但是如果我们开O(n)的空间就可以在固定A的情况下求出所有可能的B的答案了

我们有如下两种做法之后就自然而然的可以A掉这道题目了

首先对于大小大于sqrt(n)的颜色,我们会发现它最多有sqrt(n)个,然后我们对于每个颜色DFS一遍计算答案

时间复杂度O(n*sqrt(n))

对于大小小于sqrt(n)的颜色,我们采用第一种做法

时间复杂度O(n*sqrt(n))

所以总时间复杂度O(n*sqrt(n))

注意到本题出题人热衷于卡内存,但是允许离线

所以不能预处理sqrt(n)个颜色的答案,只能将询问排序之后做

又注意到当A颜色>sqrt(n)或者B颜色>sqrt(n)的时候DFS的方式是不同的

但都是普及组的内容,随便写写就好啦,归并排序也是普及组的内容

所以代码还是极其好写的

cojs 安科赛斯特 题解报告的更多相关文章

  1. cojs 强连通图计数1-2 题解报告

    OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一 ...

  2. cojs 二分图计数问题1-3 题解报告

    OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...

  3. cojs DAG计数问题1-4 题解报告

    最近突然有很多人来问我这些题目怎么做OwO 然而并不是我出的,结论我也不是很懂 研究了一下觉得非常的一颗赛艇,于是就打算写这样一篇题解 DAG 1 我们考虑DAG的性质,枚举出度为0的点 设出度为0的 ...

  4. cojs 疯狂的字符串 题解报告

    首先这道题是GT考试的加强版本QAQ 当n<k的时候,答案显然是10^n 当n=k的时候,答案显然是10^n-1 这样就有20分辣 之后我们考虑k<=20的做法 显然设f(i,j)表示前i ...

  5. cojs QAQ的矩阵 题解报告

    题目描述非常的清晰 首先我们考虑(A*B)^m的求法,这个部分可以参考BZOJ 杰杰的女性朋友 我们不难发现(A*B)^m=A*(B*A)^(m-1)*B A*B是n*n的矩阵,而B*A是k*k的矩阵 ...

  6. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  7. 题解报告:hdu 1398 Square Coins(母函数或dp)

    Problem Description People in Silverland use square coins. Not only they have square shapes but also ...

  8. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  9. 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)

    Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...

随机推荐

  1. WP开发笔记——不同Item显示不同ApplicationBar:适用于Pivot与Panorama

    一.在xaml页面定义两个ApplicationBar: <phone:PhoneApplicationPage.Resources> <shell:ApplicationBar I ...

  2. Hibernate中的对象状态,及自动更新原因

    Hibernate的对象有三种状态,分别为:瞬时状态 (Transient). 持久化状态(Persistent).游离状态(Detached).对它的深入理解,才能更好的理解hibernate的运行 ...

  3. winform 清空界面所有控件已输入的值

    rivate void btnClear_Click(object sender, EventArgs e){ ClearCntrValue(this.pnlContent);}   复制代码/// ...

  4. WPF 绑定二(绑定指定的字符串)

    xaml: <Window x:Class="WpfApplication1.Window2" xmlns="http://schemas.microsoft.co ...

  5. 更改windows服务的配置文件app.config

    /// <summary> /// 获取每次处理记录数 /// </summary> /// <returns></returns> private s ...

  6. Sorl之java操作

    参考教程: http://www.cnblogs.com/xia520pi/p/3625232.html http://www.cnblogs.com/hujunzheng/p/5647896.htm ...

  7. spring的配置

    web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...

  8. STM32 ucosii 串口接收数据 遇到的问题及解决思路

    写一个程序,用到了ucos ii ,串口在中断中接收数据(一包数据 8个字节 包含: 1byte包头 5byte数据 1byte校验和 1byte 包尾 ) ,数据由上位机每隔500ms发送一次,在串 ...

  9. 【img】 图片是怎么存储的

    用ue 打开一张图片,动动手脚,出现卡碟的画面效果. 可不可以用C#来做一个图片编辑器? 怎么做?路线怎么走? 稍后揭晓答案 根据实际操作获取类一些基础知识: 1. 文件是二进制存储的,为了便于查看编 ...

  10. layoutSubviews -- setNeedsLayout -- layoutIfNeeded -- 区别

    -layoutSubviews方法:这个方法,默认没有做任何事情,需要子类进行重写-setNeedsLayout方法: 标记为需要重新布局,异步调用layoutIfNeeded刷新布局,不立即刷新,但 ...