| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
直接暴力居然过了。。#include <cstdio>
const int maxn=20;
int n,ans=0;
char a[3]={'+','-','.'};
char c[maxn];
int count[maxn];
char b[maxn];
void dfs(int u)
{
if (u==n)
{
int l=1,y=0;
count[l]=1;
for (int i=1;i<n;i++)
{
if (c[i]!=a[2])
{
l++;
count[l]=i+1;
b[l-1]=c[i];
}
else
{
if (i<9)
count[l]=count[l]*10+i+1;
else
count[l]=count[l]*100+i+1;
}
}
y=count[1];
for (int i=1;i<=l-1;i++)
{
if (b[i]==a[0])
{
y+=count[i+1];
}
else
{
y-=count[i+1];
}
}
if (y==0)
{
ans++;
if (ans<=20)
{
for (int i=1;i<=n-1;i++)
printf("%d %c ",i,c[i]);
printf("%d\n",n);
}
}
return;
}
for (int i=0;i<=2;i++)
{
c[u]=a[i];
dfs(u+1);
}
}
int main()
{
freopen("p1950.in","r",stdin);
freopen("p1950.out","w",stdout);
scanf("%d",&n);
c[0]='+';
dfs(1);
printf("%d\n",ans);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator