// 此博文为迁移而来,写于2015年4月21日,不代表本人现在的观点与看法。原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vy9t.html

这次省队选拔其实是抱着玩玩的心态去参加的,尽管分数在我的意料之中,但是感觉还是有莫大的遗憾。总分75分,第一天35分,第二天40分,可以说是比较标准的暴力分(第一天其实还有10分没有去争取)

Day1:第一次参加比赛是用NOI-Linux。去年的时候,我就在魏龙的帮助下在电脑上装了Ubuntu,当时感觉不太习惯。在其他人的一些帮助以及自己的摸索下,还是用的比较习惯了。但是在第一天考试的时候,还是碰到了一些非能力的问题,也不知道是紧张还是手速太慢,我的配置文件没有打好老师就说要收了,这更是让我感到不舒服。考试的时候因为Emacs的一些版本问题,导致一些快捷键如同Ctrl+Z或是Ctrl+W出现了一些奇奇怪怪的变化——我的程序莫名其妙的少了一截,我却不知道怎么撤退。总的而言,第一天亏就亏在了状态这个问题,整个上午都在打着第二题,直到把50分的情况都打完之后才发现第三题还没动笔。我在之前看题的时候对于第三题,就有过一种想法,用拓扑排序+堆优化,但是我个人认为这只是一种比较好的暴力方法罢了,所以我还是规规矩矩的一题一题写的。当时我根本没有想到,这就是第三题的正解,而且周子栋打出来了,AC了。第一天下来,问题有很多:对于一些奇怪问题的到来,没有什么应急措施,而由此导致了时间的分配问题(我想如果我先打第三题或是有时间打第三题就不会是这种情况了吧)

Day2:第二天在状态方面还是很明显好了许多,前一天的晚上就把配置啊,撤退啊什么的都准备好了,但是由于本身的知识能力,第二天也就打了第一题,第二题的共40分,还好没有出现暴力打错的问题。第二题的话,我还是在考场上临时想出来的一个优化。由于我之前从来没有单独去写过LCA(想想也是惭愧),所以LCA是我考试时突然写出来的……一般的标准20分是求出所有点之间的距离,最后询问的时候直接求和即可。我想可以实现找出一个非叶子节点作为根节点,求出所有点到根节点的距离,最后跑LCA求出两点之间的距离,这样空间复杂度小了许多,但是由于第三个以后的测试点都非常大,所以这也只有20分,但对于我突发奇想想出一个平常没写过的东西还是比较值得庆幸的。

总而言之,现在呢还是高一,今年进省队是从没想过的,这次考试本来最大的作用就是提前有个准备,同时尽自己所能得到更多的分,75分中规中矩,但是对于Day1的第三题完全能够到手却流失于指缝,让人十分惋惜。现在要做的,就是继续努力学到更多知识,在NOIP拿一等奖的基础上,冲刺明年的省队。

随便写的算法:
 
1、亚瑟王(arthur)
 
       算法一:DFS(10分)
 
2、接水果(fruit)
 
       算法一:跑DFS/BFS求出主链,在链上求出存在的所有存在的子链,求和(20分)
       算法二:在算法一的基础上:考虑到30%数据是一条链,可以写树套树(30分)
       算法三:动态树+树分治(100分)
 
3、菜肴制作(dishes)
 
       算法一:输出impossible(15分)
       算法二:拓扑排序(40分)【有待考证】
       算法三:逆向拓扑排序(70分)
       算法四:逆向拓扑排序+堆(100分)
 
4、 落忆枫音(maple)
 
       算法一:枚举所有边,跑DFS判断是否全部到达(20分)
 
5、幻想乡开店(shop)
 
       算法一:事先求出所有点之间的距离,询问时直接求和(20分)
       算法二:任取一个非叶子的节点作为根节点,求出所有点到根节点的距离,询问时求出LCA
                    (空间复杂度明显小些,但是依旧20分)
       算法三:在算法一或算法二的基础上:考虑到有20%的数据是A=20,可以考虑树形DP(40分)
 
6、比较实验(pairwise)
 
       算法一:树形DP(100分)【有待考证】
 
       红色标记是我弱在这次考试时写的。。。好像全都是暴力(shop除外吧,感觉还是动了脑筋的呢 = =。)更多总结等发了题解再说。

