最后一天。。有些感慨,这七天被虐的感动万分

第一题:

题目大意:

求出 n*i(i=1,2,3....n) mod p的逆元  n<p<=3000000 ,p是质数。

之前写过了,懒得再写了。链接http://www.cnblogs.com/vb4896/p/3911283.html

第二题:

题目大意:

给区间染色,一种颜色会覆盖另外一种,且区间的端点也算一种颜色。比如 [2,3] 染成红色,[1,2]染成绿色,[3,4]染成紫色,询问区间[2,3],那么会有红绿紫三种颜色。

颜色用数字表示,颜色种数k<=60,颜色从0开始编号。有q个操作(q<=500000),要么询问一个区间的颜色种数,要么染色。

解题过程:

1.一看就是考线段树,poj上原题的改版,那题是端点不算颜色的,处理起来方便得多。

2.对于线段树上的每一个节点,维护一个cover(long long),用二进制压位的方法保存某种颜色是否染过(0,1);更新的话只要 它的所有儿子的cover  用或运算 。

3.考试的时候1个小时写好,调试了2个小时。。对线段树加了些特殊处理的情况,最后发现自己出的一组小数据过不去。然后才发现 对于点修改,我的线段树是要挂掉的。。 本来以为要爆0,结果测试数据中没有点修改的情况。。骗到了AC。

4.考后思考:其实可以 建2棵线段树,一个是只管端点,一个是只管线段,写起来几乎一模一样,复制粘贴就好。询问的时候只要 对询问两棵的结果 做或运算即可。自己也写了下,20分钟写好,调试了一个小时。。看了半天发现又是老错误,就是

1<<c  的时候 ,c不能超过30,因为1默认是一个int。 所以要改成(long long )1<<c  或者 1LL << c ;

5.讲课大神提供的标准解法:个人感觉非常巧妙, 把 一条长度为1的线段 拆成 3个点,也就是2个端点,把中间的线段看成一个点。  把线段树的规模扩大了一倍,但是处理起来非常方便。

第三题:

题目大意:

给出一棵n个节点的树(n<=50000)假设在一棵有根树上存在五个互不相同的节点,分别记为a,b,c,d,z,若这5 个点同时满足以下要求:a,b,c,d,lca(a,b),lca(c,d),lca(lca(a,b),lca(c,d))这7个节点互不相同,并且z是lca(lca(a,b),lca(c,d))的祖先;那么五元组(a,b,c,d,z)表示了一棵合法的“不三不四树”。同时,交换

a,b,c,d,z的顺序只算作一种。 求方案数mod 1234567891;

解题过程:

1.这题考试时感觉会很难,就把时间放在了第二题。爆搜都写不出来。算法比较容易理解,有个优化非常关键。

2.AC算法:

定义F[node,0]为以node为根的子树的节点数;

定义F[node,1]为以node为根的子树中 ,选出3个不同节点a,b,c,且LCA(a,b)=c 的方案数(不考虑顺序,下同)

定义F[node,2]为以node为根的子树中,选出4个不同节点a,b,c,d,且LCA(a,b)=LCA(c,d)=node的方案数;

A : F[node,0]最好转移,累加F[node.son,0] 再加1;

B : F[node,1]=sum ( F[i,0]*F[j,0]),(i<j  i,j∈node.son); 这里的<表示i在j的左边,下同

C : F[node,2]=sum ( F[i,1]*F[j,1]),(i<j  i,j∈node.son);

这样的话复杂度应该是O(N^3);

优化:在B中的sum ( F[i,0]*F[j,0]) 这里, 这里其实不必一一枚举 i,j,对于一个固定的j,那么 要加上F[i,0]*F[j,0];

i取遍 j左边的所有儿子, 利用乘法分配率, 其实只要 F[j,0] * sum(F[i,0]) (i<j  i,j∈node.son);sum只要边求边维护即可。 同理 C 也用同样的方法优化 总的复杂度优化到 O(N);

