日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【LOJ】#3098. 「SNOI2019」纸牌

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LOJ】#3098. 「SNOI2019」纸牌 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LOJ#3098. 「SNOI2019」紙牌

顯然選三個以上的連續牌可以把他們拆分成三個三張相等的

于是可以壓\((j,k)\)為有\(j\)個連續兩個的,有\(k\)個連續一個的

如果當前有\(i\)張牌,且\(i >= j + k\)

那么可以\((j,k)\rightarrow (k,(i - j - k) \% 3)\)

可以用矩陣乘法優化,每遇到一個有下限的牌面的就再特殊造一個矩陣轉移

#include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-10 #define ba 47 #define MAXN 5005 //#define ivorysi using namespace std; typedef long long int64; typedef unsigned int u32; typedef double db; template<class T> void read(T &res) {res = 0;T f = 1;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {res = res * 10 +c - '0';c = getchar();}res *= f; } template<class T> void out(T x) {if(x < 0) {x = -x;putchar('-');}if(x >= 10) {out(x / 10);}putchar('0' + x % 10); } const int MOD = 998244353; int inc(int a,int b) {return a + b >= MOD ? a + b - MOD : a + b; } int mul(int a,int b) {return 1LL * a * b % MOD; } void update(int &x,int y) {x = inc(x,y); } int getid(int x,int y) {return x * 3 + y; } struct Matrix {int f[9][9];Matrix() {memset(f,0,sizeof(f));}friend Matrix operator * (const Matrix &a,const Matrix &b) {Matrix c;for(int k = 0 ; k < 9 ; ++k) {for(int i = 0 ; i < 9 ; ++i) {for(int j = 0 ; j < 9 ; ++j) {update(c.f[i][j],mul(a.f[i][k],b.f[k][j]));}}}return c;}friend Matrix fpow(Matrix a,int64 c) {Matrix res,t = a;for(int i = 0 ; i < 9 ; ++i) res.f[i][i] = 1;while(c) {if(c & 1) res = res * t;t = t * t;c >>= 1;}return res;} }a,ans,b; int64 n; int C,X; void Solve() {read(n);read(C);for(int i = 0 ; i <= C ; ++i) {for(int j = 0 ; j < 3 ; ++j) {for(int k = 0 ; k < 3 ; ++k) {if(i < j + k) continue;update(a.f[getid(j,k)][getid(k,(i - j - k) % 3)],1);}}}for(int i = 0 ; i < 9 ; ++i) ans.f[i][i] = 1;read(X);int64 k;int t;int64 p = 0;for(int i = 1 ; i <= X ; ++i) {read(k);read(t);ans = ans * fpow(a,k - 1 - p);memset(b.f,0,sizeof(b.f));for(int h = t ; h <= C ; ++h) {for(int j = 0 ; j < 3 ; ++j) {for(int k = 0 ; k < 3 ; ++k) {if(h < j + k) continue;update(b.f[getid(j,k)][getid(k,(h - j - k) % 3)],1);}}}ans = ans * b;p = k;}if(p < n) ans = ans * fpow(a,n - p);out(ans.f[0][0]);enter; } int main(){ #ifdef ivorysifreopen("f1.in","r",stdin); #endifSolve(); }

轉載于:https://www.cnblogs.com/ivorysi/p/11015058.html

總結

以上是生活随笔為你收集整理的【LOJ】#3098. 「SNOI2019」纸牌的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产女人18毛片18精品 | 中国一级特黄毛片 | 里番精品3d一二三区 | 99久久久国产精品无码免费 | 天天操天天射天天 | 综合色婷婷 | 香蕉视频在线观看免费 | 中文字幕人妻一区二区三区 | 欧美日本一区二区三区 | 日本女人毛片 | 欧美人与禽性xxxxx杂性 | jul023被夫上司连续侵犯 | 免费不卡av在线 | 免费三片在线观看网站v888 | 国产精品视频合集 | 一级特黄色| 91精品国产综合久久久蜜臀粉嫩 | 免费av中文字幕 | 色偷偷视频 | 免费看国产一级片 | 国产精品网页 | 国产精品美女久久久免费 | av黄色在线观看 | 国产69精品一区二区 | 性欧美在线观看 | 婷婷丁香六月 | www.国产.com| 玩偶游戏在线观看免费 | 亚洲天堂激情 | 污污视频免费看 | 中字幕一区二区三区乱码 | 国产精品69久久久久孕妇欧美 | 日日噜噜夜夜狠狠久久丁香五月 | 亚洲 自拍 另类 欧美 丝袜 | 天堂av中文在线观看 | 少妇被躁爽到高潮无码人狍大战 | 青青青国内视频在线观看软件 | 69人人| 亚洲第一色网 | 少妇看片| 揄拍成人国产精品视频 | 欧美视频一二三 | 欧美一区二区三区久久久 | 国产三级全黄裸体 | 狠狠草视频 | 美女扒开腿让男人 | 欧美黑人一区 | cao死你| 国产系列精品av | 一区二区三区国产 | 国产噜噜噜噜久久久久久久久 | 日韩美女性生活 | 国产又黄又爽又色 | 黄色777 | 国产精品入口免费 | 蜜色av | 影音先锋中文字幕在线播放 | 亚洲中字在线 | 男女啪啪十八 | 五月天校园春色 | 91色多多 | 艳妇乳肉豪妇荡乳av无码福利 | 日本女v片 | 久久久123 | 91视频麻豆| 色哟哟官网| 户外少妇对白啪啪野战 | 精品人妻人伦一区二区有限公司 | 久久精品电影 | 爽爽影院在线 | 成人免费视频网站在线看 | 亚洲一区二区黄色 | 国产精品无码久久久久一区二区 | av免费国产| 综合色在线视频 | 九九热国产 | 亚欧综合在线 | 美女扒开腿让男人捅 | 亚洲AV成人无码一二三区在线 | 国产精品久久久久高潮 | 国产精品乱码一区二区 | 韩国美女av | 欧美黑人精品一区二区不卡 | 欧美www在线观看 | 久久久久亚洲av成人人电影 | 狠狠艹狠狠干 | 天天干天天操天天爱 | 人妻精品一区二区在线 | 91精品国产99久久久久久红楼 | www欧美视频 | 国产欧美精品一区二区三区app | 亚洲国产一二 | 在线观看日本一区二区 | 成人亚洲| 国模私拍一区二区 | 4虎最新网址 | 国产h自拍 | 亚洲va久久久噜噜噜无码久久 | 99riav在线 |