提出 #73929150
ソースコード 拡げる
/*Sin_qwq's code
We can be heros , just for one day .*/
#include <bits/stdc++.h>
#define LD long double
#define i7 __int128
#define re return
#define con continue
#define ci const int
#define all(x) x.begin(), x.end()
#define All(x) x.begin() + 1, x.end()
using namespace std;
typedef long long i64;
template <class T>
inline bool ckmin(T &a, T b) { re b < a ? a = b, 1 : 0; }
template <class T>
inline bool ckmax(T &a, T b) { re a < b ? a = b, 1 : 0; }
vector<string> ans;
vector<int> a;
map<int, int> cnt;
vector<vector<int>> adj;
bool has_dup; // 标记当前路径是否已有重复
// 新增:回溯时恢复has_dup的状态
void dfs(int u, int parent)
{
bool cur_dup = false; // 记录当前节点是否导致重复
bool prev_has_dup = has_dup; // 保存进入节点前的has_dup状态
// 第一步:判断当前节点的答案
if (has_dup)
{
// 路径已有重复,直接输出Yes
ans[u] = "Yes";
}
else
{
if (cnt[a[u]] >= 1)
{
// 当前节点数值重复,标记路径有重复
ans[u] = "Yes";
has_dup = true;
cur_dup = true;
}
else
{
// 无重复
ans[u] = "No";
}
}
// 第二步:将当前节点加入计数
cnt[a[u]]++;
// 第三步:遍历子节点
for (auto v : adj[u])
{
if (v != parent)
{
dfs(v, u);
}
}
// 第四步:回溯
cnt[a[u]]--;
if (cnt[a[u]] == 0)
{
cnt.erase(a[u]);
}
// 恢复has_dup:只有当前节点导致的重复,才恢复
if (cur_dup)
{
has_dup = prev_has_dup;
}
}
void work()
{
int n;
cin >> n;
ans.resize(n + 1);
a.resize(n + 1);
adj.resize(n + 1);
has_dup = false; // 初始路径无重复
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
for (int i = 1; i <= n - 1; i++)
{
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1, -1);
for (int i = 1; i <= n; i++)
{
cout << ans[i] << '\n';
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr); // 加速输出
int T = 1;
// cin>>T;
while (T--)
{
work();
}
re 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Integer-duplicated Path |
| ユーザ | Sin_qwq |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 400 |
| コード長 | 2482 Byte |
| 結果 | AC |
| 実行時間 | 257 ms |
| メモリ | 52348 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | hack_01.txt, hack_02.txt, hack_03.txt, hack_04.txt, hack_05.txt, hack_06.txt, sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| hack_01.txt | AC | 189 ms | 38680 KiB |
| hack_02.txt | AC | 193 ms | 38712 KiB |
| hack_03.txt | AC | 60 ms | 24856 KiB |
| hack_04.txt | AC | 59 ms | 24764 KiB |
| hack_05.txt | AC | 131 ms | 36252 KiB |
| hack_06.txt | AC | 134 ms | 36244 KiB |
| sample_01.txt | AC | 2 ms | 6344 KiB |
| sample_02.txt | AC | 2 ms | 6456 KiB |
| sample_03.txt | AC | 2 ms | 6344 KiB |
| test_01.txt | AC | 2 ms | 6408 KiB |
| test_02.txt | AC | 2 ms | 6404 KiB |
| test_03.txt | AC | 257 ms | 52320 KiB |
| test_04.txt | AC | 253 ms | 52188 KiB |
| test_05.txt | AC | 242 ms | 52348 KiB |
| test_06.txt | AC | 208 ms | 48328 KiB |
| test_07.txt | AC | 87 ms | 42824 KiB |
| test_08.txt | AC | 81 ms | 42940 KiB |
| test_09.txt | AC | 62 ms | 24800 KiB |
| test_10.txt | AC | 63 ms | 24920 KiB |
| test_11.txt | AC | 60 ms | 25036 KiB |
| test_12.txt | AC | 59 ms | 24852 KiB |
| test_13.txt | AC | 60 ms | 24912 KiB |
| test_14.txt | AC | 50 ms | 25036 KiB |
| test_15.txt | AC | 89 ms | 24144 KiB |
| test_16.txt | AC | 90 ms | 24176 KiB |
| test_17.txt | AC | 89 ms | 24144 KiB |
| test_18.txt | AC | 89 ms | 24252 KiB |
| test_19.txt | AC | 68 ms | 24288 KiB |
| test_20.txt | AC | 64 ms | 24156 KiB |
| test_21.txt | AC | 77 ms | 25660 KiB |
| test_22.txt | AC | 75 ms | 24560 KiB |
| test_23.txt | AC | 72 ms | 25228 KiB |
| test_24.txt | AC | 73 ms | 25404 KiB |
| test_25.txt | AC | 62 ms | 24760 KiB |
| test_26.txt | AC | 61 ms | 25660 KiB |
| test_27.txt | AC | 233 ms | 45068 KiB |
| test_28.txt | AC | 188 ms | 32880 KiB |
| test_29.txt | AC | 218 ms | 44536 KiB |
| test_30.txt | AC | 186 ms | 41328 KiB |
| test_31.txt | AC | 75 ms | 34356 KiB |
| test_32.txt | AC | 75 ms | 36704 KiB |
| test_33.txt | AC | 189 ms | 35132 KiB |
| test_34.txt | AC | 222 ms | 45488 KiB |
| test_35.txt | AC | 198 ms | 39932 KiB |
| test_36.txt | AC | 138 ms | 27088 KiB |
| test_37.txt | AC | 83 ms | 40116 KiB |
| test_38.txt | AC | 69 ms | 28572 KiB |