ホームページ ウェブフロントエンド htmlチュートリアル Codeforces ラウンド #279 (ディビジョン 2) F. ツリーランド ツアー(lis+dfs)_html/css_WEB-ITnose

Codeforces ラウンド #279 (ディビジョン 2) F. ツリーランド ツアー(lis+dfs)_html/css_WEB-ITnose

Jun 24, 2016 am 11:53 AM

質問リンク:

huangjing


質問の意味: 無向非巡回グラフを教えてから、接続する道路上のリスを見つけます。

アイデア: lis を見つけるための点を列挙します。複雑さは n^2logn です。この複雑さは時間に関しては少し謎に見えるため、データは少し弱いと推定されます。 。 。

まずポイントを列挙し、主に dfs を使用して lis を検索します。バックトラッキングのアイデアが使用されます。更新されている限り、操作は保存される必要があり、今回は検索が完了すると、それが実行されます。多くの異なるルートがあるため、g 配列の値をすぐに復元する必要があります。そのため、1 つのルートが完了したら、他のルートへの影響を避けるために前の状態を復元する必要があります。 。たとえ彼らが暴力だと言っているとしても、この質問はとても良い質問だと思います。 。 。

タイトル:

F. ツリーランド ツアー

テストごとの制限時間

5 秒

テストごとのメモリ制限

256 byte s

入力

標準入力

出力

標準出力

「Road Accident」バンドはツリーランド周辺で前例のないツアーを計画しており、RA ファンはそのイベントを楽しみにしており、お気に入りのグループが何回コンサートを行うか賭けています。

ツリーランドは n つの都市で構成されています。 、いくつかの都市のペアは双方向の道路で接続されています。国には全体的に n?-?1 つの道路があり、他の都市からは 1 から n までの整数でアクセスできることがわかります。私たちは、バンドが何らかの道に沿って移動し、その道沿いのいくつかの都市でコンサートを開催することを知っています。その道中、毎回 1 つの都市を 2 回通過するわけではありません。彼らはこれまで訪れたことのない都市に移動します。したがって、ミュージシャンたちは(どの都市も二度訪れることなく)ある道に沿って旅し、途中のいくつかの(必ずしもすべてではない)都市でコンサートを開催します。

ツアー中にすべての大きなスタジアムとコンサートホールを集める予定なので、毎回コンサート都市で以前に訪れた人口よりも人口が多い都市、つまり人口が多い都市の順序で演奏します。コンサートの開催数はますます増えています

「交通事故」バンドのリーダーとの最近のインタビューで、バンドは可能な限り多くの都市でコンサートを行うとファンに約束しました。ツリーランドの都市をチェーン化し、これらの都市のいくつかでコンサートを開催することで、人口が増加し、コンサートの数が可能な限り多くなるでしょう

ツリーランドのファンは、グループが何回コンサートを行うかを必死に把握しようとしています。本物のプログラマーの助けがなければ管理できないようです! ファンがコンサートの数を見つけるのを手伝ってください。

入力

入力の最初の行には整数 n (2?≤) が含まれています。 ?n? ≤?6000) ? 次の行には n 個の整数 r1,?r2,?...,?rn (1?≤?ri?≤?106) が含まれます。次の n?-?1 行には、1 行につき 1 つの道路の説明が含まれます。各道路は、整数 aj、bj (1?≤?aj、?bj?≤?) で定義されます。 n) ? j 番目の道路で接続されている都市の番号のペア。行内のすべての数字はスペースで区切られています。

出力

「交通事故」バンドが発生している都市の数を出力します。コンサートを開催します

コード:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<cmath>#include<string>#include<queue>#define eps 1e-9#define ll long long#define INF 0x3f3f3f3fusing namespace std;priority_queue<int,vector<int>,greater<int> >Q;const int maxn=6000+10;struct Egde{    int next,to;}edge[maxn<<1];int g[maxn],val[maxn],head[maxn],cnt,n,ans,top;void add_edge(int x,int y){    edge[++cnt].to=y;    edge[cnt].next=head[x];    head[x]=cnt;}void dfs(int u,int top=0,int fa=0){     int tmp,pos;     if(top==0||val[u]>g[top])     {         pos=++top;         tmp=g[top];         g[top]=val[u];         ans=max(ans,top);     }     else     {         pos=lower_bound(g+1,g+1+top,val[u])-g;         tmp=g[pos];         g[pos]=val[u];     }     for(int i=head[u];~i;i=edge[i].next)     {         int v=edge[i].to;         if(v!=fa)            dfs(v,top,u);     }     g[pos]=tmp;}int main(){    int x,y;    while(~scanf("%d",&n))    {        ans=cnt=0;        memset(head,-1,sizeof(head));        memset(g,-1,sizeof(g));        for(int i=1;i<=n;i++)            scanf("%d",&val[i]);        for(int i=1;i<=n-1;i++)        {            scanf("%d%d",&x,&y);            add_edge(x,y);            add_edge(y,x);        }        for(int i=1;i<=n;i++)            dfs(i);        printf("%d\n",ans);    }    return 0;}
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles