2020 CCPC Wannafly Winter Camp Day5 E

2020 CCPC Wannafly Winter Camp Day5 E

題目

在這裏插入圖片描述

題目大意

\quad給你序列 a1anb1b4\ a_1 -a_n 和 b_1 - b_4,問你有多少個a的子序列可以與b匹配
\quad匹配的要求是子序列長度和匹配序列長度一樣並且當有 bi=bjai=aj,(1i,j4)\ b_i = b_j 的時候, a_i = a_j, (1\leq i, j \leq4)

思路

\quad題解說枚舉前三個然後做到O(1)計算最後一個,我愣了 ,不會,然後 O(n4)\ O(n^4)暴力枚舉竟然……過了

代碼

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <map>
#include <string>
#include <iostream>
#include <stdlib.h>
#include <deque>
using namespace std;
int num[350];
int  main()
{
    int i,j,k,l,t,n,m,ans,a,b,c,d;
    scanf("%d",&n);
    ans=0;
    for(i=1;i<=n;i++)
    scanf("%d",&num[i]);
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%d",&c);
    scanf("%d",&d);
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            if((a==b)!=(num[i]==num[j]))
            continue;
            for(k=j+1;k<=n;k++)
            {
                if((c==b)!=(num[k]==num[j]))
                continue;
                if((c==a)!=(num[k]==num[i]))
                continue;
 
                for(l=k+1;l<=n;l++)
                {
                    if((d==c)!=(num[l]==num[k]))
                    continue;
                    if((d==b)!=(num[l]==num[j]))
                    continue;
                    if((d==a)!=(num[l]==num[i]))
                    continue;
                    ++ans;
                }
            }
        }
    }
 
    printf("%d",ans);
    return 0;
}

太神祕了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章