自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈颜的博客

公众号『陈颜Blog』

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

原创 uva662DP+回溯

前言少输出个字母s,好不容易看出来了,然后提交的时候又没注释文件读写,对拍的时候又造错数据,AC代码数组越界了,debug半天才发现原来写的就是对的。题目有n(<=200)个餐厅位于x轴上。有m(<=30)个供应商,每个供应商可以选择x轴上的一个位置,为任意k个餐厅提供供应。一个供应商的花费为他到所有他供应的餐厅的距离之和。问每个餐厅都要有一家供应商提供供应,所有供应商的最小花费和是多少。所有餐厅和供应商都在整数点上。解题思路dp[i][j]dp[i][j]dp[i][j]表示前i

2021-04-30 11:13:33 146

原创 牛客某不知名笔试思维+二分+后缀最大值

题目大意小Z组织训练营同学进行一次拔河比赛, 要从n(2<=n<=60,000)个同学中选出两组同学参加(两组人数可能不同) .对每组同学而言,如果人数超过1人,那么要求该组内的任意两个同学的体重之差的绝对值不超过k (包含k)。问最多有几个同学能参加比赛?输入描述:第一行为两个整数n和k (0<=k<=1e9)接下来是n行,每行一个正整数,表示每个同学的体重,保证均为正整数且不超过1e9。解题思路先排序。然后枚举起点,二分出最大终点。对于每个位置iii,得到三个属性R

2021-04-30 08:32:38 141

原创 uva10269_SPFA思想+DP转移

题目题目大意:有n个村庄和m个城堡,编号从1到n+m,给出一个有权图,没有自环和重边。马里奥走一个单位距离需要一个单位时间。起点为城堡n+m,终点为乡村1。马里奥可以瞬移K次,每次瞬移不超过距离L,且起点和终点必须为村庄或城堡、到达一个城堡时必须结束当前瞬移。求到达村庄1的最小花费时间。详见uva10269解题思路DP[i][j][k]DP[i][j][k]DP[i][j][k]表示到达城市iii,还剩jjj次瞬移机会,上次瞬移机会还剩下kkk单位距离可以使用。分类讨论,状态过多,具体看代码注释。

2021-04-28 15:49:23 162

原创 uva1291简单DP

题目详见题目uva1291解题思路就题面略长,枚举所有状态,DP暴力转移即可。代码#include <bits/stdc++.h>using namespace std;int dp[1000010][6][6]; //dp[i][j][k] 前i个动作,左脚在j上, 右脚在k上的最小花费int a[1000010];int f(int x, int y) //计算花费{ if (x == y) return 1; if (x == 0)

2021-04-27 21:16:30 154

原创 uva10453动态规划+递归回溯

题目给一个字符串,可以在任意位置增加任意字符,求最小增加多少个字符使字符串变成回文串,并输出一种方案。求最小代价的题已经写过了,这题只需要状态转移的时候记录路径。(实际上好抽象,想不明白,不过瞎调调出来了… …代码#include <bits/stdc++.h>using namespace std;struct node{ int L, R; char V;} opt[1010][1010];char s[1010];string v1[1010];s

2021-04-21 21:28:07 139

原创 uva10617回文子序列数量动态规划

题目给定一个字符串(len<=60),求回文子序列数量解题思路区间DP,dp[i][j]表示区间[i,n]的回文子序列数量。初始化memset(dp, 0, sizeof dp);for (int i = 1; i <= n; i++) dp[i][i] = 1;for (int i = 1; i < n; i++) dp[i][i + 1] = (s[i] == s[i + 1] ? 3 : 2);状态转移:如果s[l]==s[r]s[l]==s[r]

2021-04-21 16:17:49 153

原创 uva10759动态规划+重载运算符

题目问,扔n次骰子,总点数在x次以上的概率是多少,n ≤ 24 、0 ≤ x < 150。解题思路用小数表示这题就很简单。换成用分数形式表示,只需要手写一下分数运算符即可。代码#include <bits/stdc++.h>using namespace std;struct node{ long long a, b; node operator*(const int &temp) const//乘法等价于乘分子 { nod

2021-04-20 20:23:32 125

原创 uva10739经典动态规划

题目 给出一个字符串,长度小于一千。你可以执行三种操作:删除一个字符增加一个字符修改一个字符问,最少执行多少次操作可以使原字符串变成回文字符串。解题思路dp[i][j]dp[i][j]dp[i][j]表示将区间[i,j][i,j][i,j]修改成回文串的最小花费。由于dpdpdp的性质,当求dp[i][j]dp[i][j]dp[i][j]时,dp[i+1][j−1]dp[i+1][j-1]dp[i+1][j−1]、dp[i+1][j]dp[i+1][j]dp[i+1][j]、dp[i][

2021-04-20 20:22:35 361

原创 HDU1811并查集+拓扑排序

题目Rank of Tetris自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。终于,Lele要开始行动了,对N个人进行排名。为了方便起见,每个人都已经被编号,分别从0到N-1,并且编

2021-04-20 10:10:33 153

原创 MySQL基础学习笔记

课程引入常见的数据库管理系统有MySQL、Oracle、DB2、SqlServer。程序员在客户端程序,通过数据库管理系统,对数据进行增删改查。其中,MySQL由于开源、免费等因素,是当前最受欢迎的数据库管理系统。淘宝、网易、百度、Facebook等众多互联网公司都在使用MySQL,学精了MySQL,就业市场广阔。为什么要学数据库将数据存放在内存中不能持久化存储,存放在普通文件中不方便管理。数据库管理系统的好处:实现数据持久化使用完整的管理系统统一管理,易于查询数据库相关概念DB:数据库

2021-04-10 17:44:51 319

原创 洛谷P1137旅行计划

题目题目链接解题思路拓扑排序+DP求以v为终点的最长路径。(拓展:反向建图可以求以v为起点的最长路径)AC代码#include <bits/stdc++.h>using namespace std;struct node{ int v, next;} edge[200010];int degree[100010];int vis[100010];int dp[100010];int head[100010], ct = 1;void add(int u,

2021-04-09 15:33:38 236

原创 UVA437巴比伦塔

题目原题链接巴比伦人有n种长方形方块,每种有无限个,第i种方块的三边边长是xi,yi,zi。对于每一个方块,你可以任意选择一面作为底,这样高就随着确定了。举个例子,同一种方块,可能其中一个是竖着放的,一个是侧着放的,一个是横着放的。他们想要用堆方块的方式建尽可能高的塔。问题是,只有一个方块的底的两条边严格小于另一个方块的底的两条边,这个方块才能堆在另一个上面。这意味着,一个方块甚至不能堆在一个底的尺寸与它一样的方块的上面。解题思路对于每种长方体,总共有三种摆放方式尺寸相同且摆放方式相同的长方体

2021-04-09 11:02:22 345

原创 关于Dijkstra求最长路

前言今天下午训练赛有一题求最短路和最长路的题,由于基础不够扎实,天真地以为改一下松弛操作、重载一下优先队列即可。事实上,经典Dijkstra并不能求最长路。经典Dijkstra不能求最长路原理在经典Dijkstra中,根据贪心思想,我们每次使用一个距离源点最短的点A来松弛其他点,并且保证了这个操作每个点只会进行一次,也即每个点有且仅有一次作为点A(除了距离最远的点,因为最后一点被松弛完整个算法就结束了)。众所周知,迪杰斯特拉的使用条件是图中不存在负边。这是因为在不存在负边权的图中,最短路有子结构,子

2021-04-01 11:47:07 8292 5

空空如也

空空如也

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

TA关注的人

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