hdu 1015 (DFS,暴力)

点击打开链接


分析:

可以用DFS,也可以暴力5循环。。。。

#include"stdio.h"
#include"string.h"
#include"algorithm"
using namespace std;
int fun(int a,int b,int c,int d,int e)
{
	if(a==b||a==c||a==d||a==e)return 0;
	if(b==c||b==d||b==e)return 0;
	if(c==d||c==e)return 0;
	if(d==e)return 0;
	return 1;
}
int cmp(char a,char b)
{
	return a>b;
}
int main()
{
	int n,t,len;
	char str[15];
	int v,w,x,y,z,f;
	int vv,ww,xx,yy,zz;
	while(scanf("%d %s",&n,str)!=-1)
	{
		if(n==0&&strcmp(str,"END")==0)break;
		t=0;
		f=0;
		len=strlen(str);
		sort(str,str+len,cmp);
		for(v=0;str[v];v++)
		{
			for(w=0;str[w];w++)
			{
				for(x=0;str[x];x++)
				{
					for(y=0;str[y];y++)
					{
						for(z=0;str[z];z++)
						{
							if(fun(v,w,x,y,z))
							{
								vv=str[v]-'A'+1;
								ww=str[w]-'A'+1;
								xx=str[x]-'A'+1;
								yy=str[y]-'A'+1;
								zz=str[z]-'A'+1;
								if(vv-ww*ww+xx*xx*xx
									-yy*yy*yy*yy+zz*zz*zz*zz*zz==n)
								{
									f=1;
									printf("%c%c%c%c%c\n",str[v],str[w],str[x],str[y],str[z]);
									break;
								}
							}
						}if(f)break;
					}if(f)break;
				}if(f)break;
			}if(f)break;
		}
		if(!f)printf("no solution\n");
	}
	return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值