不懂就问
  • 板块学术版
  • 楼主Luka__Modric
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/3/4 20:20
  • 上次更新2024/3/4 22:09:22
查看原帖
不懂就问
839893
Luka__Modric楼主2024/3/4 20:20
#include <bits/stdc++.h>
using namespace std;
int n,m,si[200010];
struct node{
	int x,y;
}a[400010];
vector<int>v[200010];
bool cmp(node x,node y){
	if(x.x<y.x)
		return true;
	if(x.x==y.x)
		return x.y<y.y;
	return false;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++)
		cin>>a[i].x>>a[i].y;
	for(int i=1;i<=m;i++)
		v[a[i].x].push_back(a[i].y),v[a[i].y].push_back(a[i].x);
	for(int i=1;i<=n;i++){
		si[i]=1;
		for(int j=0;j<v[i].size();j++)
			if(v[i][j]<i)
				si[i]=max(si[v[i][j]]+1,si[i]);
	}
	long long ans=0;
	for(int i=1;i<=n;i++){
		long long tmp=v[i].size();
		ans=max(ans,si[i]*tmp);
	}
	cout<<ans;
    return 0;
}





/*
       ┏┓   ┏┓
     ┏┛┻━━━┛┻┓
     ┃       ┃
     ┃   ━   ┃
     ┃ ┳┛ ┗┳ ┃
     ┃       ┃
     ┃   ┻   ┃
     ┃       ┃
     ┗━┓   ┏━┛Codes are far away from bugs with the animal protecting
         ┃   ┃    神兽保佑,代码无bug
         ┃   ┃
         ┃   ┗━━━┓
         ┃      ┣┓
         ┃     ┏┛
         ┗┓┓┏━┳┓┏┛
           ┃┫┫ ┃┫┫
           ┗┻┛ ┗┻┛     ○| ̄|_

*/
#include <bits/stdc++.h>
using namespace std;
int n,m,si[200010],x,y;
vector<int>v[200010];
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
	    cin>>x>>y;
	    v[x].push_back(y),v[y].push_back(x);
	}
	for(int i=1;i<=n;i++){
		si[i]=1;
		for(int j=0;j<v[i].size();j++)
			if(v[i][j]<i)
				si[i]=max(si[v[i][j]]+1,si[i]);
	}
	long long ans=0;
	for(int i=1;i<=n;i++){
		long long tmp=v[i].size();
		ans=max(ans,si[i]*tmp);
	}
	cout<<ans;
    return 0;
}


/*
       ┏┓   ┏┓
     ┏┛┻━━━┛┻┓
     ┃       ┃
     ┃   ━   ┃
     ┃ ┳┛ ┗┳ ┃
     ┃       ┃
     ┃   ┻   ┃
     ┃       ┃
     ┗━┓   ┏━┛Codes are far away from bugs with the animal protecting
         ┃   ┃    神兽保佑,代码无bug
         ┃   ┃
         ┃   ┗━━━┓
         ┃      ┣┓
         ┃     ┏┛
         ┗┓┓┏━┳┓┏┛
           ┃┫┫ ┃┫┫
           ┗┻┛ ┗┻┛     ○| ̄|_

*/

第一份代码比第二份多了一次for循环为什么反而更快(C++14,开O2

2024/3/4 20:20
加载中...