[NC13B]贝伦卡斯泰露

[NC13B]贝伦卡斯泰露

题目大意:

给定\(A_{1\sim n}(n\le40)\),问是否能将\(A\)分解成两个相同的子序列?

思路:

折半搜索。时间复杂度\(\mathcal O(2^{\frac n2})\)。

源代码:

#include<set>
#include<cstdio>
#include<cctype>
inline int getint() {
    register char ch;
    while(!isdigit(ch=getchar()));
    register int x=ch^'0';
    while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
    return x;
}
const int N=41;
const int base=57,mod=1e9+7;
typedef long long int64;
int n,a[N],b[N],c[N];
std::set<std::pair<int,int> > set;
void dfs1(const int &dep) {
    if(dep==n/2) {
        int val=0;
        if(b[0]<=c[0]) {
            for(register int i=b[0]+1;i<=c[0];i++) {
                val=((int64)val*base+c[i])%mod;
            }
        } else {
            for(register int i=c[0]+1;i<=b[0];i++) {
                val=((int64)val*base+b[i])%mod;
            }
        }
        set.insert(std::make_pair(b[0]-c[0],val));
        return;
    }
    b[++b[0]]=a[dep+1];
    if(b[0]>c[0]||b[b[0]]==c[b[0]]) dfs1(dep+1);
    b[0]--;
    c[++c[0]]=a[dep+1];
    if(c[0]>b[0]||c[c[0]]==b[c[0]]) dfs1(dep+1);
    c[0]--;
}
void dfs2(const int &dep) {
    if(dep==n/2+1) {
        int val=0;
        if(b[0]<=c[0]) {
            for(register int i=c[0];i!=b[0];i--) {
                val=((int64)val*base+c[i])%mod;
            }
        } else {
            for(register int i=b[0];i!=c[0];i--) {
                val=((int64)val*base+b[i])%mod;
            }
        }
        if(set.count(std::make_pair(c[0]-b[0],val))) throw 0;
        return;
    }
    b[++b[0]]=a[dep-1];
    if(b[0]>c[0]||b[b[0]]==c[b[0]]) dfs2(dep-1);
    b[0]--;
    c[++c[0]]=a[dep-1];
    if(c[0]>b[0]||c[c[0]]==b[c[0]]) dfs2(dep-1);
    c[0]--;
}
int main() {
    for(register int T=getint();T;T--) {
        n=getint();
        for(register int i=1;i<=n;i++) a[i]=getint();
        set.clear();
        b[0]=c[0]=0;
        dfs1(0);
        try {
            dfs2(n+1);
        } catch(...) {
            puts("Frederica Bernkastel");
            continue;
        }
        puts("Furude Rika");
    }
    return 0;
}

原文地址:https://www.cnblogs.com/skylee03/p/9357378.html

时间: 2024-10-09 18:02:46

[NC13B]贝伦卡斯泰露的相关文章

托尔斯泰经典语录:没有风暴,船帆不过是一块破布

1.每个人都会有缺陷,就像被上帝咬过的苹果,有的人缺陷比较大,正是因为上帝特别喜欢他的芬芳. ——列夫·托尔斯泰 <战争与和平> 2.了解一切,就会原谅一切. ——托尔斯泰 3.人并不是因为美丽才可爱,而是因为可爱才美丽. ——托尔斯泰 <安娜·卡列尼娜> 4.选择你所喜欢的,爱你所选择的. ——列夫.托尔斯泰 5.我们都在等待,等待着别的人来拯救我们自己. ——列夫·托尔斯泰 <安娜·卡列尼娜> 6.没人对你说“不”的时候,你是长不大的. ——列夫·托尔斯泰 <

&quot;巴卡斯杯&quot; 中国大学生程序设计竞赛 - 女生专场(重现)解题思路

此文章可以使用目录功能哟↑(点击上方[+]) 经过这么一次女生赛,告诉我们千万不要小瞧女生,不然会死得很惨,orz... 链接→"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)  Problem 1001 Solving Order Accept: 0    Submit: 0 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit : 32768/32768 K (Java/Others)  Problem Descri

卡斯柯经验谈│流程驱动项目管理的应用

主题:借信息化之力,打造项目运营管理一体化平台 嘉宾:孙春荣(卡斯柯IT总监) 基于K2 BPM的流程驱动项目管理平台,能提升卡斯柯以项目管理为核心的管理能力. 主要分成以下四个部分: 市场业务管理 市场招投标及合同评审 项目运营管理 财务报销管理 围绕项目运营管理的全生命周期,建立从市场投标报价到项目执行.分析评估的成本一致性追踪追溯体系. 基于K2的财务报销管理平台:共12支流程,170多支子流程,基本涵盖公司所有费用报销.现在K2助力卡斯柯实现了这个难度最大的财务报销管理平台. ※该报销系

毕业真实的版本「「斯泰福厦大学毕业证书」原件一模一样证书

[斯泰福厦大学毕业证留信网学历认证&博士&硕士&海归&本科&排名&成绩单&专业][微/Q:860181028--WeChat:Adam8601][帖子永久有效,看不到请点击百度快照]联系人Adan[办理毕业证,成绩单,学历认证.文凭.学位证.成绩单等]代办国外(海外)澳洲美国 加拿大 韩国 美国 新西兰 等各大学毕业证,修改成绩单分数,学历认证,文凭,diploma,degree [删除请点击百度快照]真实认证.海外回囯的同学定制毕业证.真实认证.

百度换个房间会撒娇交罚款了卡斯

http://www.ebay.com/cln/tacn_gqde5d/2015_02_11/176975108016 http://www.ebay.com/cln/eev1283_hfwaz/2015_02_11/176913313010 http://www.ebay.com/cln/cnzan_fhkldjp/2015_02_11/176765440017 http://www.ebay.com/cln/wemia86/2015_02_11/176884776012 http://www

百度哈斯发卡号是减肥哈卡斯加分了卡斯

http://www.ebay.com/cln/ta_ya20/-/167521224015/2015.02.08 http://www.ebay.com/cln/p-m6466/-/167398283011/2015.02.08 http://www.ebay.com/cln/ta_ya20/-/167521242015/2015.02.08 http://www.ebay.com/cln/p-m6466/-/167398294011/2015.02.08 http://www.ebay.co

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

签同过去我就卡斯柯

http://i2.feixin.10086.cn/pages/106526/1342661446 http://i2.feixin.10086.cn/pages/106548/1342661448 http://i2.feixin.10086.cn/pages/91656/1342661476 http://i2.feixin.10086.cn/pages/89672/1342661477 http://i2.feixin.10086.cn/pages/91641/1342661485 htt

Android性能测试初探,合集粘贴版,转自Testerhome,卡斯著

Android 性能测试,跟 pc 性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试 一类为应用的性能测试 对于应用性能测试,包括很多测试项,如启动时间.内存.CPU.GPU.功耗.流量等. 但针对 rom 版本的性能测试,一般关注功耗. 先说说应用的性能测试,对于启动时间.内存.cpu 测试大家一般都使用外部提供的第三方工具来辅助测试,如GT.安测试等.这些工具的原理都是基于调用 android 底层的一些 api 来获取到测试所用到的值,当