常州培训 day7 解题报告的更多相关文章

  1. 常州培训 day5 解题报告

    第一题:(贪心) 题目大意:给出N*M的矩形,要用正方形将它铺满(正方形之间不能重叠),相邻的正方形颜色不能相同,颜色用ABCD表示.要求从上到下从左到右字典序最小. N,M<=100 解题过程 ...

  2. 常州培训 day6 解题报告

    第一题: 题目大意: 给出一个N*N的矩阵,矩阵元素均为0或1.定义矩阵权值为sum(F[i][j]*F[j][i]); 给出K个操作: 询问矩阵的权值mod 2. 将矩阵的某一行元素取反(0变成1, ...

  3. 常州培训 day4 解题报告

    第一题:(简单的模拟题) 给出一个N位二进制数,有‘+’, ‘-’, ‘*’, ‘/’ 操作,分别表示加1,减1,乘2,除以2,给出M个操作,求出M个操作后的二进制数.N,M<=5000000; ...

  4. 常州培训 day3 解题报告

    第一题: 给出数轴正半轴上N个点的坐标和其权值,给出初始体力值M,人一开始在位置0,体力值会随着走过路程的增加而增加,走多少个单位的路消耗多少体力值.到每个点可以打掉,消耗的体力值就是其权值.求 最多 ...

  5. 常州培训 day2 解题报告

    第一题: 题目大意: 给出一个M面的骰子,投N次,求最大期望值. 最大期望值的定义: 比如M=2,N=2, 那么 2次可以是 1,1,最大值为1: 1,2最大值为2: 2,1最大值为2: 2,2 最大 ...

  6. 常州培训 day1 解题报告

    第一题:(骗分容易,AC难.) 题目大意: 给出一个字符串,找出满足条件A的区间的个数.A:字符A,B,C的出现次数相同. 都出现0次也算,区间的长度可以是0(就是只有一个数).30% |S| ≤ 1 ...

  7. 「2017 山东三轮集训 Day7 解题报告

    「2017 山东三轮集训 Day7」Easy 练习一下动态点分 每个点开一个线段树维护子树到它的距离 然后随便查询一下就可以了 注意线段树开大点... Code: #include <cstdi ...

  8. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  9. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

随机推荐

  1. 如何读懂 STATSPACK 报告 (转) & Toad 结合

    可与 toad 相结合的内容, 用 这种颜色可以利用 toad(database->monitor->server statistics)查看到下边的很多信息, 比如 wait event ...

  2. mysql 检查字符串是否包含子串

    1.使用substring_index(src,target,index) 从src的开头查找第index个target.返回的substring为从src的开头到第num个target这段字符串.比 ...

  3. js optiontransferselect

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. md5加密过程

    import java.beans.Encoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmE ...

  5. UIButton、UIImageView、UILabel的选择

    UIButton特点既能显示文字,又能显示图片(能显示2张图片,背景图片.内容图片)长按高亮的时候可以切换图片\文字直接通过addTarget...方法监听点击 UIImageView能显示图片,不能 ...

  6. git的作用和原理(待续)

    先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令: $ sudo git init --bare sample.git Git就会创建一个裸仓库,裸仓库没有 ...

  7. jQuery.form.js jQuery ajax异步提交form

    jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 官网下载地址:http://plugins.jquery.com/form/ API ajaxForm 增加所 ...

  8. C#_DataTable导出Execl为自定义标题

    public bool ExportExcel(DataTable tb, string path, string tbName) { //excel 2003格式 string connString ...

  9. 原!!tomcat7.0 配置数据库连接池 SQLServer2000

    SQLServer2000所需的3个驱动jar包 msbase.jarmssqlserver.jarmsutil.jar 放入WEB-INF lib文件夹中 1.META-INF 创建一个contex ...

  10. michael的沟通秘籍

    1 多准备几个邮件模板2 lower expectation over delivery less promise extra give3 involve resource earliar 尽早接手公 ...