noip要到了,大家來到許願樹前。這個許願樹不僅僅是許願樹,還有未卜先知的功能。眾oier問許願樹:「不平凡的許願樹,ccf告訴我們noip中會有兩道題目從openjudge上選擇,你能不能告訴我是哪兩道題。」
許願樹想了想直接說出答案並不妥:「中國有句古話叫『悶聲大發財』,我就什麼也不說,這是最好的。但是我看到你們這麼熱情,一句話不說也不好,我就告訴你們點資訊吧。你們看我是乙個由n個結點組成的樹,在樹中任選著3個點,有多少種選擇方案使得這三個點互相之間的距離相同?兩個方案不同當且僅當乙個點在第一種方案中被選擇,第二種方案中沒有被選擇。」
「記你算出來方案數為cnt,那麼第一道題的題號就是cnt%338 + 1,第二題的題目編號是(cnt+233)%338+1。」
可是oier們手頭並沒有計算機,於是請你來告訴他們題目編號。
第一行乙個整數n,表示樹有n個點。
接下來n-1行,每行兩個整數u,v,表示樹中有一條從u到v的邊
一行,兩個整數,分別為**的第一題題號和第二題題號。
71 25 7
2 52 3
5 64 5
6 239樣例解釋:
共有5種方案,分別是,,,,。所以第一題的編號為5%338 + 1 = 6;第二題的編號為(5+233)%338 + 1 = 239;
資料範圍與約定:
對於30%的資料:1 <= n <= 100
對於60%的資料:1 <= n <= 1500
對於100%的資料:1 <= n <= 5000
題解:
顯然不知道怎麼dp 就亂搞,又顯然以每個點dfs然後組合o(n^2)但看到樣例就知道重複統計了
所以我強制規定三元點對必須分布在三顆不同子樹上,就不會重複了...............................................
然後就來了個(n*log3n)≈(n^2)的玄學方法 結果跑得還挺快
1 #include 2 #include 3 #include 4 #include 5 #include 6using
namespace
std;
7const
int n=5005,mod=338;8
int n,head[n],num=0
,du[n];
9struct
lina[n<<1
];12
void init(int x,int
y)17
intt[n],c[n][n],sz[n];
18void dfs(int x,int last,int dep,int
rt)26}27
int ans=0
,sum[n];
28void
solve()37}
38 sz[i]=0;39
}40}41
intmain()
4252
for(int i=1;i<=n;i++)
5362}63
solve();64}
65 printf("
%d %d\n
",ans+1,((ans+233)%mod)+1
);66 }
COGS 2096 不平凡的許願樹
noip要到了,大家來到許願樹前。這個許願樹不僅僅是許願樹,還有未卜先知的功能。眾oier問許願樹 不平凡的許願樹,ccf告訴我們noip中會有兩道題目從openjudge上選擇,你能不能告訴我是哪兩道題。許願樹想了想直接說出答案並不妥 中國有句古話叫 悶聲大發財 我就什麼也不說,這是最好的。但是我...
平凡的榮耀 不平凡
前一段時間一直被 平凡的榮耀 這部劇刷存在感,最近正好有時間將這部劇粗略的過了一遍,畢竟聽說拍的跟我們現實的職場比較貼切,當然電視劇集也是藝術創作一種表現形式,在某些方便肯定是高於生活的,所以期望它完全的與生活中的情形一模一樣也是要求有點過分了,再說時長只有這麼多,也不能面面俱到呀,可能導演的意思希...
不平凡的泛型
隨著集合的發展,我們使用集合的同時也發現集合的一些問題 由於型別的強制轉換帶來的型別安全問題,的復用率低,影響 執行效率,比如 所以為了避免上面的兩個問題,net2.0提出了泛型的概念。也就是泛型將型別引數的概念引入了 net中,使用泛型可以最大限度得重用 保護型別的安全以及提高效能。所謂泛型,就是...