1. 程式人生 > >鄭輕ACM 1734: 堆(DFS)

鄭輕ACM 1734: 堆(DFS)

Description

Input

Output

Sample Input

3110310 5 31 21 351 2 3 4 53 12 12 42 5

Sample Output

YesNoYes
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#define mem(_, __) memset(_, __, sizeof(_));
const int maxn = 111;

using namespace std;

int a[maxn], T, n, x, y;
bool flag, vis[maxn][maxn], v[maxn];

void DFS(int x, int sum)
{
    if (sum == n - 1)
    {
        return ;
    }
    for (int i = 1; i <= n; i ++)
    {
        if (i == x)
            continue;
        // 已經走過了
        if (v[i] == 1)
            continue;
        // 不存在從x到i的邊
        if (vis[x][i] == 0)
            continue;
        // 有一條邊不滿足條件,即父節點的權值小於等於任意子節點的權值,所以直接終止查詢
        if (a[x] > a[i])
        {
            flag = true;
            return;
        }

        v[i] = 1;// 標記當前節點
        DFS(i, sum + 1);
        if (flag)
            return;
    }
}

int main()
{
    scanf("%d", &T);
    while (T --)
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; i ++)
            scanf("%d", &a[i]);
        mem(vis, 0);
        // n - 1 條邊
        for (int i = 1; i < n; i ++)
        {
            scanf("%d%d", &x, &y);
            vis[x][y] = vis[y][x] = 1;
        }
        flag = false;
        mem(v, 0);
        v[1] = 1;
        DFS(1, 0);
        if (flag)
            cout << "No" << endl;
        else
            cout << "Yes" << endl;
    }
    return 0;
}


相關推薦

ACM 1734: (DFS)

Description Input Output Sample Input 3110310 5 31 21 351 2 3 4 53 12 12 42 5 Sample Outpu

【XSY2667】摧毀圖狀樹 貪心 DFS序 線段樹

printf con 線段 string def body 暴力 clu while 題目大意   給你一棵有根樹,有\(n\)個點。還有一個參數\(k\)。你每次要刪除一條長度為\(k\)(\(k\)個點)的祖先-後代鏈,問你最少幾次刪完。現在有\(q\)個詢問,每次給你

1155 Heap Paths (30 分)(+dfs遍歷)

比較簡單的一題 遍歷左右的時候注意一下 #include<bits/stdc++.h> using namespace std; const int N=1e3+10; int s[N*2]; int cnt=0; vector<int>t; vector<int&g

OJ 1092: 素數表(函式專題) 篩選法選擇素數

1092: 素數表(函式專題) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 5837  Solved: 2375SubmitStatusWeb B

OJ 1103: 平均學分績點(函式專題)留著以後自己算

平均學分績點(Grade Point Average,即GPA)是以學分與績點作為衡量學生學習的量與質的計算單位,以取得一定的學分和平均學分績點作為畢業和獲得學位的標準,實施多樣的教育規格和較靈活的教學管理制度。 大學裡每一門課程都有一定的學分。只有通過這門課的考試,才能獲得相應的學分。課程績點的計算方法通

】[1125]上三角矩陣的判斷

題目解釋了一下什麼叫上三角矩陣 判斷本身沒什麼難度 #include<stdio.h> int n; int map[12][12]; bool IsUpperTriMatrix

nyoj ACM:素數環(DFS 回溯 遞迴)

素數環 時間限制:1000 ms | 記憶體限制:65535 KB 難度:2 描述 有一個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數(包括首尾)的和都為素數,稱為素數環。

nyoj ACM:水池數目(dfs

水池數目 時間限制:3000 ms | 記憶體限制:65535 KB 難度:4 描述 南陽理工學院校園裡有一些小河和一些湖泊,現在,我們把它們通一看成水池,假設有一張我們學校的某處的地圖,這個地圖上僅標識了此處是否是水池,現在,你的任務來了,請用計算

HNUST 挑戰ACM迷宮(DFS版)

題目描述 如下圖所示的是一個由程式設計題目組成的ACM迷宮。迷宮的左上角是入口,右下角是出口。迷宮中每一個格子都有一個程式設計題目,挑戰者要AC該題目後才能通過,大於0的數字表示AC該題目所需的最短時間。數字如果是0表示是陷阱,進去了就出不來。現在的問題是:求挑戰者從入

[ACM] POJ 3740 Easy Finding (DFS

cas oss miss 矩陣 org fin contest std size Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16202 Accepted: 4349

bzoj3613 [Heoi2014]南園滿地

def open .com c++ div closed bzoj3613 題解 namespace 傳送門:http://www.lydsy.com/JudgeOnline/problem.php?id=3613 【題解】 其實挺顯然。。就是最大逆序對差/2 # in

牛牛取快遞(一)從dfs到dijkstra以及優化的dijkstra

並不是 rim 鄰接表 != 性能 AD [] 鄰接矩陣 不同 由於上一篇博客的第三題“牛牛取快遞”上次還未ac,因此今天特意再來嘗試一下,上次使用暴力dfs搜索最短路徑超時的我,在大佬們解題思路的“熏陶”之下,終於在我的記憶深處找回了那被封印依舊的dijkstra算法。

ACM】吝嗇的國度 - DFS (圖)

pre mat play 上一個 cout ostream 表示 acm isp 吝嗇的國度 時間限制:1000 ms | 內存限制:65535 KB 難度:3 描述在一個吝嗇的國度裏有N個城市,這N個城市間只有N-1條路把這個N個城市連接起來。現在,Tom

[BZOJ3613][Heoi2014]南園滿地絮 二分答案

out 遞推 fine 最大 愛好者 pre zoj ace amp Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵屍詩歌共和國)的一名詩歌愛好者,最近 他研究起了詩詞音律的問題。 在過去,詩詞

杭電acm 1181 變形課 DFS

小寫 pty space ring 隊列 set amp ott panel 變形課 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Subm

ACM-ICPC 2018 瀋陽賽區網路預賽 J. Ka Chang (分塊+樹狀陣列+dfs序)

題意 給你一顆樹,由兩種操作: 1.把這棵樹深度為 D D D的點全部都加上一個值。 2.求以p為根節點的子樹的權值和是多少? 思路 對於樹上的東西,我們可以把他求一下DFS序,之後就可以把樹上的結構變成

AC Challenge [ ACM-ICPC 2018 南京賽區網路預賽 ] [dfs + 二進位制記憶化搜尋 ]

題意:有n個問題,做第i個問題得分是t*a[i]+bi, 但是做第i題之前還需要先做其他的一些題目….可以選擇不做完所有的題,問最後的最高得分. 思路:深搜就可以了,跟很多深搜的問題一樣,有很多重複的子問題,此題的記憶化很奇特用的二進位制類似狀壓的思想 AC co

2018.11.09【HEOI2014】【BZOJ3631】【洛谷P4105】南園滿地絮(逆序對)(規律題)

BZOJ傳送門 洛谷傳送門 解析: 這個一說結論都會做,而且應該看了結論都知道怎麼證明,蒟蒻就不BB了。 結論就是差值最大的逆序對的差值的一半向上取整就是答案。 程式碼: #include<bits/stdc++.h> using name

ACM-ICPC 2018 瀋陽賽區網路預賽 J. Ka Chang dfs序+大小分治

Problem J. Ka Chang Input file: standard input Output file: standard output Time limit: 1 seconds Memory limit: 128

ACMDFS & 全排列 & 回溯

深入體會一下DFS,回溯 在一些OJ上endl和“\n”還是有區別的!!! 方法一: #include <iostream> #include <cstdio> #include <cstring> using namespace std; con