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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

noip模拟赛 fateice-string

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 noip模拟赛 fateice-string 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目背景

Aldnoah

——火星上超古代文明留下的能量源,承認初代火星移民雷伊·雷加利亞博士(即后來的薇瑟帝國初代皇帝)為正統繼承者,啟動因子融入皇族的遺傳因子中,只有皇族天生具有Aldnoah的啟動能力??梢园袮ldnoah看成是有認主能力的特殊礦產。在火星騎士的揚陸城中,安置有Aldnoah的啟動裝置。

題目描述

兩天前,被授予啟動能力的斯雷因·特洛耶特伯爵準備對啟動裝置進行加密,以防有人趁其不備破壞裝置。

他將這個任務交給了他的心腹哈庫萊特。忠實的哈庫萊特認為,只需要輸入密碼就能解鎖的加密裝置實在是太不安全了,所以他決定用一個特別的加密裝置來對Aldnoah啟動裝置進行保護。

他精心設計了這樣一套加密裝置:

該裝置會給定解密者兩個字符串s,t,其中s只包含小寫字母以及*,t只包含小寫字母。解密者可以進行任意多次操作,每次選擇s中的一個*,將它修改為任意多個(可以是0個)它的前一個字符。詢問是否能將s修改為t。

聰明的哈庫萊特當然不會只給予解密者一組數據啦,所以解密時會有多組數據出現,并且每組數據只有在規定時間內答對才能夠繼續解密下一組數據。

今天他制作好了加密裝置交給了斯雷因·特洛耶特伯爵,斯雷因準備先進行測試過后再將它安裝在啟動裝置上。他隨機制造了幾組測試數據輸入裝置,然后讓哈庫萊特進行解密。哈庫萊特會怎么做呢?

輸入輸出格式

輸入格式:

?

第一行一個整數T表示數據組數。

每組數據兩行,第一行一個字符串s,第二行一個字符串t。

?

輸出格式:

?

每組數據輸出一行,如果能將s修改為t,輸出Yes,否則輸出No。

?

輸入輸出樣例

輸入樣例#1:
2 a* aaaa a* ab 輸出樣例#1:
Yes No

說明

對于20%的數據,|s|,|t|<=7。

對于60%的數據,|s|,|t|<=300。

對于100%的數據,T<=100,|s|,|t|<=30000。

分析:這道題能拿多少分在于你枚舉什么.如果你枚舉每個*賦值多少個字母,那么就有20分,如果你枚舉兩個串,那么就有60分,如果你枚舉一個串,看看另外一個串是否符合要求就是滿分.

? ? ? 因為每個*只對同一字母有影響,所以把每一段字母相同的連同*分成一段,如果第二個字符串第i段有x個字母,那么第一個字符串中第i段也應該有x個字母,如果里面有*號那么可以少于x個字母,否則就必須等于x個字母,否則匹配不成功,掃一遍就可以了.

? ? ? 多組數據一定要初始化!本來A掉的結果忘了初始化爆0了QAQ.

#include <cstdio> #include <cstring> #include <iostream> #include <algorithm>using namespace std;int T; char s1[30010], s2[30010]; int len1, len2, cur, num; bool flag = false;bool pipei(int x, char biaozhun) {int res = 0;bool can = false;while (s1[cur] != biaozhun && cur <= len1){if (cur > len1)return false;if (s1[cur] == '*')can = 1;elseres++;cur++;}if (res < x && can)return true;if (res < x && !can)return false;if (res == x)return true;if (res > x)return false; }int main() {scanf("%d", &T);while (T--){num = 0;flag = 0;memset(s1, 0, sizeof(s1));memset(s2, 0, sizeof(s2));scanf("%s", s1 + 1);scanf("%s", s2 + 1);len1 = strlen(s1 + 1);cur = 1;len2 = strlen(s2 + 1);while (s1[cur] == '*' && cur <= len1)cur++;if (cur > len1){printf("No\n");continue;}if (s1[cur] != s2[1]){printf("No\n");continue;}for (int i = 1; i <= len2; i++){num++;if (s2[i] != s2[i + 1]){if (!pipei(num, s2[i + 1])){flag = 1;break;}num = 0;}}if (flag)printf("No\n");elseprintf("Yes\n");}return 0; }

?

轉載于:https://www.cnblogs.com/zbtrs/p/7671048.html

總結

以上是生活随笔為你收集整理的noip模拟赛 fateice-string的全部內容,希望文章能夠幫你解決所遇到的問題。

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