厦门大学“网宿杯“17届程序设计竞赛决赛(同步赛) F. 这题多捞啊

这题多捞啊

https://ac.nowcoder.com/acm/contest/5945/F

规律题,挂一个暴力打表的代码。

#include<bits/stdc++.h>
using namespace std;

int a[1005];
int n;

int vis[2005],b[1005];
int ans;



void dfs( int x,int y  )
{
    if( x>n )
    {
        if( y==2*n )
        {
                ans++;
            for( int i=1;i<=n;i++ ) printf("%d ",a[i]);
            puts("");    
        }
        return;
    }
    int i=a[x-1];
    if( x==n ) i=max(2*n-y,a[x-1]);
    for( ;y+(n-x+1)*i<=2*n;i++ )
    {
        if( b[n-i] ) continue;
        vector<int> p;
        for( int j=n;j>=i;j-- )
        {
            if( b[j-a[i]] && b[j]==0 ) b[j]=1,p.push_back(j);
        }
        a[x]=i;
        dfs(x+1,y+i);
        for( int j=0;j<p.size();j++ ) b[p[j]]=0;
    }
    return;
}



int main()
{
    scanf("%d",&n);
    a[0]=1;
    b[0]=1;
//    dfs(1,0);
    if( n&1 )
    {
        for( int i=1;i<=n-1;i++ )cout<<1<<" ";
        cout<<2*n-(n-1)<<endl;
        for( int i=1;i<=n;i++ ) cout<<2<<" ";
    }
    else
    {
        for( int i=1;i<=n-1;i++ )cout<<1<<" ";
        cout<<2*n-(n-1)<<endl;

    }

} 
全部评论

相关推荐

把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务