1. 程式人生 > >【NOIP2015】資訊傳遞 dfs

【NOIP2015】資訊傳遞 dfs

如果我去年在 考場上 會怎樣呢?

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cstdlib>
using namespace std;

#define MAXN (200020)
int tot = 0;
int first[MAXN], nxt[MAXN], vis[MAXN], useby[MAXN];
struct edge{
    int from, to;
}es[MAXN];

void build(int ff, int tt)
{
    es[++tot] = (edge){ff,tt};
    nxt[tot] = first[ff];
    first[ff] = tot;
}

int
ans = 1e9; void dfs(int x, int c, int root) { vis[x] = c; useby[x] = root; for(int i = first[x]; i != -1; i = nxt[i]) { int v = es[i].to; if(vis[v]) { if(useby[v] == root) ans = min(ans, c-vis[v]+1); continue; } dfs(v,c+1
,root); } } int main() { int n; cin >> n; memset(first,-1,sizeof(first)); for(int i = 1;i <= n; ++ i) { int t; scanf("%d", &t); build(i,t); } for(int i = 1; i <= n; ++ i) if(!vis[i]) dfs(i,1,i); cout << ans << '\n'
; return 0; }

相關推薦

NOIP2015資訊傳遞 dfs

如果我去年在 考場上 會怎樣呢? #include <cstdio> #include <cstring> #include <iostream> #inc

UOJ 146 NOIP2015資訊傳遞

題目 有 n個同學(編號為1到n)正在玩一個資訊傳遞的遊戲。在遊戲裡每人都有一個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為Ti的同學。 遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳

NOIP2015資訊傳遞 CODE[VS] 4511

題目描述 Description 有個同學(編號為 1 到)正在玩一個資訊傳遞的遊戲。在遊戲裡每人都有一個固定的資訊傳遞物件,其中,編號為的同學的資訊傳遞物件是編號為的同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知

NOIP 2015 Day1 T2資訊傳遞dfs || 拓撲排序 || Tarjan)

題目描述 Description 有個同學(編號為 1 到)正在玩一個資訊傳遞的遊戲。在遊戲裡每人都有一個固定的資訊傳遞物件,其中,編號為的同學的資訊傳遞物件是編號為的同學。遊戲開始時,每人

2018.11.05NOIP2015洛谷2680UOJ#150運輸計劃(二分答案+DFS序+樹上差分)或(複雜度並不對(也不能過)的樹鏈剖分)

洛谷傳送門 解析: UOJ上的資料很強,複雜度不對過不了的,但是LCALCALCA如果是用倍增求的話也過不了(已經加了上界優化)。。。畢竟樹剖常數小,複雜度還不滿。。。 思路: 首先,不要試圖化邊為點,每條邊的資訊可以存在它所指向的兒子中。 解法1:UOJ上

洛谷P2661資訊傳遞

題目大意:給定一個有 N 個點,N 條邊且每個點的出度均為 1 的有向圖,求該有向圖的一個最小環。 題解:由於每個點的出度均為 1,可知可能的情況只有以下幾種:一個環或多個環,一個環+一條鏈。因此,可以採用 Tarjan 縮點,求出每個強連通分量,更新答案貢獻。另外,學到了一種並查集做法,由於每條邊的出度均

洛谷P2661資訊傳遞 (updated)

題目大意:給定一棵 N 個節點的內向樹森林,求該內向樹森林的最小環的大小(按邊計算)。 題解:先刪鏈,再計算環的大小,統計答案即可。 程式碼如下 #include <bits/stdc++.h> using namespace std; const int maxn=2e5+10; int

洛谷P3385 模板負環 DFS-SPFA 判負環 圖論

string inf scan space can 清空 span %d pre 洛谷P3385 【模板】負環 圖論 今天get了 一個 DFS-SPFA 判負環的方法 一般的 BFS-SPFA 判負環 一般就是 不停地做,如果某點第 n+1次加入隊列中,那麽說明這個圖存在

NOIP2015鬥地主

eof 2個 ios sca desc input inpu 數據 撲克 P2431 - 【NOIP2015】鬥地主 Description 牛牛最近迷上了一種叫鬥地主的撲克遊戲。鬥地主是一種 使用黑桃、紅心、梅花、方片的A到K加上大小王的共54張牌來進行的撲克牌

noip2015神奇的幻方

構建 == cst name long long 一行 題解 輸出 題目 題目描述 幻方是一種很神奇的 N ? N 矩陣:它由數字 1,2,3, … … , N ? N 構成,且每行、每列及兩條對角線上的數字之和都相同。 當 N 為奇數時,我們可以通過以下方法構建一個幻方:

LeetCode深搜DFS(共85題)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica } 【98】Validate Binary Search Tree  【99】Recover Binary Search Tree  【100】Same Tr

NOIP2015子串

題目連結 演算法:           鴿鴿鴿了。。。。。   Code: #include<bits/stdc++.h> #define rep(i,j,k) for(int i=j;i<=k;i++

Ionic——Ionic傳遞物件到後臺

1定義傳遞的物件的變數 integralProgram :{ pluginId:string ;//外掛id userId:string; //被加分人id,以及完成專案的使用者id idInfo:string[]; //被加分人id陣列 integr

2018.11.06NOIP2015洛谷P2668鬥地主(DP預處理)(搜尋)

傳送門 解析: 其實不考慮點數大小的話只有張數對我們是有用的。所以可以預處理出有 i i

bzoj4326noip2015運輸計劃

題目描述 公元2044 年,人類進入了宇宙紀元。 L 國有 n 個星球,還有 n-1 條雙向航道,每條航道建立在兩個星球之間,這 n-1 條航道連通了 L 國的所有星球。 小 P 掌管一家物流公司, 該公司有很多個

P2668鬥地主NOIP2015

題目描述 牛牛最近迷上了一種叫鬥地主的撲克遊戲。鬥地主是一種使用黑桃、紅心、梅花、方片的A到K加上大小王的共54張牌來進行的撲克牌遊戲。在鬥地主中,牌的大小關係根據牌的數碼錶示如下:3<4<5<6<7<8<9<10&l

貪心糖果傳遞(數軸上求一個點,使得n點到其距離之和最小,該點為n點中位數)

問題 K: 【貪心】糖果傳遞 時間限制: 1 Sec  記憶體限制: 128 MB 提交: 2  解決: 2 [提交] [狀態] [討論版] [命題人:admin] 題目描述 有n個小朋友坐成一圈,每人有ai個糖果。每人只能給左右兩人傳遞糖果。每人每次傳遞一個糖果代

分類 - 資訊系統開發與管理

專欄達人 授予成功建立個人部落格專欄

javascript傳遞 pass by value

最近有一個需求,我們先看一個小的例子 var student = { name: 'Catherine', age: 19, address: { province: '江蘇', city: '南昌' }, lan

NOIP2015推銷員

推(chuan)銷員 分析 這裡主要闡述一下我的分析思路。 看起來挺直觀的。 最初的想法,我們列舉每一個最遠點mxp的位置,然後對之前的a進行排序。 那麼以mxp為最遠點,選x個的最大疲勞值為: 2∗s[mxp]+a[mxp]+(之前的前x−1大的a