[Codeforces.666A.Reberland Linguistics(DP)]
제목 링크: 전송문
제목:
주어진 꿰미 s는 하나의 기본 꿰미 뒤에 임의의 여러 개의 길이가 2 또는 3인 접미사로 구성되어 있으며 기본 꿰미의 길이가 >4이고 인접한 접미사가 같지 않습니다.기본 직렬이 임의로 확정된 상황에서 가능한 모든 접미사 직렬을 구합니다.
아이디어:
dp[i][0]dp[i][0]dp[i][0]는 제a[i-1]a[i-1]a[i-1]~a[i]a[i]a[i]a[i]로 구성된 문자열이 가능한지, dp[i][1]dp[i][1]dp[i][1]는 제a[i-4]a[i-2]a[i-4]a[i]a[i]a[i]a[i]a[i]a[i]a[i]a[i]a[i]a[i]a[i]로 구성된 문자열이 가능한지를 나타낸다.
마지막 두 개의 길이가 2인 접미사와 길이가 3인 접미사를 선택할 수 있다면 가능합니다.
d p [ i ] [ 0 ] = ( d p [ i + 2 ] [ 0 ] & & s 1 ! = s 2 ) ∣ ∣ d p [ i + 3 ] [ 1 ] dp[i][0]=(dp[i+2][0]\&\&s1!=s2)~~||~~dp[i+3][1] dp[i][0]=(dp[i+2][0]&&s1!=s2) ∣∣ dp[i+3][1]
d p [ i ] [ 1 ] = d p [ i + 2 ] [ 0 ] ∣ ∣ ( d p [ i + 3 ] [ 1 ] & & s 1 ! = s 2 ) dp[i][1]=dp[i+2][0]~~||~~(dp[i+3][1]\&\&s1!=s2) dp[i][1]=dp[i+2][0] ∣∣ (dp[i+3][1]&&s1!=s2)
#include
#define mset(a,b) memset(a,b,sizeof(a))
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int,int> _p;
const int MAX=100000;
const int inf=0x3f3f3f3f;
const double EPS=1e-10;
const int MOD=1e9+7;
int dp[10005][2];/*0 :2 ,1:3*/
set<string> mmp;
int main()
{
string s;
cin>>s;
if(s.length()<6)
{
puts("0");
return 0;
}
int ls=s.length();
if(ls>6)
{
dp[ls-1][0]=1;
mmp.insert(s.substr(ls-2,2));
}
if(ls>7)
{
dp[ls-1][1]=1;
mmp.insert(s.substr(ls-3,3));
}
dp[ls-2][0]=dp[ls-2][1]=0;
for(int i=ls-3; i>=4; --i)
{
if(i-2>=4)
{
if((i+3<ls&&dp[i+3][1]) || (dp[i+2][0]&&s.substr(i-1,2)!=s.substr(i+1,2) )) //0
{
dp[i][0]=1;
mmp.insert(s.substr(i-1,2));
}
}
if(i-3>=4)
{
if(dp[i+2][0]>0||( i+3<ls &&dp[i+3][1]&&s.substr(i-2,3)!=s.substr(i+1,3))) // 1
{
dp[i][1]=1;
mmp.insert(s.substr(i-2,3));
}
}
}
cout<<mmp.size()<<endl;
for(auto i:mmp)
cout<<i<<endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CF R #695_A 복습0~9 중 하나의 숫자를 표현할 수 있는 패널 n개가 왼쪽에서 오른쪽으로 일렬로 놓여있다. 예를 들어 4개의 패널이 9999를 가르킬 때 왼쪽에서 두번째 패널을 멈춘 경우 9999 -> 0900 -> 0901 순서로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.