30分求救
  • 板块P2089 烤鸡
  • 楼主zyabc
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/7/1 08:10
  • 上次更新2023/10/27 22:11:37
查看原帖
30分求救
725788
zyabc楼主2022/7/1 08:10

各位大拿帮忙看下错哪里了,我也下载了一个 WA的测试点,至少打印多少组结果这里是正确的

#include<bits/stdc++.h>
using namespace std;
int tiaoliao[11];
int used[11];
int n,cnt;
char res[500000];
int pos;

int select(int left,int begin)
{
	if(left==0) 
	{
	 cnt++;
	 for(int i=1;i<=10;i++)
	 {
	 	pos+=sprintf(res+pos,"%d ",tiaoliao[i]);
	 }
	 pos+=sprintf(res+pos,"\r\n");
	 return 0;
	}
	for(int i=begin;i<=10;i++)
	{
		if(used[i]==0)
		{
			used[i]=1;
			for(int j=1;j<=2;j++)
			{
				tiaoliao[i]+=j;
				select(left-j,i+1);
				tiaoliao[i]-=j;
			}
			used[i]=0;				
		}
		
	}

	return 0;

}
int main()
{
	cin>>n;
	if(n<10||n>30) {cout<<"0";return 0;}
	for(int i=1;i<=10;i++)
	{
		tiaoliao[i]=1;
	}	
	int left=n-10;
	
	
	select(left,1);
	cout<<cnt<<endl;
	for(int i=0;i<strlen(res);i++)
	printf(res);
	return 0;
}
2022/7/1 08:10
加载中...