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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【ACM-ICPC 2018 沈阳赛区网络预赛 I】Lattice's basics in digital electronics

發(fā)布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ACM-ICPC 2018 沈阳赛区网络预赛 I】Lattice's basics in digital electronics 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【鏈接】 我是鏈接,點我呀:)
【題意】

【題解】


每個單詞的前綴都不同。
不能更明示了...
裸的字典樹。
模擬一下。輸出一下就ojbk了。

【代碼】

#include <bits/stdc++.h> #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define all(x) x.begin(),x.end() #define pb push_back #define lson l,mid,rt<<1 #define ri(x) scanf("%d",&x) #define rl(x) scanf("%lld",&x) #define rs(x) scanf("%s",x) #define rson mid+1,r,rt<<1|1 using namespace std;const double pi = acos(-1); const int dx[4] = {0,0,1,-1}; const int dy[4] = {1,-1,0,0};const int NN = 10000; const int SI = 10; const int N = 2e5;int ch[NN+10][2],flag[NN+10]; int tot,m,n; char si[SI+10]; char s[N+10]; int result[N*4+10],cur;void ins(int ci){int len = strlen(si);int now = 1;for (int i = 0;i < len;i++){if (ch[now][si[i]-'0']==0){ch[now][si[i]-'0'] = ++tot;}now = ch[now][si[i]-'0'];}flag[now] = ci; }void cl(char key){cur++;int num = 0;if (key>='a' && key<='z'){key = key-'a'+'A';}if (key>='A' && key<='Z'){num+=key-'A'+10;}else num = key-'0';for (int i = cur+3;i>=cur;i--){result[i] = num&1;num/=2;}cur = cur+3; }int main(){#ifdef LOCAL_DEFINEfreopen("rush_in.txt", "r", stdin);#endifios::sync_with_stdio(0),cin.tie(0);int T;cin >> T;while (T--){memset(ch,0,sizeof ch);memset(flag,255,sizeof flag);tot = 1;cin >> m >> n;for (int i = 1;i <= n;i++){int ci;cin >> ci >> si;ins(ci);}cin >> s;int len = strlen(s);cur = 0;for (int i = 0;i < len;i++) cl(s[i]);int now = 1;for (int i = 1;i <= cur;){if (i+8>cur) break;int cnt = 0;for (int j = i;j <= i+7;j++)if (result[j]==1) cnt++;int odd = result[i+8];odd=1-odd;if ((cnt&1)==(odd&1)){for (int j = 1;j <= 8;j++){result[now+j-1]=result[i+j-1];}now = now + 8;}i = i+9;}int index = 1;for (int i = 1;i <= m;i++){int now = 1;for (int j = index;;j++){now = ch[now][result[j]];if (flag[now]!=-1) {index = j+1;char key = flag[now];cout<<key;break;}}}cout<<endl;}return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/AWCXV/p/9626690.html

總結(jié)

以上是生活随笔為你收集整理的【ACM-ICPC 2018 沈阳赛区网络预赛 I】Lattice's basics in digital electronics的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。