51nod 1274 最长递增路径

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作表的数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 数据24 24 数据25 25 数据26 26 数据27 27 数据28 28 数据29 29 数据30 30 数据31 31 数据32 32 数据33 33 数据34 阅读详情

DP题,不过写得有点奇怪。。。

将边按边权值排序,dp[x]表示走到x点为止的最长路径。然后不断转移。需要注意的是边权值相等时,应该从边权值更小的地方转移,而非边权值等价的地方转移。每个节点打个 修改时间标记,并记录修改之前的数据,就可以解决这个问题。

#include<bits/stdc++.h>
using namespace std;

const int MAXN=50050;
int dp[MAXN],tim[MAXN],bef[MAXN];

struct edge
{
	int x,y,w;
	bool friend operator ==(edge e1,edge e2)
	{
		return e1.w==e2.w&&((e1.x==e2.x&&e1.y==e2.y)||(e1.x==e2.y&&e1.y==e2.x));
	}
}e[MAXN];

bool cmp(edge e1,edge e2)
{
	return e1.w<e2.w;
}

int main()
{
	int n,m,i,ans,tmp;
	while(~scanf("%d%d",&n,&m))
	{
		for(i=0;i<m;i++)
			scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].w);
		sort(e,e+m,cmp);
		m=unique(e,e+m)-e;
		memset(dp,0,sizeof(dp));
		memset(tim,-1,sizeof(tim));
		memset(bef,0,sizeof(bef));
		for(i=0;i<m;i++)
		{
			if(tim[e[i].y]<e[i].w)
				tmp=max(dp[e[i].x],dp[e[i].y]+1);
			else
				tmp=max(dp[e[i].x],bef[e[i].y]+1);
			if(tim[e[i].x]<e[i].w)
			{
				bef[e[i].x]=dp[e[i].x];
				tim[e[i].x]=e[i].w;
			}
			dp[e[i].x]=tmp;
			
			if(tim[e[i].x]<e[i].w)
				tmp=max(dp[e[i].y],dp[e[i].x]+1);
			else
				tmp=max(dp[e[i].y],bef[e[i].x]+1);
			if(tim[e[i].y]<e[i].w)
			{
				bef[e[i].y]=dp[e[i].y];
				tim[e[i].y]=e[i].w;
			}
			dp[e[i].y]=tmp;
		}
		ans=0;
		for(i=0;i<n;i++)
			ans=max(ans,dp[i]);
		printf("%d\n",ans);
	}
}

PCL 计算点云包围球【2025最新版】 包围球通常用于简单排斥,因为与球体相交的方程很简单,同样重要的是,旋转一个球体并不会改变其范围。因此,当包围球用于简单排斥时,如果球体中心是对象的原点,则可以忽略对象的方向。 阅读详情

相关推荐

奥顺居PHP测算引流SEO程序_八字风水_起名解梦_星座生肖综合门户源码

奥顺居PHP测算引流SEO程序_八字风水_起名解梦_星座生肖综合门户源码 S30新框架适合多种奥顺插件。

xl1407的博客 1752

【题解】最长递增路径 [51nod1274]

【题解】最长递增路径 [51nod1274] 传送门:最长递增路径 \([51nod1274]\) 【题目描述】 一个可能有自环有重边的无向图,每条边都有边权。输入两个整数 \(n,m\) 表示一共 \(n\) 个点,\(m\) 条边并且给出 \(m\) 条边的信息:连接点 \(x,y\),边权为 \(w\)。你可以从任何点出发,任何点结束,可以经过同一个点任意次,但是同一条边不能经过多...

aiauw80822的博客 207

MIPI DSI2接口开发避坑指南:以RK3576的GM8775C桥接芯片调试为例

本文以RK3576平台搭配GM8775C桥接芯片为例,深入剖析MIPI DSI2接口开发中的常见问题与解决方案。文章详细解读了从U-Boot阶段到内核DRM驱动架构的完整显示通路构建,重点分享了电源时序管理、寄存器配置与硬件协同调试等实战经验,为嵌入式显示系统开发者提供了一套系统化的避坑指南和调试方**。

