HDOJ1015看懂题之后的简单粗暴

/*
	看懂题意之后,给定target和大写字符串,即是:
	把ABCDE……转换为12345……
	在给定的不重复数之中找5个数,使得其
	满足a-b^2+c^3-d^4+e^5等于给定的数target

	由于数据量不大,最大为20个不重复大写字母,
	不多说,5重for循环搞定
*/

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <cstring>
#include <sstream>
using namespace std;

#define input freopen("input.txt","r",stdin);
#define output freopen("output.txt","w",stdout);
#define For1(i,a,b) for (i=a;i<b;i++)
#define For2(i,a,b) for (i=a;i<=b;i++)
#define Dec(i,a,b) for (i=a;i>b;i--)
#define Dec2(i,a,b) for (i=a;i>=b;i--)
#define Sca_d(x) scanf("%d",&x)
#define Sca_s(x) scanf("%s",x)
#define Sca_c(x) scanf("%c",&x)
#define Sca_f(x) scanf("%f",&x)
#define Sca_lf(x) scanf("%lf",&x)
#define Fill(x,a) memset(x,a,sizeof(x))
#define MAXN 0x7fffffff

int a,b,c,d,e;
int book[30];
int ans[10];
int main()
{
	int x,i,j,k,l;
	char ch[20];
	while(cin>>x>>ch)
	{
		if (!x) break;
		Fill(book,0);
		Fill(ans,0);
		l=strlen(ch);
		For1(i,0,l) book[ch[i]-64]++;//数字字符统计
		For2(a,1,26)
		if (book[a])
			For2(b,1,26)
			if (a!=b&&book[b])
				For2(c,1,26)
				if (c!=a&&c!=b&&book[c])
					For2(d,1,26)
					if (d!=a&&d!=b&&d!=c&&book[d])
						For2(e,1,26)
						if (e!=a&&e!=b&&e!=c&&e!=d&&book[e])
							if (a-b*b+c*c*c-d*d*d*d+e*e*e*e*e==x)
								ans[1]=a,ans[2]=b,ans[3]=c,ans[4]=d,ans[5]=e;//直接暴力到最后一组
		if (ans[1]==0)//如果直到搜索完毕还没有解的话,no
			cout<<"no solution";
		else
			For2(i,1,5)
				printf("%c",ans[i]+64);//记得将其转换为字符输出
		cout<<endl;
	}
	return 0;
}

时间: 2024-08-14 08:39:13

HDOJ1015看懂题之后的简单粗暴的相关文章

HDU5104-BC18简单粗暴的题

