今天的題貌似相對比較簡單?
$t1$只要發現是個最短路樹就完事了。
$t2$是乙個做爛了的$dp$。上次我的確不會(雖說對於當時而言,也已經做爛了然而我還是不會)
反正這次要是再不會就不合適了。
$t3$就是個睿智。。。
結果還讀錯題,連暴力分都掛沒了。
樣例水坑人啊。。。
t1:miniumcut
大意:給出$n$個點兩兩之間的最小割,構造乙個滿足它的圖。$n \le 100,w_$
兩兩之間最小割,顯然最小割樹。
那麼題意變為:構造一棵樹,滿足$f(i,j)=w_$其中$f(i,j)$表示樹上路徑中最小的邊。
從大到小列舉邊權,不斷加邊,一定滿足:某一種權值加完後,整個圖中每個聯通塊都是完全圖。
並查集維護邊數點數。$o(n^2)$
1 #include2view codeusing
namespace
std;
3int w[105][105],ansx[105],ansy[105],answ[105],n,cnt,f[105],sz[105],e[105];4
int find(int p)
5 vectorvx[100005],vy[100005];6
intmain()
19for(int j=1;j<=n;++j)if(f[j]==j&&e[j]!=sz[j]*(sz[j]-1)>>1)return puts("
-1"),0;20
}21 printf("
%d\n
",n-1
);22
for(int i=1;i"
%d %d %d\n
",ansx[i],ansy[i],answ[i]);
23 }
t2:tree
大意:邊權樹,選出互不相同的$k$個點構成排列$a_$,最小化$\sum\limits_^ dis(a_i ,a_)$。$n \le 3000$
這式子相當與從樹上挨個點走,如果再加上$dis(a_k,a_1)$那就是迴路了。
所以這就是讓你選出$k$個點,求迴路去掉直徑的最小值。
你顯然會選乙個聯通塊。所以可以直接子樹歸併的$dp$
經典的樹$dp$。$dp[0/1/2][p][x]$表示當前已選中$x$個點,在$p$子樹中:尚未考慮直徑/已經確定直徑乙個端點且$p$就在直徑上/整個直徑已經確定 時的最小值。
轉移比較簡單。$o(nk)$
1 #include2view codeusing
namespace
std;
3#define s 3003
4int dp[3][s][s],sz[s],fir[s],l[s<<1],to[s<<1],w[s<<1],ec,n,k,t[3][s],ans=0x3fffffff;5
void link(int a,int b,int w)
6void dfs(int p,int
fa)16}17
intmain()
t3:塔
大意:維護字串支援在首/尾新增乙個字元,撤銷最後幾次填字元的操作,每次操作後回答最長回文子串長。$q \le 10^7$
首先學到了兩件事:
原來$pam$可以支援雙端加字元啊。
原來$hash$可以支援雙端加字元啊。
然後這題沒了。
1 #include2view codeusing
namespace
std;
3#define s 10000005
4#define mod 1000000007
5int qp(int b,int t,int a=1)
6int t,h,q,la,d[s],ope,ans[s],hsh[s<<1],ihsh[s<<1],pw[s]; char s[s*3];7
short c[s<<1];long
long tot; const
long
long iv=qp(131,mod-2);8
int mo(int x)
9int hsh(int l,int r)
10int ihsh(int l,int r)
11bool ispalin(int l,int r)
12int
main()else
if(op==2
)else
29 tot+=la;ans[t-h+1]=la;
30 ihsh[t+1]=(ihsh[t]-c[t]+mod)*iv%mod;
31 hsh[h-1]=(hsh[h]-c[h]+mod)*iv%mod;
32 }cout
33 }
省選模擬76
發現答案一定可以是一棵樹,因為對於任意乙個合法的圖求出它的最小割樹也是答案。然後就考慮構造,根據一些性質可以猜想實際上就是原圖的最大生成樹,所以直接跑就行了。求出生成樹之後再暴力檢驗是否合法即可。發現這個東西的形式很熟悉,假如再加入第乙個點和最後乙個點的權值的話,那麼答案就是虛樹邊權和的二倍。那麼現...
考試反思 0502省選模擬86 恐懼
還是狀態持續不佳。但是今天沒那麼困,雖說腦子還是不想動。一看到原題就慫,毛病。好像考場上遇到原題的話,得分會比非原題還低。t2 作為原題就直接放棄正解了 然後乖乖的打部分分,結果教練把子任務放錯了於是丟了 15pts 放錯子任務同時也導致 直接輸出 0 能多 20 分。啊人就應該有信仰啊為什麼我沒輸...
考試反思 0316省選模擬47 偏頗
這套題的考察思路其實不錯。三暴力,掛乙個。t1 是送分,但是一眼覺得是大資料結構,於是直接扔掉了。結果竟然是個原題。dy 講的只記住了只言片語思路早就忘了。好歹這次會了。t2 的話寫了個亂搞,結果把本來到手的 20 給寫死迴圈了,加了句判斷就 50 了。t3 差不多想到正解了,但是毒瘤出題人不給部分...