weixin_29290379的博客 329

【51nod 1274】最长递增路径(DP)

给你一个无向图,边有边权,然后要你找到一条路径使得可以有重复点但是不会有重复边,走过的边权值严格单调递增。 然后问你这条路径的最长长度。

欢迎您的光顾awa 262

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4045

【PCL】SolidWorks 三维建模 STL, OBJ 采样生成 PCD 点云数据(附源码)

[PCL自学篇] 一.SolidWorks三维建模STL,OBJ采样生成PCD点云数据新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 这阵子做线结构光视觉检测(轨道)项目的过程中,发现之前的许多知识点在逐渐遗忘,常言好记性

idiot5lie的博客 1万+

51Nod-1274-最长递增路径

ACM模版描述题解图上 dp,由于要求严格递增,所以需要先对边权进行排序,保证每次添加边权都递增,但是这样并不能保证严格递增,存在相同长度的边时,我们需要记录下来一同处理,保证他们在添加时互不影响,这样就没什么问题了。代码#include <cstdio> #include <algorithm>using namespace std;const int MAXN = 5e4 + 10;struct

逐梦者 857

QT触摸屏开发:如何通过重写事件处理实现精准按键长按检测

本文针对QT触摸屏开发中按键长按检测不精准的常见问题,深入剖析了传统信号机制失效的原因,并提供了通过重写事件处理函数(event)的解决方案。文章详细介绍了创建自定义TouchButton类、直接处理QTouchEvent以实现可靠长按检测的完整步骤与代码示例,并分享了进阶优化与避坑指南,帮助开发者实现跨平台一致的精准交互。

weixin_29207149的博客 95

51nod 1274 最长递增路径(dp)

