自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lanshan1111的博客

在最终的结果到来之前,任何肯定会赢之类的话都是虚无缥缈的。

  • 博客(134)
  • 收藏
  • 关注

原创 一堆石子合并(变环为线区间dp)

在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分. #include<iostream>#include<cstdio>#include<algorithm>#include<...

2018-08-31 21:34:06 142

原创 石子合并最大最小值(区间dp)

一条直线上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分 #include<stdio.h>#include<string.h>#include<iostream>using namespa...

2018-08-30 21:46:15 1548 1

原创 8月29日总结

最近练区间dp,对区间dp认识更进一步,通常的情况就是区间长度+起点+断点。首先要做的事是预处理,初始化数组,给它特定的含义,给定的意义不同,初始化数组不同,状态转移方程不同。首先要确定状态如何转移,接着初始化数组,然后写状态转移方程,循环进行第一次的时候是以后的基础,逐层进行,最终得到整个区间内的最值。题目通常是在一个区间内定义,让求最值,做过的题要多思考几遍吧,加深一下印象。把做的题总结一...

2018-08-29 20:47:05 169

原创 区间dp入门(light oj 1422 - Halloween Costumes)

给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再用了(可以再穿,但算cost),问至少要带多少条衣服才能参加所有宴会第一步:初始化dp[i][i]为1意思就是这天换新的,从i到i最小换衣数第二步:j从2到n,i从1到j(取不到)先假设从i到j,第j天换衣服则dp[i][j]=dp[i][j-1]+1;假设有k为[i,j),看第k天服装类型是否与j相同,若相同则mi...

2018-08-29 15:34:09 111

原创 区间dp入门(POJ 1651 Multiplication Puzzle)

是n个数相乘,每次从中抽取一个数出来与相邻两个数相乘,直到抽到只剩两个数字,第一个数和最后一个数不能抽。求最小值//想法还是区间dp的模式#include <cstdio>#include <iostream>#include <cstring>using namespace std;int main(){ int i,j,k,l...

2018-08-28 23:52:15 112

原创 8月28日总结+每日一题