/* 今天掉排名快哭了,做题做不对就算了,Hack都错了无数-- 以后做题记得涨经验: 一:自己判定最大的数据量.此题count=1229 二:时间复杂度.开始的超时代码肯定会超时:因为枚举量为count^3.必须超时啊-- 三:交题之前不着急.多写数据给自己测试,尤其是边界和大数据.也方便自己后来的Hack 不要因为想抢一两分钟的时间,而罚分罚时影响心情 四:每次BC的第一题其实看了题解都不难,自己的第一思路也对,注意代码细节处理 五:把自己的初始目标定低:只要求对,不要求时间,更是为了FT准

约瑟夫问题 算法很简单保证每隔人都能看懂用数组实现 利用循环删除数组中的元素

#include<iostream> using namespace std; const int size = 1000; void ArrDel() { int arr[size]; //循环结束标志,一直循环到数组中只剩下最后一个元素结束 int currentNum = size; int count = 0; for (int k = 0; k < size; k++) { arr[k] = k; } //currentNum==1表示数组中只剩下最后一个元素 是循环结束的标志

看懂影片标题,各种电影视频格式标题的含义

一.资源片源解析 根据命名,可以知道资源的来源,从而判断资源画质的好坏. 1.CAM(枪版)——珍爱生命,远离枪版  CAM通常是用数码摄像机从电影院盗录.有时会使用小三角架,但大多数时候不可能使用,所以摄像机会抖动.因此我们看到画面通常偏暗.人物常常会失真,视频画面时常会出现倾斜.抖动. 由于声音是电影院现场录制,所以经常会录到观众的笑声等杂音.因为这些因素,图象.声音质量通常都很差. 举例说明:Journey.To.The.Center.Of.The.Earth.CAM.XViD-CAMER

mvc中html导出成word下载-简单粗暴方式

由于工作需求,需要把html简历页导出成word下载.网上搜索了很多解决方案,基本都是用一些插件,然后写法也很麻烦,需要创建模板什么的. 固定替换值  代码一大堆.但是对于我的需求来说  并没有什么用,因为我这边的数据不能固定.  所以只能另寻办法,皇天不负有心人   找了一天 终于找到了  哈哈 mvc中的FlieResult  非常强大  可以直接传入html   指定文件格式  直接返回Flie文件下载 不多说了   直接上代码吧   非常之简单粗暴 后台代码: [ValidateInpu

只有程序员可以看懂的笑话 大全集(1)

宪法顶个球!中国的法律都是.txt文件,不是.exe文件. 程序员:三年前,当我写下这个的时候,只有上帝和我能够看懂. 现在,只有 上帝能看懂了. 同事说,他在写i++的时候总觉的自己写的是 我艹.........有木有同感??? ? 程序员,年二十有二,始从文,连考而不中. 遂习武,练武场上发一矢,中鼓 吏,逐之出. 改学IT,自撰一函数,用之,堆栈溢出. <桃花庵--程序员版>写字楼里写字间,写字间中程序员: 程序人员写程序, 又将程序换酒钱: 酒醒只在屏前坐,酒醉还来屏下眠: 酒醉酒醒日

如何看懂公司的财务报表(1)

先讲一个工具(杜邦分析法) 首先我们搞清楚一个问题,评价一个企业好不好,主要从三个方面来分析: 盈利能力(能挣几个钱) 融资能力(能骗几个钱) 运营效率(来钱快不快) 美国有个杜邦公司,搞科研的,但是这个搞科研的公司比较另类,他们不喜欢把简单的问题复杂化,而是喜欢把复杂的问题简单化. 搞懂杜邦分析法,先要看懂三个字母:R O E ROE代表的是净资产报酬率.净资产和资产虽然就差一个字,但要拿来和资产比,还是不够分量的,净资产是股东投入的那部分钱,又叫所有者权益. 而ROE其实就是ROE = 净利

dubbo面试题,会这些说明你真正看懂了dubbo源码

整理了一些dubbo可能会被面试的面试题,感觉非常不错.如果你基本能回答说明你看懂了dubbo源码,对dubbo了解的足够全面.你可以尝试看能不能回答下.我们一起看下有哪些问题吧? 1.dubbo中"读接口"和"写接口"有什么区别? 2.谈谈dubbo中的负载均衡算法及特点? 3.最小活跃数算法中是如何统计这个活跃数的? 4.简单谈谈你对一致性哈希算法的认识? 5.服务发布过程中做了哪些事? 6.dubbo都有哪些协议,他们之间有什么特点,缺省值是什么? 7.什么是

简单粗暴地入门机器学习

有很多小伙伴问过我零基础要怎么入门机器学习或者人工智能,今天来提炼一下,方便志同道合的朋友们参考. 记得我刚入此山洞准备修炼的时候,就 Google 了好多这类的问题,那时候觉得大家的建议好多呀,这条路看起来真长,那么多东西要学,那么多书要看,那么多有用的课程要学. 现在我可以就自己走过的坑坑包包来推荐一条简单粗暴的路径. [step 1: 方向] 在行动之前,先想好这几个最基本的问题,如果自己想不全都可以去搜一下,知乎上很多大拿的回答: --1.为什么要学习机器学习或者人工智能呢? 我的话,很

SmaterWeatherApi---签名加密和数据访问--简单粗暴一步搞定

使用中国天气网接口的朋友们,大家(还有我)辛苦了 有兴趣的可以去了解一下http://smart.weather.com.cn/wzfw/smart/weatherapi.shtml 年初的时候停用了之前的接口,改为申请使用,于是发个了申请邮件,中间各种曲折...一万字.. 总算是申请下来了,不过接口文档啊,看的我累觉不爱,文档上只有php版的kay生成方法,我在androi上使用,那些加密方法不知道用java如何实现 一怒之下,就写个php版的吧,本来是只想写个生成key的接口的,后来想了想