結果
| 問題 | No.1103 Directed Length Sum |
| コンテスト | |
| ユーザー |
forest3
|
| 提出日時 | 2020-07-04 22:23:29 |
| 言語 | C++14 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 626 ms / 3,000 ms |
| コード長 | 884 bytes |
| 記録 | |
| コンパイル時間 | 1,321 ms |
| コンパイル使用メモリ | 196,456 KB |
| 実行使用メモリ | 69,888 KB |
| 最終ジャッジ日時 | 2026-04-08 01:03:14 |
| 合計ジャッジ時間 | 9,841 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 22 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:19:13: warning: 'r' may be used uninitialized [-Wmaybe-uninitialized]
19 | int r;
| ^
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N;;
cin >> N;
vector<int> in( N );
vector<vector<int>> g( N );
for( int i = 0; i < N - 1; i++ ) {
int A, B;
cin >> A >> B;
A--;
B--;
g[A].push_back( B );
in[B]++;
}
int r;
for( int i = 0; i < N; i++ ) {
if( in[i] == 0 ) r = i;
}
vector<long long> l( N );
typedef pair<int, int> P;
queue<P> que;
que.push( P( r, 0 ) );
while( !que.empty() ) {
int i, len;
tie( i, len ) = que.front();
que.pop();
l[i] = len;
for( int e : g[i] ) {
que.push( P(e, len + 1) );
}
}
const long long MOD = 1000000000 + 7;
long long ans = 0;
queue<int> que1;
que1.push( r );
while( !que1.empty() ) {
int i = que1.front();
long long a = l[i];
que1.pop();
for( int e : g[i] ) {
que1.push( e );
l[e] += a;
l[e] %= MOD;
ans += l[e];
ans %= MOD;
}
}
cout << ans << endl;
}
forest3