[gxoi/gzoi2019]寶牌一大堆
求最大值容易想到$dp$,但如果將$7$種和牌都考慮進來的話,$dp$狀態不好設,我們將比較特殊的七小對和國士無雙單獨求,其他的進行$dp$。
觀察其他五種和牌可以發現,他們都是由$4$組槓子或面子和$1$組雀頭組成。
那麼可以列出$dp$式子:$f[i][j][k][l][m][n]$表示前$i$種牌,其中有$j$個槓子或面子、$k$個雀頭,第$i-2\sim i$種牌分別有$l,m,n$張時前$i-3$種牌的最大值。
轉移時對順子、槓子、刻子和雀頭四種情況分別轉移即可。
對於國士無雙,暴力列舉第$14$張牌是什麼然後取最大值即可。
對於七小對,設$f[i][j]$表示前$i$種牌中取了$j$種雀頭的最大值,$01$揹包轉移即可。
#include#include#include#include#include#include#include#include#include#include#include#define ll long longusing namespace std;
const int mod=1e9+7;
ll f[35][5][2][5][5][5];
ll f[35][8];
char ch[3];
int t;
ll p[6];
ll c[10][10];
int s[35];
int t[35];
bool vis[35]=;
int g[20]=;
void add(ll &x,ll y)
int find(char ch[3])
ll get(int id,int num)
ll dp()}}
}} }
return res;
}ll qxd()
} return f[34][7]*7;
}ll gsws()
add(res,sum*13);
} return res;
}int main()
} p[0]=1ll;
for(int i=1;i<=4;i++)
scanf("%d",&t);
while(t--)
while(1)
memset(t,0,sizeof(t));
while(1)
ll ans=0;
add(ans,dp());
add(ans,gsws());
add(ans,qxd());
printf("%lld\n",ans);
}}
GXOI GZOI2019 逼死強迫症
傳送門 to luogu 將道路看成乙個很高很瘦的傢伙 乙個 n 2 n times 2 n 2 的瘦高個 考慮最後一行 或者說,第一行 是什麼情況。用 f n f n f n 表示答案。不好搞定的是第三種情況。下面都只討論第三種情況。如圖。不妨設第一行的 1 1 1 times 1 1 1 磚塊在...
GXOI GZOI2019 舊詞 解題報告
對於一棵 n 個節點的樹,給出 m 次詢問和常數 k 每次給出 r,x 求 sum limits r depth lca i,x k n,m le 5 times 10 4 1 le r,x le n k le 10 9 如果有做過 lnoi2014 lca,就很容易想出解法。可以通過樹上差分,點 ...
題解 GXOI GZOI2019 旅行者
調這個題調了兩個月,被自己蠢哭 給乙個有向圖,一組關鍵點,求關鍵點之間的最短的距離 這個題目有兩種做法,分別是 nlogn 和 nlog 2n 的 首先說 nlogn 的官方做法,我們考慮多源迪傑斯特拉 正圖上從 k 個關鍵點出發跑 dijkstra 記某個點離最近的關鍵點距離為 dis 0 i 反...