1 条题解

  • 0
    @ 2024-2-3 16:13:58
    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    const int N=15;
    int ans[N];
    bool st[N];
    int a[N],b[N];
    int cnt;
    void dfs(int u)
    {
    	if(u==n+1) 
    	{
    		int x=0;
    		for(int i=1;i<=n;i++)
    		{
    			if(a[i]<b[ans[i]])
    			{
    				x++;
    			}
    		}
    		if(x<=k)
    		{
    			cnt++;
    		}
    		return ;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(!st[i])
    		{
    			st[i]=1;
    			ans[u]=i;
    			dfs(u+1);
    			st[i]=0;
    		}
    	}
    }
    int main()
    {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	for(int i=1;i<=n;i++)
    	{
    		cin>>b[i];
    	}
    	dfs(1);
    	cout<<cnt;
    	return 0;
    }
    
    • 1

    信息

    ID
    1000
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者