HNOI2015总结的更多相关文章

  1. 【BZOJ4008】[HNOI2015]亚瑟王 期望

    [BZOJ4008][HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最 ...

  2. BZOJ4009: [HNOI2015]接水果

    4009: [HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black,  她 ...

  3. 【BZOJ】【4011】【HNOI2015】落忆枫音

    拓扑排序+DP 题解:http://blog.csdn.net/PoPoQQQ/article/details/45194103 http://www.cnblogs.com/mmlz/p/44487 ...

  4. 【BZOJ】【4010】【HNOI2015】菜肴制作

    拓扑排序 这题是要求N个点的一个拓扑序,且满足以下条件:编号1的位置尽可能靠前,在此基础上编号2的位置尽可能靠前…… 我看到这题的第一感觉:将拓扑排序用的队列改为优先队列,编号越小越早出来. 但是连样 ...

  5. bzoj 4010: [HNOI2015]菜肴制作 拓扑排序

    题目链接: 题目 4010: [HNOI2015]菜肴制作 Time Limit: 5 Sec Memory Limit: 512 MB 问题描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴 ...

  6. HNOI2015滚粗记

    HNOI2015滚粗记 经过两天的苦战,艰难的HNOI终于结束了.感觉这次HNOI自己还是收获了许多. \(Day1\)打的很是艰难,题目一下就有种晕头转向的感觉.开场\(20min\)自己还在读题时 ...

  7. BZOJ 4008: [HNOI2015]亚瑟王( dp )

    dp(i, j)表示考虑了前i张牌, 然后还有j轮的概率. 考虑第i+1张牌: 发动的概率 : p = dp(i, j) * (1 - (1-p[i+1])^j) 没发动的概率 : dp(i, j) ...

  8. BZOJ 4011: [HNOI2015]落忆枫音( dp )

    DAG上有个环, 先按DAG计数(所有节点入度的乘积), 然后再减去按拓扑序dp求出的不合法方案数(形成环的方案数). ---------------------------------------- ...

  9. BZOJ 4010: [HNOI2015]菜肴制作( 贪心 )

    把图反向,然后按拓扑序贪心地从大到小选, 最后输出.set比priority_queue慢... --------------------------------------------------- ...

  10. HNOI2015 Day 2题解

    昨天做了HNOI day 2,感觉好像还是可做的,想当年什么splay还是高级算法,现在点剖什么就老考了简直丧病,虽然第二题还没写那就先当下嘴巴选手吧= = T1:[HNOI2015]落忆枫音 描述: ...

随机推荐

  1. Python语言的特点及自学建议

    Python语言的特点Python语言是一种被广泛使用的高级通用脚本编程语言,具有很多区别于其他语言的特点,这里仅列出如下一些重要特点.(1)语法简洁:实现相同功能,Python语言的代码行数仅相当于 ...

  2. Oracle的视图和索引

    学习笔记: ##视图     * 概念:视图就是提供一个查询的窗口,所有数据来自于原表.     * 方法:         * 查询语句创建表:             * create table ...

  3. (原创)对比组态软件,使用C#开发的服务器和客户端软件的优势

    在当前经济形势和市场环境下,中小企业面对萧条的消费市场,恶化的外部贸易环境,刚性支出高成本人工和生产要素,通货膨胀,隐性的腐化支出等各种因素的作用导致企业生存艰难,企业需要在各方面削减支出,拓展市场寻 ...

  4. 类再生(合成、继承、final)

    类再生 有两种方法达到代码复用的效果:合成.继承. 合成的语法 合成就是形成对象,把复用的代码置入对象句柄. 在类内字段使用基本数据会初始化为零,但对象句柄会初始化为null.在下面的程序中若没有ne ...

  5. pytest之mark功能

    pytest系列(一)中给大家介绍了pytest的特性,以及它的编写用例的简单至极. 那么在实际工作当中呢,我们要写的自动化用例会比较多,不会都放在一个py文件里. 如下图所示,我们编写的用例存放在不 ...

  6. 在HTML网页中嵌入脚本的方式

    在HTML标记的事件属性中直接添加脚本 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  7. nginx 配置跨域

    location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, ...

  8. js浏览器对象模型【BOM】(十三)

    一.时间定时器1.超时调用setTimeout(fun,time)    [返回一个唯一标识该超时调用的ID数值]参数:fun:要执行的函数time:设置第多少毫秒后执行fun函数 clearTime ...

  9. Linux命令groupadd

    groupadd [选项] 组 创建一个新的组.Groupadd命令使用命令行中指定的值加上系统默认值创建新的组账户.新组将根据需要输入系统. (1).选项 -f,--force 如果指定的组已经存在 ...

  10. JVM 运行时数据区:程序计数器、Java 虚拟机栈和本地方法栈,方法区、堆以及直接内存

    Java 虚拟机可以看作一台抽象的计算机,如同真实的计算机,它也有自己的指令集和运行时内存区域. Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存(运行时内存区域)划分为若干个不同的数 ...