【模拟】交换(jzoj 1518)
生活随笔
收集整理的這篇文章主要介紹了
【模拟】交换(jzoj 1518)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
交換
jzoj 1518
題目大意:
有兩個字符串(只包含‘R’‘G’‘B’三個字符,且相鄰的字符互不相同),現在要交換兩個字符串中的一個數,使兩個字符串內都各有3個連續(xù)且相同的字符,問有多少種換法
樣例輸入
RGBRBR BRBGRG樣例輸出
1數據范圍限制
兩個字符串長度都不超過50,不小于3,且任意兩個相鄰的字符都不相同。
提示
解題思路:
直接模擬每一種交換,然后判斷即可
代碼:
#include<cstdio> #include<string> #include<cstring> #include<iostream> using namespace std; int l1,l2,ans,a[60],b[60]; string str; int main() {cin>>str;l1=str.size();for (int i=0;i<l1;++i)if (str[i]=='R') a[i+1]=1;//預處理else if (str[i]=='G') a[i+1]=2;else if (str[i]=='B') a[i+1]=3;cin>>str;l2=str.size();for (int i=0;i<l2;++i)if (str[i]=='R') b[i+1]=1;//預處理else if (str[i]=='G') b[i+1]=2;else if (str[i]=='B') b[i+1]=3;for (int i=1;i<=l1;++i)for (int j=1;j<=l2;++j)if (a[i-1]==b[j]&&b[j]==a[i+1]&&b[j-1]==a[i]&&a[i]==b[j+1]) ans++;//判斷printf("%d",ans); }總結
以上是生活随笔為你收集整理的【模拟】交换(jzoj 1518)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奔驰CFO:电动汽车市场“太残酷” 价格
- 下一篇: 利用 ChatGPT 等大模型训练,波士