[DP经典题]数字三角形
来自CodeVS1220 数字三角形 CodeVS的天梯题目排序这里就不吐槽了,这题最后一题还以为是最难的。实际上就是一大$$H_2O$$题 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大。 输入描述 Input Description 第一行是数塔层数N(1<=N<=100)。 第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行。 输出描述 Output Description 输出最大值。 样例输入 Sample Input 5 13 11 8 12 7 26 6 14 15 8 12 7 13 24 11 样例输出 Sample Output 86 数据范围及提示 Data Size & Hint 数字三角形 这题是我可能也是大多数人的DP入门第一题。 一个最简单的递推,自下往上不断取最大值。 方程是: $$f(i,j)=f(i,j)+max\{f(i...
[CodeVS 1219]骑士游历
做这题前真的很想吐槽一句CodeVS的天梯mmp,这题这么水的题目不放在过河卒后面却放在传纸条这种多线程DP后面真的是****** 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马。 规定: 马只能走日字 马只能向右跳 问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。 输入描述 Input Description 第一行2个整数n和m 第二行4个整数x1,y1,x2,y2 输出描述 Output Description 输出方案数 样例输入 Sample Input 30 30 1 15 3 15 样例输出 Sample Output 2 数据范围及提示 Data Size & Hint 2<=n,m<=50 这题没什么好说的,动态转移方程是 f[i][j]=f[i-2][j-1]+f[i-1][j-2]+f[i+2][j-1]+f[i+1][j-2] (注意判断...
[NOIP2008 TG]传纸条
题目描述 Description 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。 在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回复。班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在小渊递给小轩纸条的时候帮忙,那么在小轩递给小渊的时候就不会再帮忙。反之亦然。 还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:小渊和小轩的好心程度没有定义,输入时用0表示),可以用一个0-100的自然数来表示,数越大表示越好心。小渊和小轩希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回两条传递路径,使得这两条路径上同学的好心程度只和最大。现在,请你帮助小渊和小轩找到这样的两条路径...
[NOIP2002] 过河卒
一看到这题稍稍有点懵,但是仔细想想发现是大水题~~ f[i][j]表示的是从起点到(i,j)的路径数。 比较有意思的一点是,我在计算马的控制点的时候忘记控制边界了,居然AC了??? 这里的正确写法应该是 int x[8]={-2,-2,-1,-1,1,1,2,2}; int y[8]={-1,1,-2,2,-2,2,1,-1}; /* ...... */ for(i=0;i<8;i++) { if((y[i]+hy)>=0&&(y[i]+hy)<=20&&(x[i]+hx)>=0&&(x[i]+hx)<=20) { control[y[i]+hy][x[i]+hx]=1; } } 下面是我的代码: #include<cstdio> #include<cstring> bool control[21][21]; int bx,by,hx,hy,f[21][21]; int main() { memset(f...
[NOIP2006]能量项链
期末前最后一题,好吧我知道我已经学得很慢了,但是还是得一步步踏实着来。 题目描述 Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为mrn(Mars单位),新产生的珠子的头标记为m,尾标记为n。 需要时,Mars人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。 例如:设N=4,4颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号⊕表示两颗珠子的聚合操作,(j⊕k)表示第j,k两颗珠子聚合后所...
deoplljj的博客搬新家啦~~
之前的felj.top由于域名无法续费的原因直接关闭了~ 这里导入了felj.top一部分有价值的文章~ 在之后,我的博客就在deoplljj.win这里安家啦~ 在这里会发一些信息学题目的题解,或者发一些有趣的事情,甚至发发牢骚~ 还请各位多多关照哦! P.S. 备份felj.top的数据的时候没有保存到图片……所以这些图片全部无法显示……抱歉了
NOIP2017不见不散--2016年年度总结
可能这篇文章最后没有几个人会看到,但是我想趁现在这个博客还没有什么人(虽然以后也不会有什么人),我可以无拘束地倒出我心里的一些话。这些文字可能会被时间渐渐冲淡,最终消失在二进制的长河中,但是至少我在这个时刻想说的这些话在世间存在过。 2016年就这样结束了。那饱含着激情的2015年底,刚接触信息学的兴奋似乎还在昨天。现在打开刚接触信息学奥赛时创建的文件夹,感慨万分。 还记得今年年初刚开始转C++,每天在放学后激动地抱着一本《信息学奥赛一本通》在语法部分翻来翻去,打开电脑怀着“希望”与“理想”敲击着每一行代码,时不时还会走神幻想着自己拿了NOI Au被清华北大录取被众人膜的场景。 至今仍然还记得,在我自以为我已经精通了OI需要使用的C++语法后,我满怀自信地打开了OJ–在之前我一直天真地以为学完语法后多刷题就可以慢慢提高水平。结局想必不用我描述都可以猜到——大跌眼镜。 终于在经过几周的摸索之后,我的OI学习开始偏向正轨了。还记得当时做“津津的储蓄计划”这题的时候,我呆坐在机房的电脑前面,大脑里如同一团乱絮,桌前就是草稿纸,但是我却不知道该写些什么。一股迷茫、孤独、失落的感觉向我袭...
NOIP2016模拟赛-大水题引发的惊天血案
这是今天在洛谷上的一次模拟赛的第一题。 题意大概是这样的: 题目背景 kkk在赛车~ 题目描述 现在有N辆赛车行驶在一条直线跑道(你可以认为跑道无限长)上。它们各自以某种速度匀速前进,如果有两辆车A车和B车,A车在B车的后面,且A车的速度大于B车的速度,那么经过一定的时间后,A车必定会超过B车,这称为一次超车。求超车总数。道路起点的位置为0,没有两辆车的初始位置相同。 这一看就是大水题嘛~~ 于是代码一口气就出来了: #include<iostream> #include<iomanip> #include<cstring> using namespace std; int n,x[300001],s[300001],c=0; int main() { memset(x,0,sizeof(x)); memset(s,0,sizeof(s)); cin>>n; for(int i=0;i<n;i++) { cin>>x[i]>>s[i]; ...
“孩子,那你还能进国赛么?"
好像很久没有发过日志了。可是看了下时间。距离我网络安全的退役不过是过了几个月罢了。这次却又要OI的短时间退役。。。 记得刚听说她的时候 我很欣喜 疯狂的手舞足蹈 誓死为她去拼搏。 记得得到第一本书的时候 我失眠了 想解开她的面纱 不断的去思索 记得十月九日的那电话 带来了种种的遗憾 明明有拿奖的水平 却连个考试都考不成 记得十一月份的时候 家里的书可以砸死老鼠 我捧着她们 渐渐入睡 记得元旦左右 学完了基础 是一大转折 我欣喜而又迷茫 感觉无处可去 记得二月份的时候 我望天 我想静心 无奈四处夜光洒洒 却带有灰尘 记得寒假的时候 宅在了家里 在算法世界翱翔 时间不长,学的不多 却达到了普及省一水平 我想继续的拼 却发现无所适从 毕竟初三了 累了 如今 我却想对她 暂时的说 Goodbye 本想随便打打,却随便起来了。。。3.11日。3.12日。我还是选择明天打完全国中小学电脑制作活动的面试词再彻底退役吧。坐这山,望那山,一事无成。然而我却想拿...
桶排序(做题感悟)
关于桶排序的文章,我几乎是没有见过。见过也看不懂===所以只好学会以后自己写一个了。 桶排序特点: 1,桶排序是稳定的 2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下 3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法 桶排序与其他排序的比较: 基数排序,与选择,冒泡,插入排序不同的是,前者都属于【比较性】排序,而基数排序是【分配式】排序,所以他又称”桶排“; 桶排,顾名思义,就是透过数据的部分资讯,将待排序的元素分配至某些【桶】中,从而达到排序的作用,他属于稳定性的排序。 下面用【栗子】来讲吧: Codevs1487 大批整数排序 题目描述 Description !!!CodeVS开发者有话说: codevs自从换了评测机,新评测机的内存计算机制发生变化 计算内存的时候会包括栈空间 swap空间 这题的2M是单指内存空间。。。 十分十分抱歉 抱歉 !!! 现在有一大批(总数不超过10000000个)1到10之间的整数,现在请你从小到大进行排序输出。 (测试数据将超过11MB。) 输入描...