题目链接 定义dp[i]:走到顶点i的最长路径。 为了动态规划的无后效性,得先把边按权值排序。为了不让顶点之间的dp值重复计算,得把上一次的dp值保存下来。由于需要严格递增,所以权值相同的边用到的dp值是一样的,所以可以一次把所有权值相同的边一起加入图里,然后更新答案。 dp[u]=max(dp[u],f[v]+1)dp[u] = max(dp[u], f[v] + 1)dp[u]=max(dp[u],f[v]+1) dp[v]=max(dp[v],f[u]+1)dp[v] = max(dp[v], f[u

wulalalawu的博客 250

CTP-API开发系列之三:柜台系统简介

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。接下来分享的内容,对于期货公司的负责交易、运维同事会比较熟悉,针对CTP-API接口对接的朋友可以了解一下,在接口之上的系统是怎样的。

码上助君的专栏 6200

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解

本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。

weixin_29161719的博客 139

[DP] 51 Nod 1274——最长递增路径

题目描述一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。 以此图为例,最长的路径是: 3 -> 1 -> 2 -> 3 -> 2 或 3 -> 1 -> 2 -> 3 -> 4 长度为4。解题思路很自然想到将边排序。 然后DP。 但是

CHN_JZ的博客 750

告别密码!用VScode+SSH一键连接树莓派,再也不用每次输密码了

本文详细介绍了如何通过VScode和SSH密钥实现树莓派的免密连接,告别繁琐的密码输入。从开发环境准备、SSH密钥生成与配置,到VScode远程连接优化和常见问题排查,提供了一套完整的解决方案,帮助开发者提升工作效率。

weixin_28831341的博客 172

[51nod1274]最长递增路径

Description一个无向图,每条边有一个边权。可以从任何点出发,任何点结束,可以经过同一个点任意次。走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。 n,m<=50000Solution既然它是要求严格单调递增,那么我们就可以直接Dp了。 不会有后效性。 把所有边排一遍序,然后就可以了。Code#include<cstdio> #include<cstring> #inc

时光真疯狂, 我一路执迷于匆忙. 1351

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【51Nod1274】最长递增路径

一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。以此图为例,最长的路径是: 3 -> 1 -> 2 -> 3 -> 2 或 3 -> 1 -> 2 -> 3 -> 4 长度为4。 Input 第1行:2个数N, M,N为节点的数量,M为边的

wang_sj的博客 507

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

51nod-1274 最长递增路径

原题链接 1274 最长递增路径 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权

L. 578

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

题解 [51nod1274] 最长递增路径

题面 解析 这题一眼DP啊. 然而想了半天毫无思路. 后来看题解后发现可以按边权的大小顺序DP. 将边权从小到大排序,对于权值相同的边分为一组. 设\(f[i][0]\)表示经过当前权值的边后到达\(i\)的最长路, \(f[i][1]\)表示经过之前的权值的边后到达\(i\)的最长路. 那么对于一条边\(x,y\), \(f[x][0]=max(f[x][0],f[y][1]+1\))...

weixin_30911809的博客 170

51nod 1274 最长递增路径[dp]

题面 题意:给定一张有重边有自环的无向图,求一条最长的路径使路径的权值严格单调递增把边从小到大排序后直接推 注意一下边权相同的就好了#include<cstdio> #include<algorithm> #define N 50000 using namespace std;struct edge { int x,y,z; bool operator < (const edge

sillyf的博客 320

51NOD 1274 最长递增路径

题目大意有一个有n个点m条边的带权无向图,求所有边权值严格递增的路径中最长的长度。 (1<=n,m<=50000)直观思路动态规划,设f(i,j)为以点i为终点,最后一条走过的边长度为j的路径最长长度,那么这样的转移是O(nm)的,显然超时优化如果我们保证加入的边一定比之前加入的边大,那么我们完全可以去掉第二维,于是可以按边的权值排序,然后dp贴个代码,实现挺简单的:#include<cstrin

samjia2000的博客 952

51nod 1274 最长递增路径【DP】

Description一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。以此图为例,最长的路径是:3 -> 1 -> 2 -> 3 -> 2 或3 -> 1 -> 2 -> 3 -> 4 长度为4。题解由于要求严格递增,所以直接按照边权排序刷DP就可

Sdywolf的博客 401

51nod 1274 最长递增路径(dp)

第一次做图上的dp,猛一看还真有点懵,不过看看讨论,看看别人的代码,也就想通了。 参考:http://blog.youkuaiyun.com/f_zyj/article/details/70238725#include <iostream> #include <algorithm> using namespace std;struct Edge { int s,e,w; }; const int MA

梦幻的蔷薇色 398

【DP】51Nod 1274 最长递增路径

题面在这里好题啊……肯定会有这样的DP:fi,jf_{i,j}表示终点是i,最大边权为j的最长路径然而就算离散后还是O(ne)O(ne)的其实可以直接对边排序,边权的那一维就可以省去了Tips:以后遇到边权递增的题目,第一想到对边排序值得注意的是,边权相同的边必须同时转移,不能有先后修正的关系示例程序:

linkfqy 729

51nod 1274 最长递增路径【dp】

1274 最长递增路径 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。 以此图

mengxiang000000 631

【51nod 1274】 最长递增路径 (dp)

**题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题** 一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。 以此图为例,最长的路径是: 3 -&gt; 1 -&gt; 2 ...

Coldfresh的博客 410

51Nod 1274 - 最长递增路径(DP)

【题目描述】 【思路】 如果是有向图,那么可以把边按照从小到大排序,然后设 dp[i]dp[i]dp[i] 以 iii 为终点的最长距离。有 dp[u]=max{dp[u],dp[v]+1∣(u,v)∈E}dp[u]=max\{dp[u],dp[v]+1|(u,v)\in E\}dp[u]=max{dp[u],dp[v]+1∣(u,v)∈E} 而在无向图中,对于无向边 (u,v)(u,v)(u,...

Change the world by program. 337
上一篇: 51nod 1140 矩阵相乘结果的判断
下一篇: 51nod 1556 计算
欣君
博客等级 码龄10年 309粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值