今天上了离散数学课、JAVA、数据库课,数据库挺有意思的,JAVA老师教学方式与费老师大不相同,还是要慢慢适应,好好学JAVA,一点不能放松,离散数学会学到一些算法内容,还是要好好听,要仔细听课,做好预习工作,上课早去会,不然就没有好座位了...java的多组输入:while(cin.hasNext()) { a=cin.nextInt(); if(a<0) {...

2018-08-28 18:24:26 132

原创 8月27日总结+每日一题

开学第一天,略感茫然。这个大学并不大,还没东校区方便,就连吃饭也很麻烦,太多人了。人数和面积根本不成正比,怀念大一的日子。今天上了java课,老师竟然让写程序,很多题,还要手写,手写的功夫是真的差,一点没有上机方便,还是大一好啊,已经适应了费老师的学习方式。还上了电子技术基础,学到了二极管的知识,还有一点电子和电流的关系,要仔细分析。那位老师夸费老师的教学方式,也是,大多数老师考试很水,要求比...

2018-08-27 22:46:40 137

原创 ATM机模拟实现STL

#include<bits/stdc++.h>using namespace std;class Times{    private:    int month;    int day;    int hour;    int minute;//组织数据成员日月时分;    public:    Times(int mo,int d,int h,int m);//定...

2018-08-27 22:05:53 651

原创 暑假训练总结

在家呆了两周,和家里一块去玩了两周,感觉时间过得很快吧,清闲的日子总是这样。本来打算把上学期没学好的再学一遍,到最后只是匆匆看了一遍。之后到了实验室,首先看的就是数学。感觉这部分真的是难点而且是重点中的重点,数学题贯穿整个算法体系中,十分重要。一开始是看书,书上的东西看不懂的再查资料,逐渐学到一些东西。整除、同余在水题中经常出现。线性方程与同余也是有很多变式,但是都会是最初的思想。欧几里得扩展...

2018-08-26 21:17:40 170

原创 第四周训练总结

刚开始看的区间dp,区间dp是在一个区间内进行动态规划的一种策略,或者是化环为链,再进行dp,常与三重循环进行,其中最外层经常是区间长度,接着是区间起点,然后是断点。常用代码框架是:for (int len=1; len<n; len++)//按长度从小到大枚举//控制长度; { for (int i=1; i<=n&&i+...

2018-08-26 19:26:27 131

原创 暑假训练8月25日总结

结束了.....有种复杂的心情,开学后还要继续,加油。 

2018-08-25 22:17:40 115

转载 树形dp入门(The More The Better)

 Problem DescriptionACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗? Input每个测试实例首先包括2个整数,N,M.(1 &lt...

2018-08-25 10:28:02 120

原创 暑假训练8月24日总结

今天上午看了一下树形dp,很多题都会用到邻接表储存,于是把邻接表看了一遍,很多题都和图论一些知识结合,还是要把基础知识掌握好,看了几个程序,比较好懂。下午打了一场比赛,还是很弱,弱爆了。仔细看题,加油吧。...

2018-08-24 21:22:48 142

原创 树形dp入门(树形dp+邻接链表hdu 1520)

题意:学校要开一个聚会。学校的教职工之间有上下级关系,为了让所有人开心,宴会组织者决定不会同时邀请一个人和他的上级对于每一个人,他能给聚会带来的欢乐度有一个值,问组织者该邀请哪些人能够使宴会的欢乐度达到最大值。和https://blog.csdn.net/lanshan1111/article/details/81989680和这道题一样#include<stdio.h>#...

2018-08-24 10:54:13 235

原创 树形dp入门(P1352 没有上司的舞会)

某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。输入输出格式输入格式:第一行一个整数N。(1&...

2018-08-23 23:13:42 321

原创 暑假训练8月23日总结

随着校园里人越来越多,于是我知道快要开学了。对于开学,有种复杂的心情,不知道该怎么说,课业繁忙,各种各样的事,好的坏的,都会和自己打个照面。看算法也是一件单纯的事,不喜欢太过麻烦的事情。今天还是看的数位dp,看一编有一遍的收获吧,从最初的看不太懂,到现在逐渐明白,也算是一种进步,但还是要继续看,抽出闲暇的时间或者是小时间空隙看一下某个题目,理解一下它的思想也是一种好的方法。开学后不要放松,学习...

2018-08-23 21:14:59 123

原创 数位dp入门(HDU - 5642 King's Order)

题意:告诉你国王发布的命令长度为n,由26个小写英文字母组成,命令中不能有连续的长度超过3个的重复的字母,比如aaccc是可以的但acccc是不可以的。问最多有多少种不同的命令是国王发出的,结果对1000000007取模。dp[i][1]表示长度为i,末尾有j个相同的字母,由题意知,j只能取1,2,3.dp[i][2]=dp[i-1][1]dp[i][3]=dp[i-1][2]...

2018-08-23 21:06:50 147

原创 数位dp入门(13倍数且含13)

hdu 3652 B-number 题意:求小于n,是13的倍数且含有’13’的数的个数。n<1e9#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;const int N=15;int bit[...

2018-08-23 15:52:59 514

原创 数位dp入门(1比0多+前导零问题)

题意:求一个区间内满足化为二进制后0多于1的数的数量#pragma comment(linker, "/STACK:10240000,10240000")#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<queue>#i...

2018-08-23 11:04:16 663

原创 数位dp入门(HDU 4734)

 题目给了个f(x)的定义:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1,Ai是十进制数位,然后给出a,b求区间[0,b]内满足f(i)<=f(a)的i的个数#include<cstdio>#include<cstring>#include<iostream>#include&lt...

2018-08-23 09:45:51 198

原创 暑假训练8月22日总结

今天写比赛题,感觉就是三个人一块做的时候,如果把题目分好给具体某个人,那做那一个题的时候就会有不管其他题的思想,就会有一些倦怠,有点消磨时间而且准确率不高,有时候也会卡在一个题上,还是要总结一下经验吧,当然个人能力更加重要,希望在下学期里,多抽时间看资料学习。先把基础数据结构里面的内容看一下,很多地方都会用到,不能再像上学期一样了,只会浪费时间,还是要加油吧,一年都过去了。上午又看了数位dp,...

2018-08-22 21:52:04 115

原创 数位dp入门(不含49)

 给一个数字n,范围在1~2^63-1,求1~n之间含有49的数字有多少个。思想:总数-不含49的数;#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm&gt...

2018-08-22 11:43:55 289

原创 数位dp入门(不要62题目)

 统计区间 [a,b] 中不含 4 和 62 的数字有多少个。#include<iostream>#include<cstdio>#include<cstring>using namespace std;int f[8][2],bit[8];/*f[i][j]:i是位数j==0,尾位不是6j==1,尾位是6*/int dfs(int...

2018-08-22 10:58:29 199

原创 Codeforces Round #497 (Div. 2) C.Reorder the Array(贪心+优先队列)

 题意是给了n个数,可以任意去排序,排序后的这个位置上的数要大于排序前的这个位置上的数,问最多有多少个这样的数#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace s...

2018-08-22 10:24:10 145

原创 CodeForce1008B Turn the Rectangles(贪心思维)

B. Turn the Rectanglestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are nn rectangles in a row. You can either turn each...

2018-08-22 09:44:39 166

原创 暑假训练8月21日总结

上午看了一下数位dp模板,发现还是要找好对应的状态,找准状态转移是关键。然后套准模板,自己理解的还是不够深入,还是要多看一下代码,自己推算几遍方程。下午做了一场比赛,一个题卡了很长时间,思路一开始就错了,应该是选取贪心策略,一直按思路不对的方法做,一直卡在那一个点,以后做题要换着思想去看待问题。明天上午看一下数位dp,下午了解一下树形dp....

2018-08-21 21:19:04 105

原创 HDU 3555含有49(数位dp)

题目地址:HDU 3555题意: 问(0, n]里面有几个数有'49'这个子串#include <iostream>#include <cstring>#include <deque>#include <cmath>#include <queue>#include <stack>#include <li...

2018-08-21 21:10:11 138

转载 数位dp思想

<数位DP>    所谓数位DP就是基于考虑数字的每一位来转移的DP。    例如求比456小的数,可以这么考虑,        4          5               6          4        5             (0~6)        4       (0~4)         (0~9)        (0~3)(0~...

2018-08-21 20:53:48 158

转载 数位dp思想

一、基础篇——介绍 1、概念:     数位dp是一种计数用的dp,一般就是要统计一个区间  [A , B ] 内满足一些条件数的个数。     所谓数位dp,字面意思就是在数位上进行dp。     数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!     之所以要引入数位的概念完全就是为了dp。数位dp的实质就是  换一种暴力枚举的方式,使得新...

2018-08-21 09:42:38 203

原创 暑假训练8月20日总结

上午看了一下状压dp,其中的二进制思想还没有理解得很清楚,但是大多题套路差不多,争取明天请教别人弄懂这个思想,位运算也很重要,经常出现在题目中。下午转战数位dp,数位dp也和深度优先搜索有很大联系,这几种dp都和深搜有点关系,还是要多看多想。数位dp感觉比状压简单点,数的分解加上深搜构成了很多题的代码。明天争取弄懂状压dp的二进制枚举思想,做几道题巩固一下。...

2018-08-20 21:36:18 127

原创 数位dp大体模板(含13且是13倍数的数)

模板:https://blog.csdn.net/wust_zzwh/article/details/52100392typedef long long ll;int a[20];ll dp[20][state];//不同题目状态不同ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要判断前导...

2018-08-20 20:32:25 322

原创 不要62(数位dp普通写法和模板写法)

多组数据,每次给定区间[n,m],求在n到m中没有“62“或“4“的数的个数。如62315包含62,88914包含4,这两个数都是不合法的。0<n<=m<1000000//https://blog.csdn.net/zhangxian___/article/details/75304335假设我们现在把x分成了a1,a2,...,aL这样一个数组,长度为L,aL是最高...

2018-08-20 16:43:48 3940 1

原创 Vijos--最小总代价(状压DP)

//第一天学状压dp描述 n个人在做传递物品的游戏,编号为1-n。游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位;下一个人可以传递给未接过物品的任意一人。即物品只能经过同一个人一次,而且每次传递过程都有一个代价;不同的人传给不同的人的代价值之间没有联系; 求当物品经过所有n个人后,整个过程的总代价是多少。格式 输入格式 第一行为n,表示共...

2018-08-20 15:27:08 150

原创 第三周训练总结

匆匆忙忙又过了一个周末,感觉时间走的太快太快。这周训练的东西主要是dp,首先看了一下经典dp,把大体思想温习了一遍,这一部分还是要多思考、不能只看现成的代码,这样只会让自己认为这样是理所当然,应自己从问题入手,弄清问题的初始状态(初始化)、转移状态(列出方程)及尾状态。初始状态要根据具体问题来确定,确定好初始dp方程,然后根据题意和经验确定状态转移方法写出方程(难点),这还是需要多想多练,只说...

2018-08-19 19:11:06 201

原创 凸多边形三角划分(区间dp找状态转移方程)

给定一个具有N(N<=50)个顶点(从1到N编号)的凸多边形,每个顶点的权值已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权值的乘积之和最小。dp[i][j]表示i-j的凸多边形划分后得到的最值;状态转移方程为dp[i][j]=dp[i][k]+dp[k][j]+a[i]*a[k]*a[j];#include <cstdio>#in...

2018-08-19 17:10:57 382

原创 整数划分(区间dp)

暑假来了,hrdv又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到了一个难题,让他百思不得其解,他非常郁闷。。亲爱的你能帮帮他吗?问题是我们经常见到的整数划分,给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积输入第一行是一个整数T,表示有T组测试数据接下来T行,每行有两个正整数 n,m ( 1&...

2018-08-19 15:53:12 262

原创 POJ 2955-Brackets(括号匹配区间DP)

题目大意:给出一个的只有’(‘,’)’,’[‘,’]’四种括号组成的字符串,求最多有多少个括号满足匹配。 思路:用dp[i][j]表示区间i~j的最大匹配数,对于dp[i][j] = dp[i + 1][j - 1] + (s[i]和s[j]匹配?2 : 0),开始时dp[i][j]均为0。 代码如下:#include <cstdio>#include <iostre...

2018-08-19 10:57:29 178

原创 暑假训练8月18日总结

在以后的学习中,自己总结、反思一些所学才是自己的东西,不要继续被动下去了。多想一下为什么会是这样,而不是强化它就是这样、它就应当这样。每天问一下自己学到了什么、学的东西是什么意义、用在哪里、思考一下,相信在算法和学习中都会有所收获。积极的思考所学到的东西,把问题背后的规律看透,即使是第一遍看不懂,经常看、经常想、多积极思考,时间长了总会明白。区间dp比昨天进步很大,今天算是快入门了,今天看过的...

2018-08-18 22:03:01 121

原创 一堆石子合并(环形拆分为链区间dp)

在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.#include<cstdio> #include<cstring> #include<algorithm> #include&lt...

2018-08-18 21:52:51 302

原创 Generating Palindromes - lightOJ 1033(区间dp)

题意给出一个字符串,问最小所需的字符数量使得插入这些字符后,该字符串成为回文串回文串+区间dp,dp[i][j]表示使给定字符串的i-j段成为回文串的最小插入字符数量, 在记忆化搜索中有三类情况,一种是i>=j,i>j的段是无意义的,而i=j的段本身肯定是回文,不需插入字符,都是0,之后分c[i]=c[j]和c[i]!=c[j]两类情况,如果c[i]=c[j],继续往这段字符...

2018-08-18 17:16:50 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除