UOJ#428. 【集訓隊作業2018】普通的計數題(牛頓迭代)
題解:
把0操作看做是葉子,1操作看做非葉節點,一個操作在另一個操作刪除,則另一個操作為這個操作的父親,於是轉化成了滿足以下條件的個點的樹的計數:
1.父親標號>兒子。
2.若一個點為非葉節點,記其兒子中葉子節點的數量為,則若其兒子中有非葉節點,,否則。
首先可以發現的是集合中有沒有0都無所謂(因為必須選非空序列),所以假設其0次項為1。
然後就類似無根樹計數的方法(這裡注意大小為1的是有序的,其餘是無序的),把他的兒子給拼出來,我們可以列舉有幾個非葉節點作為兒子,則:
兩邊除個,得到:
不妨設,可以得到:
設,化簡一下:
我們只需要解這個方程就行啦!
怎麼解呢,可以用牛頓迭代法,先假設一下我們知道,考慮怎麼求:
可以得到:
整理一下常量,發現其實是要解這個方程:
這個可以先設,解出:
然後設,則:
然後,這道題就做完辣,時間複雜度。
#include <bits/stdc++.h>
using namespace std;
const int RLEN=1<<18|1;
inline char nc() {
static char ibuf[RLEN],*ib,*ob;
(ib==ob) && (ob=(ib=ibuf)+fread(ibuf,1,RLEN,stdin));
return (ib==ob) ? -1 : *ib++;
}
inline int rd() {
char ch=nc(); int i=0,f=1;
while(!isdigit(ch)) {if(ch=='-')f=-1; ch=nc();}
while(isdigit(ch)) {i=(i<<1)+(i<<3)+ch-'0'; ch=nc();}
return i*f;
}
const int N=1e6+50, mod=998244353;
inline int add(int x,int y) {return (x+y>=mod) ? (x+y-mod) : (x+y);}
inline int dec(int x,int y) {return (x-y<0) ? (x-y+mod) : (x-y);}
inline int mul(int x,int y) {return (long long)x*y%mod;}
inline int power(int a,int b,int rs=1) {for(;b;b>>=1,a=mul(a,a)) if(b&1) rs=mul(rs,a); return rs;}
inline int sgn(int x) {return (x&1) ? (mod-1) : 1;}
namespace FFT {
const int G=3;
int A[N],B[N
相關推薦
UOJ#428. 【集訓隊作業2018】普通的計數題(牛頓迭代)
傳送門
題解:
把0操作看做是葉子,1操作看做非葉節點,一個操作在另一個操作刪除,則另一個操作為這個操作的父親,於是轉化成了滿足以下條件的nnn個點的樹的計數:
1.父親標號>兒子。
2.若一個點為非葉節點,記其兒子中葉子節點的數量為TTT,則若其兒子中有
uoj#418. 【集訓隊作業2018】三角形(線段樹合併)
傳送門
好迷啊……膜一下ljz
考慮每個操作,如果把操作按先後順序放到序列上的話,操作一就是把\(w_i\)的石子放到某個節點,那麼就是在序列末端加入\(w_i\),然後根據貪心肯定要把它所有兒子的石子拿走,也就是要減去\(\sum w_{son}\)
那麼每個點的答案就是序列的最大字首
因為父親節點
【UOJ#422】【集訓隊作業2018】小Z的禮物(min-max容斥,輪廓線dp)
【UOJ#422】【集訓隊作業2018】小Z的禮物(min-max容斥,輪廓線dp)
題面
UOJ
題解
毒瘤xzy,怎麼能搬這種題當做WC模擬題QwQ 一開始開錯題了,根本就不會做。 後來發現是每次任意覆蓋相鄰的兩個,那麼很明顯就可以套\(min-max\)容斥。 要求的就是\(max(All)\)
【集訓隊作業2018】取名字太難了 任意模數FFT
題目大意
求多項式 \(\prod_{i=1}^n(x+i)\) 的係數在模 \(p\) 意義下的分佈,對 \(998244353\) 取模。
\(p\) 為質數。
\(n\leq {10}^{18},p\leq 250000\)
題解
我們只計算 \([1,p-1]\) 的分佈,最
【集訓隊作業2018】矩陣玩小凹 NTT
題目大意
有一個 \(n\times m\) 的矩陣 \(A\),每個元素都是 \([0,1]\) 內的等概率隨機實數,記 \(s_i=\sum_{j=1}^mA_{i,j}\),求 \(\lfloor\min s_i\rfloor^k\) 的期望。
對 \(998244353\) 取模。
【集訓隊作業2018】【XSY3372】取石子 DP
題目大意
有 \(n\) 堆石子,初始時第 \(i\) 堆石子有 \(a_i\) 個。
你每次取石子會取 \(k\) 個。在你取完一堆石子之後才能在下一堆中取石子。
遊戲會進行 \(t\) 輪,每輪會發生以下事件:
你可以進行任意次取石子操作。
每堆的石子個數會增加,具體的,第
【bzoj4765】普通計算姬(雙重分塊)
efi ref space include pos gif signed problem 。。 題目傳送門:http://www.lydsy.com/JudgeOnline/problem.php?id=4765
這道題已經攢了半年多了。。。因為懶,一直沒去寫。。
2018.09.26【TJOI2017】【BZOJ4888】【洛谷P3760】異或和(樹狀陣列)(差分)
洛谷傳送門
解析:
額,TJOITJOITJOI連續兩年考了位運算。。。
我還能說什麼。。。
PS:zxyoiPS:zxyoiPS:zxyoi不是天津oieroieroier。
思路:
一般位運算都
2018.10.11【SDOI2017】【洛谷P3705】【BZOJ4819】新生的舞會(DinkelBach迭代法解法)
解析:
這裡只討論這道題中DinkelBachDinkelBachDinkelBach迭代法的好處,題目解析請參考上面的連結。
這道題不管是DinkelBachDinkelBachDinkelBach還是二分都能過,但是DinkelBachDinkelBac
2018.11.09【NOIP2016】【洛谷P1600】天天愛跑步(樹上差分)
傳送門
解析:
據說這是NOIP歷年最難一道題。。但是真的沒有寶藏難啊我覺得。。。
思路:
答案分兩類統計,一種是子樹中過來,一種是其他地方過來。那麼路徑就被拆分成兩部分了,一部分是S−>lcaS->lcaS−>lca,一部分
uoj#275. 【清華集訓2016】組合數問題(數位dp)
傳送門
假設有\(k|{n\choose m}\),因為\(n!\)中質因子\(k\)的次數為\(S(n)=\left\lfloor\frac{n}{k}\right\rfloor+\left\lfloor\frac{n}{k^2}\right\rfloor+...\),而\(m!\)和\((n-m)!\)
【數據結構】之順序表(Java語言描述)
arraylist 表數據 nbsp real 不同 1.5 根據 長度 tar 之前總結過使用C語言描述的順序表數據結構。在C語言類庫中沒有為我們提供順序表的數據結構,因此我們需要自己手寫,詳細的有關順序表的數據結構描述和C語言代碼請見【我的這篇文章】。
在Jav
【BZOJ1458】【洛谷4311】士兵占領(網絡流)
scrip AR truct gis lin class ++i () 網絡 【BZOJ1458】【洛谷4311】士兵占領(網絡流)
題面
BZOJ權限題,洛谷真好
Description
有一個M * N的棋盤,有的格子是障礙。現在你要選擇一些格子來放置一些士兵,一個格子
【BZOJ2084】【洛谷P3501】[POI2010]ANT-Antisymmetry(Manache算法)
異或操作 image font bzoj rdquo 技術 sign ant close 題意描述
原題:
一句話描述:對於一個0/1序列,求出其中異或意義下回文的子串數量。
題解
我們可以看出,這個其實是一個對於異或意義下的回文子串數
【HTML+CSS+JavaScript】實現待辦事項(純DOM實現)
todolist ive relative spa java set 釣魚 scrip input 需求:實現待辦事項
<!DOCTYPE html>
<html lang="en">
<head>
<meta chars
【CodeForces 129 B】Students and Shoelaces(拓撲排序)
end owin clu namespace 每次 font order 單獨 when Anna and Maria are in charge of the math club for junior students. When the club gathers tog
【BZOJ4300】絕世好題(二進位制,DP)
題意:
n<=100000,ai<=2*10^9
思路:按二進位制逐位考慮,只要有至少1位取and後為1就可以接下去
設dp[i]為第i位取and之後為1的最長的序列長度,意會一下
1 #include<cstdio>
2 #include<iostream
【Spring筆記三】Spring中Bean(XML方式裝配)
我們可以把 Spring 看作一個大型的工廠,而 Spring 容器中的 Bean 就是該工廠的產品。要想使用這個工廠生產和管理Bean,就需要在配置檔案中告訴它需要哪些 Be
【洛谷3648】[APIO2014] 序列分割(斜率優化DP)
點此看題面
大致題意: 你可以對一個序列進行\(k\)次分割,每次得分為兩個塊元素和的乘積,求總得分的最大值。
區間\(DPor\)斜率優化\(DP\)
這題目第一眼看上去感覺很明顯是區間\(DP\)。
但是,一看資料範圍,\(n\le100000\),這是要上天的節奏!
不過,再看\(m\le
Python開發【第七篇】:面向物件(進階篇)
上一篇《Python 面向物件(初級篇)》文章介紹了面向物件基本知識:
面向物件是一種程式設計方式,此程式設計方式的實現是基於對 類 和 物件 的使用
類 是一個模板,模板中包裝了多個“函式”供使用(可以講多函式中公用的變數封裝到物件中)
物件,根據模板