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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Bitset瞎搞

發布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bitset瞎搞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Bitset字符匹配

Regular Number

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_back #define endl '\n'using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(ll x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }const int N = 5e6 + 10;char str[N]; int n;vector<int> a[1010];bitset<1010> b[10], ans;void shift_and() {for(int i = 0; i < 10; i++) b[i].reset();ans.reset();for(int i = 0; i < n; i++) {for(int j = 0; j < a[i].size(); j++) {b[a[i][j]].set(i);}}int m = strlen(str);for(int i = 0; i < m; i++) {int now = str[i] - '0';ans <<= 1;ans.set(0);ans = ans & b[now];if(ans[n - 1]) {char c = str[i + 1];str[i + 1] = '\0';puts(str + i + 1 - n);str[i + 1] = c;}} }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);while(scanf("%d", &n) != EOF) {for(int i = 0; i < n; i++) {int num = read();for(int j = 0; j < num; j++) {int x = read();a[i].pb(x);}}scanf("%s", str);// cout << str << endl;shift_and();for(int i = 0; i < n; i++) a[i].clear();}return 0; }

帶可選字符的多字符串匹配

輸入有點坑,一定要用gets()才行。

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_back #define endl '\n'using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(ll x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }int pos[150], tot;const int N = 2e6 + 10;char str[N], s[100]; int n, m, flag;bitset<510> b[70], ans;void shift_and() {n = strlen(str);for(int i = 0; i < n; i++) {ans <<= 1;ans.set(0);ans &= b[pos[str[i]]];if(ans[m - 1]) {flag = 1;printf("%d\n", i + 1 - m + 1);}} }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);for(int i = '0'; i <= '9'; i++) pos[i] = ++tot;for(int i = 'a'; i <= 'z'; i++) pos[i] = ++tot;for(int i = 'A'; i <= 'Z'; i++) pos[i] = ++tot;while(gets(str)) {scanf("%d", &m);for(int i = 1; i <= tot; i++) b[i].reset();ans.reset();for(int i = 0; i < m; i++) {int x; scanf("%d %s", &x, s);for(int j = 0; j < x; j++)b[pos[s[j]]].set(i);}flag = 0;shift_and();if(!flag) puts("NULL");getchar();}return 0; }

F. Substrings in a String

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define mp make_pair #define pb push_back #define endl '\n'using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }void print(ll x) {if(x < 10) {putchar(x + 48);return ;}print(x / 10);putchar(x % 10 + 48); }const int N = 1e5 + 10;char str1[N], str2[N];bitset<N> b[26], ans;int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> str1;int n = strlen(str1);for(int i = 0; i < n; i++) b[str1[i] - 'a'].set(i);int q; cin >> q;while(q--) {int op; cin >> op;if(op & 1) {int x; char c; cin >> x >> c;b[str1[x - 1] - 'a'].reset(x - 1);str1[x - 1] = c;b[str1[x - 1] - 'a'].set(x - 1);}else {int l, r;cin >> l >> r >> str2;int m = strlen(str2);if(r - l + 1 < m) {puts("0");continue;}int sum = 0;ans.set();for(int j = 0; j < m; j++) ans &= b[str2[j] - 'a'] >> j;print((int)(ans >> (l - 1)).count() - (int)(ans >> (r - m + 1)).count()), putchar('\n');}}return 0; }

總結

以上是生活随笔為你收集整理的Bitset瞎搞的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚州激情| 日本色www| 久久国产精品-国产精品 | 成年女人免费视频 | 国产成人欧美一区二区三区91 | 久久国产乱子伦精品 | 欧美伦理片网站 | 成人免费区一区二区三区 | 金8天国av| 精品综合 | 免费观看全黄做爰的视频 | 一级在线播放 | 亚洲欧美国产毛片在线 | 四虎影视在线 | 天堂а√在线中文在线鲁大师 | 日日噜噜噜夜夜爽爽狠狠视频97 | 国产精品一区二区精品 | 91精品久久香蕉国产线看观看 | 国产传媒一区 | 亚洲淫欲| 巨乳中文字幕 | 91精品小视频 | 夜夜草av | 视频精品一区二区 | av尤物在线| www.欧美com| 久久亚洲视频 | 亚洲粉嫩 | 成人国产精品免费观看视频 | 性www| 扒开女人屁股进去 | 青青青在线视频观看 | 欧美日韩免费观看视频 | 高跟鞋丝袜猛烈xxxx | 黑人巨大精品人妻一区二区 | 日本在线视频免费 | 国产福利91精品一区二区三区 | 日视频| 欧美精品在线一区 | 日本国产网站 | 日韩欧美国产精品 | 国产有码在线观看 | 日本一区二区三区免费在线观看 | 999久久久国产精品 韩国精品一区二区 | 精品一区二区成人免费视频 | 国产精品一区二区在线观看 | 91jk制服白丝超短裙大长腿 | 男人喷出精子视频 | 黄色片aaa| 秋霞福利 | 无码av免费精品一区二区三区 | 午夜视频在线网站 | 欧美日韩精品网站 | 国产一区二区三区免费观看 | 亚洲天堂不卡 | 精品在线观看一区 | 一边摸一边做爽的视频17国产 | 精品人妻在线一区二区三区 | 99久久人妻精品免费二区 | 无码精品视频一区二区三区 | 小俊大肉大捧一进一出好爽 | 男女啪啪网站 | 手机免费av片 | 99精品在线免费观看 | 狂野欧美性猛交xxⅹ李丽珍 | 日韩mv欧美mv国产网站 | 在线观看天堂av | 欧美a级黄色片 | 噼里啪啦国语电影 | 欧美性区| 久久白虎| 青青草久久 | 国产一区=区 | 久久密| 国产高清一 | 国产免费毛卡片 | 欧美又粗又大xxxxbbbb疯狂 | 很污很黄的网站 | 老熟女一区二区三区 | 国产3页 | 嫩草嫩草嫩草嫩草嫩草 | 热热热热色 | 日干夜操 | 亚洲欧美国产精品久久久久久久 | 岛国av大片 | 久久久精品久久久久久 | 天堂一区在线观看 | 亚洲精品视频在线免费 | 国内精品人妻无码久久久影院蜜桃 | 国产区视频在线 | 手机成人免费视频 | 欧美精品亚洲精品日韩精品 | 国产一级片免费看 | 欧美日韩国产精品 | 国产高清成人久久 | 18pao国产成视频永久免费 | 色涩色| 亚洲资源在线观看 | 美女爽爽爽 |