CodeForces
来源:互联网 发布:网络语言利弊百度知道 编辑:程序博客网 时间:2024/06/11 00:49
题意有点恶心,总结为: 每个点有一个值,这个值的定义是 这个点的度数(也就是有几个点跟他连着) * 从这个点往后找连着的编号递减的链长度
度数好算,输入时出现的次数就是度,,至于编号递减的链 在建边的时候建成有向边,从编号大的指向小的,
本来想跑dfs,后来发现从小的编号开始,直接一个递推过程就算完了
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>using namespace std;typedef long long ll;const int maxn = 1e5 + 7, INF = 0x7f7f7f7f, mod = 1e9 + 7;int n, m;vector <int> vec[maxn];int g[maxn] = {0}, len[maxn];void init() { scanf("%d %d", &n, &m); for(int i = 0; i < m; ++i) { int u, v; scanf("%d %d", &u, &v); g[u]++; g[v]++; if(u > v) { vec[u].push_back(v); } else { vec[v].push_back(u); } }}int dfs(int id, int cnt) { int ans = cnt; for(int i = 0; i < vec[id].size(); ++i) { ans = max(ans, len[vec[id][i]]); } return ans+1;}void solve() { ll ans = 0LL; memset(len, 0, sizeof len); for(int i = 1; i <= n; ++i) { len[i] = dfs(i, 0); ans = max(ans, (ll)g[i] * (ll)len[i]); //cout << " == " << g[i] << " " << len[i] << " == " << endl; } cout << ans << endl;}int main() { init(); solve(); return 0;}
阅读全文
1 0
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- 构建springboot的命令行模式
- 国资监管系统问题整理
- 音频视频自动提取字幕(extract subtitle from audios and vedios)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- java创建以任意图片为背景的窗口
- CodeForces
- MySQL连表操作和GROUP_CONCAT函数的使用
- TA成长记录
- 内存检测工具使用(Linux、VS)
- 使用thinkphp时遇到Namespace declaration statement has to be the very first statement in the script
- Python字符串(Str)详解
- iOS四种方法读取文件内容
- linux下集群方案(同机 不同机)
- 测试web网页各地区网址