首页 > 其他 > 详细

Contest2156 - 2019-3-7 高一noip基础知识点 测试2 题解版

时间:2019-03-25 20:32:29      阅读:123      评论:0      收藏:0      [点我收藏+]

传送门

预计得分:100+70+100+50=320

实际得分100+63+77+30=270

Ctrl_C+Ctrl_V时不要粘贴翻译的,直接粘原文,

In a single line of the output print an integer — the maximum loyalty among all paths from the first node to the n-th one. If such paths do not exist or the maximum loyalty equals 0, print in a single line "Nice work, Dima!" without the quotes.
输出能从1出发到n的总数值数,如果没有,输出“Nice work,Dima!”
两个判错之间在逗号前差了一个空格 QAQ

 

T1

dfs+剪枝

对于搜到的一组(a,b,c),将a*t^2+b*t+1(t>=20)标记,下一次再经过时就直接return

代码


 

T2

容易想到区间一定是连续的

但是这种容易想到的一般都是错的

例如数据

3 3

1 2 1 2

2 3 1 10000

1 2 7 8

显然区间不是连续的。

于是,我们的思路是枚举下界,二分上界,用dfs或是并查集维护1-n的连通

dfs太难打了,david-alwal太懒了,所以用了并查集


 

T3

个人认为是最简单的一道题

一个BFS就可以解决

下标不能为负数!!

上代码


T4

dfs+剪枝

剪枝1:,可行性剪枝:对于一个点(x,y),如果它左上角的颜色加上它走到底下的格子数大于k,就return 0

剪枝2,对称性剪枝:例如我们当前填到了某个格子,我们记录一下整个矩阵已使用的颜色,例如3,5都还没用,那么这个格子填上3或5,两者最终算出的方案数是相同的,这样我们就可以只计算3的方案数,5的直接加上3的就可以了。

用状压存状态特别方便

没有单独讲状态压缩的博客,只有讲状压DP的,大家就只看状压那部分的吧 详解状压 David-alwal太懒了

上代码

 

Contest2156 - 2019-3-7 高一noip基础知识点 测试2 题解版

原文:https://www.cnblogs.com/yanghaokun/p/10596396.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!